{'fraction_non_alphanumeric': 0.027929192569230488, 'fraction_numerical': 0.010974787158405191, 'mean_word_length': 4.811420701345481, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 0, 'lorem ipsum': 0, 'www.': 1, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 8, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
Change Detection in Dynamic Attributed Networks

A network provides powerful means of representing complex relationships between entities by abstracting entities as vertices, and relationships as edges connecting vertices in a graph. Beyond the presence or absence of relationships, a network may contain additional information that can be attributed to the entities and their relationships. Attaching these additional attribute data to the corresponding vertices and edges yields an attributed graph. Moreover, in the majority of real-world applications, such as online social networks, financial networks and transactional networks, relationships between entities evolve over time. Change detection in dynamic attributed networks is an important problem in many areas, such as fraud detection, cyber intrusion detection and health care monitoring. It is a challenging problem because it involves a time sequence of attributed graphs, each of which is usually very large and can contain many attributes attached to the vertices and edges, resulting in a complex, high dimensional mathematical object. In this survey we provide an overview of some of the existing change detection methods that utilize attribute information. We categorize these methods based on the levels of structure in the graph that are exploited to detect changes. These levels are vertices, edges, subgraphs, communities and the overall graph. We focus our attention on the strengths and weaknesses of these methods, including performance and scalability. Finally we discuss some publicly available dynamic network datasets and give a brief overview of simulation models to generate synthetic dynamic attributed networks.

Change detection in dynamic attributed networks is an important problem in many areas, such as fraud detection, cyber intrusion detection and health care monitoring. It is a challenging problem because it involves a time sequence of attributed graphs, each of which is usually very large and can contain many attributes attached to the vertices and edges, resulting in a complex, high dimensional mathematical object.
In this survey we provide an overview of some of the existing change detection methods that utilize attribute information. We categorize these methods based on the levels of structure in the graph that are exploited to detect changes. These levels are vertices, edges, subgraphs, communities and the overall graph. We focus our attention on the strengths and weaknesses of these methods, including performance and scalability. Finally we discuss some publicly available dynamic network datasets and give a brief overview of simulation models to generate synthetic dynamic attributed networks.

INTRODUCTION
Rapid developments in the field of information technology have resulted in a proliferation of datasets over the past few decades. Examples include supermarket transaction data, credit card records, medical records, and records of telephone call information. The availability of large datasets led to a high demand for new methods to extract useful information.
Thus the field of data mining started to develop. Data mining involves methods for exploring, analysing, and modelling large datasets to find valid, novel, and interpretable patterns (Fayyad et al., 1996). The area of data mining which attempts to discover unusual occurrences in dynamic (time-varying) datasets is called change detection. Detecting changes provides early warnings of events that can have serious impact. For example, early detection of an abrupt change in the stock market could help improve decision making and avoid possible losses for businesses due to wrong decisions and weak trading systems. The majority of traditional data mining methods assume entities in a dataset to be independent, and ignore the natural relationships among them (Huang and Gao, 2014). However, entities in most real-world datasets are not independent, but are related to each other in different ways. For accurate change detection, it is vital to consider these underlying relationships.
For example, the extent to which a transaction is fraudulent in credit card data can be identified more accurately by considering the usual purchasing behaviour of the card-holder as well as the usual purchasing behaviours of other card holders who bought the same product (Singh and Singh, 2015). The need for regarding such inherent dependencies among entities has aroused interest for network-based change detection methods.
A network is a collection of entities, that have inherent relationships. Some examples include a social network of friendships among people, a communication network of company employees connected by phone calls, emails or text messages, and a biological network of neurons connected by their synapses. A network can be mathematically conceptualized as a graph by associating entities with vertices, and relationships with edges connecting vertices in the graph. For example, in the graph representation of a social network like Facebook, vertices may represent friends and edges represent friendship connections. It is also possible to capture more information by attaching additional attribute data to the vertices and edges, resulting in an attributed graph. An illustrative example of a small attributed graph of three vertices is shown in Figure 2. Each vertex is tagged with attribute information about the job role of the corresponding employee, while the edges are tagged with attribute information based on the type of relationship (whether the relationship is based on friendship or email sending patterns). An edge can be further weighted to quantify the corresponding relationship. In the example given in Figure 2, the edges representing email sending patterns are weighted to represent the number of emails.
Most real-world networks evolve as time progresses. That is, the entities and their relationships keep evolving with time. This type of relational data can be represented as a dynamic network. For example, a communication network of a company is a dynamic network because new employees (entities) join the network and communication patterns (relationships) are modified continuously. A dynamic network can be represented as a time sequence of graphs, each representing the entities (as vertices) and their relationships (as edges) at a given time instant.
Change detection in dynamic networks is the process of continuously monitoring a net- work for deviations in the behaviour of entities and their relationship structure. Figure 3 illustrates this based on a toy example. The graph obtained at the current time instant represents the current behaviour of entities and their relationships, while the sequence of graphs inside the window containing the recent past time instants, characterise profile behaviour. A general change detection method aims to build a model based on the profile behaviour of the graph during the recent past, and search for deviations in the behaviour of the current graph with respect to the model. The majority of change detection methods monitor a representative summary extracted from the overall graph, or parts of the graph, such as vertices, edges or subgraphs 1 to characterise behaviour and analyse deviations. For example, in order to detect fraudulent collaborations in social networks, Yu et al. (2014) track the properties of communities, while Neil et al. (2013b) observe the appearance of unlikely edges to detect intrusions in a computer network. The choice of unit (either overall graph, vertices, edges or subgraphs) to track over time to detect changes, mainly depends on the given application.
Change detection in dynamic networks has many vital applications: • Social network analysis: Changes in popular social networks such as Facebook, Twitter, LinkedIn or Youtube 1 A subgraph is a subset of vertices and edges in the graph. may arise as a result of individuals or groups of individuals making deviations in their usual relationship patterns. For example, a group of fraudsters in an on-line auction network who previously had no relationships may suddenly collaborate to boost the reputation of their product. Such changes will be reflected as changes in the corresponding dynamic network, so change detection enables detection of those fraudsters (Pandit et al., 2007).
• Financial market analysis: A financial network represents the dynamic inter-relationships between the world's various financial markets. Changes in international trade or countries' stock markets at a certain point in time, correspond to changes in the structure of the corresponding financial network  . Such changes should be detected early to minimize financial crisis situations.
• Network traffic monitoring: A dynamic computer network can be represented as a time sequence of edge attributed graphs, where the vertices represent the computers, and the edges represent the volume of traffic between each pair of computers. A change in the usual amount of traffic between a pair of computers may indicate a fault in the system or even an intrusion.
Such changes can be detected by continuously tracking the edges over time (Sun et al., 2006).
• Analysis of earth-science data: Earth scientists detect natural disasters by analysing data about variables such as vegetation cover, temperature, and pressure at certain locations over time. Natural disasters such as wildfires correspond to abrupt changes in the time-series of these variables. However, these variables are most often inherently correlated with each other. Accounting for these inherent correlations, by formulating a network, and applying network-based change detection methods, increase the detection ability of such natural disasters (Cheng et al., 2008).

• Connectomic applications:
Connectomics involves the study of inter-relationships among different regions of the brain. Inter-relationships between brain regions can be observed over time, and represented as a dynamic network. A sudden neurological failure such as an epilepsy attack, will correspond to a change in the structure of the network . Hence, change detection can be used to improve diagnosis and treatment of such medical conditions. In order to accurately detect changes, we need to consider the following issues: Scale and dynamics: Many real-world networks are considerably large in size. For example, the Facebook contains more than one billion users, 2 and the World Wide Web consists of more than 40 billion web pages 3 . A graph representing the entity-relationships in these datasets is also large, with billions of vertices and edges. If such data are collected in real time, the speed at which they arrive is also an issue. We require fast methods to study the structure of such graphs at each time instant.
Complexity: As mentioned previously, the vertices and edges of a graph can be tagged with attributes capturing specific information about entities and their relationships. A change detection method should effectively combine all available and useful information in order to obtain accurate results. However, the inclusion of edge and vertex attributes increases the complexity.
Lack of prior information: Data we receive often arrives with no a priori knowledge about the underlying situation. Hence, we have no knowledge about the recent past behaviour, and this should be obtained from the data using a method that is both accurate and computationally efficient (Nickel, 2013).
In this review we discuss several literature to date on change detection methods in dynamic attributed networks.
Our paper is organized as follows. First in Section 1, we review previous surveys that address the problem of change detection in dynamic networks. In Section 1, we define the graph theoretic notations that we utilize throughout the paper. In Section 4 we first describe the structure of our paper and how we categorize methods for change detection. We further clarify what we consider as attribute information when reviewing past literature. In the next five subsections, we provide a thorough review of different change detection methods based on the categorization introduced in Section 4. In Section 4.1, we review methods that detect changes in the overall graph. These methods detect points in time where the majority of vertices, edges, subgraphs or communities change their behaviour compared to recent past. In Section 4.2, we review methods that focus on detecting changes in vertex behaviour. Section 4.3 discusses methods that detect abnormally evolving edges in the network. A subgraph is a collection of vertices and edges. Section 4.4 reviews methods that detect changes in subgraph behaviour. In this category, we separately discuss methods on communities (Section 4.4), which are a special type of subgraph. In Section 5, we critically assess the strengths and weaknesses of different approaches with respect to computational efficiency and applicability in different situations. We also mention procedures that can be utilized for evaluating a novel method developed for a dynamic network. Finally in Section 6, we provide a concluding summary of our review.
A network can be mathematically represented as a graph, G = (V, E⊆ V × V ), where V is a set of n vertices and E is a set of edges. An edge connects two vertices and can be directed or undirected. For example, in the case of a simple graph with n vertices, E will contain a list of those edges that are present in the graph. From this edge list, the presence or absence of an edge between each pair of vertices can be encoded as an n × n binary adjacency matrix, A, where each element, A i,j , is 1 if the edge between vertices i and j appears in E, and 0 otherwise. In an attributed graph, additional information is assigned to the edges or vertices or both, this information is called a weight. An attributed graph can be encoded as an n × n weighted adjacency matrix, W , and W i,j is the non-negative weight of the edge between vertices i and j, and W i,j = 0 means that vertices i and j are not connected by an edge. In this review, we consider graphs where the edge weights are proportional to the strength of the relationship between the corresponding entities.
A dynamic attributed network can be mathematically represented as a time sequence of attributed graphs, G 1 , G 2 , . . . , where G t = (V t , E t ). Since our focus is on a dynamic attributed network with a fixed set of entities, we will have G t = (V, E t ) as a special case. Akoglu et al. (2015) surveys a vast variety of methods that do change detection in dynamic unattributed networks. They categorize these methods based on the type of graph summary extracted as well as the type of change detected. They review feature-based methods, decomposition-based methods, community-based methods and window-based methods.

OTHER RELATED SURVEYS
Feature-based methods calculate graph summaries based on graph properties such as the degree distribution of the network. Decomposition-based methods apply matrix or tensor decomposition techniques on the adjacency matrix or tensor, representing the network.
Community-based methods monitor the communities in the network to detect structural changes. Window-based methods incorporate the idea of a moving window over the time sequence of graphs to detect changes from the recent past behaviour. They present a thorough treatment on the subject of change detection methods derived for unattributed dynamic networks. However, Akoglu et al. do not address the problem of detecting changes in dynamically changing attributed networks. Aggarwal and Subbian (2014) is another survey paper that covers some change detection methods on dynamic networks. The main goal of their paper is to give a comprehensive review on methods for studying the evolutionary behaviour of a dynamic network. They review a few methods that quantify the changes occurring in the vertices and edges. The discussed changes focus on centrality of vertices, behaviour of communities and shortest path distances between vertices. They further discuss the applicability of each method to slowly evolving networks and streaming networks. In addition to change detection methods, Aggarwal and Subbian provide a comprehensive discussion on dynamic network generation mechanisms.
Given a time sequence of graphs, Ranshous et al. (2015) provide a thorough review on methods that detect vertices, edges, subgraphs or time instants that depict irregular evolutionary behaviour compared to the rest of the network. Their review is organized based on the underlying design principles of those methods, such as those based on community detection, graph compression, matrix decomposition and distance metric calculation. Although Ranshous et al. (2015) cover methods that detect changes in a dynamic network, the main goal of their survey paper is not reviewing change detection methods that exploit attribute information.
While all the above mentioned survey papers cover different aspects of previous change detection methods, their overall focus is different from ours. In our paper we give a deeper discussion on change detection methods that specifically focus on utilizing attribute information. Furthermore, previous survey papers categorize methods based on the underlying methodologies behind the algorithms employed for change detection. The framework we follow is different. We take into account the levels of structure selected from each graph, to monitor over time for change detection.

CATEGORIZATION OF METHODS
As detailed in Section 1, changes in a dynamic network are deviations from usual activities, and change detection is the process of monitoring a time sequence of graphs to detect such deviations. Most change detection methods follow a common procedure as follows: 1. Given a time sequence of graphs, determine the smallest unit in the graph (e.g., a vertex, an edge, a subgraph or the entire graph) that needs to be monitored over time to detect the change.
2. At each time instant, extract a good summary measure from the graph that accurately represents the behaviour of the smallest unit selected.
3. Calculate the dissimilarity between the summary measure obtained for the current time instant and a summary measure representing the profile behaviour of the unit during the recent past time instants. This dissimilarity measure is the change score for the current time instant.
Based on the unit selected, we divide the change detection methods reviewed into four main categories. They are methods that detect, 1. changes in the overall graph (Section 4.1), 2. changes in vertices (Section 4.2), 3. changes in edges (Section 4.3), and 4. changes in subgraphs (Section 4.4). In this category, we separately discuss methods on communities (Section 4.4), which are a special type of subgraph.
Within each category we discuss methods that use vertex attributes and edge attributes.
The attributes that we consider can be additional information about the entities and their relationships in the corresponding network or can be vertex or edge properties calculated from the adjacency matrix of the graph. Examples include quantitative attributes such as vertex degree (Borges et al., 2011) and edge weight (Idé and Kashima, 2004), and categorical attributes such as vertex type (Jiang et al., 2015) and edge type .

CHANGES IN THE OVERALL GRAPH
A change in the overall graph occurs when the majority of entities in a network change their usual relationship patterns. For example, Akoglu and Faloutsos (2010) observe a mobile communication network over a six months period and discover that most people change their usual communication patterns during the Christian New Year. Changes in the behaviour of most vertices or edges in the graph are considered to be a change in the behaviour of the overall graph. Detecting changes in the overall graph is sometimes referred to as event detection (Ranshous et al., 2015).
In a computer network, we can obtain information regarding a set of computers and their interactions over time. Each interaction between a pair of computers contains attribute information such as connection type or number of connections. Idé and Kashima (2004) represent such a computer network as an attributed and undirected graph, where the edge attributes are the number of connections between two computers at any given time instant. Each attributed graph is then represented as a weighted adjacency matrix, W . The goal of Idé and Kashima (2004)'s change detection method is to find time instants at which the majority of the edge attributes in the graph show significant deviation from the recent past. As it can be computationally inefficient to track each edge over time, the authors employ a spectral decomposition approach for this purpose. A positive semi-definite symmetric matrix, W , can be decomposed as W = UΣU T , where U is an orthonormal matrix with columns containing the unit eigenvectors of W , and Σ is a diagonal matrix containing the corresponding eigenvalues (Horn and Johnson, 2012). Idé and Kashima (2004) extract the principal eigenvector corresponding to the maximum eigenvalue and use it as the representative summary of the graph. The principal eigenvector is a non-negative vector, where larger elements correspond to vertices that have high connectivity or have neighbours with high connectivity in the graph. Hence, Idé and Kashima call this vector the activity vector, u t . This way, the time sequence of graphs can now be represented as a time sequence of activity vectors. At each time instant, t, singular value decomposition (SVD) is performed on the matrix whose columns are the activity vectors from the recent past time instants, and the profile behaviour is represented by the principal left singular vector, r t−1 , which Idé and Kashima (2004) call the typical activity vector. Finally a change score, z t , is obtained for each time instant by calculating the dot product between u t and r t−1 given by As u t and r t−1 are unit vectors, z t corresponds to the cosine of the angle between u t and r t−1 . Greater deviations from the recent past behaviour correspond to larger angles which give higher change scores. The activity vector at the detected change point is further investigated to detect the vertices that are mostly responsible for the change.
In most real-world phenomena, we have multiple sources of information describing different types of relationships associated with entities, which can be captured by a multi-view network. For example, we can build a multi-view network over a given set of people based on their relationships over multiple social networking sites such as Facebook, Twitter and Youtube . A multi-view network is conceptualized as a multi-graph, which is a graph with multiple edge attributes. When a graph has multiple edge attributes, a tensor is preferable to a matrix in order to capture the complex connectivity structure. A tensor is a multidimensional array 4 . There are two ways to represent a dynamic multi-view network as a tensor. First, a dynamic multi-view network can be represented as a time sequence of three-dimensional tensors. Here, the first two dimensions of each tensor denote the vertices, and the third dimension denotes the categorical edge attributes. For example, consider a dataset containing port usage in a computer network observed at specific time instants.
This dataset may contain the source IP addresses, destination IP addresses, and the port numbers used. Each time instant can then be represented as a tensor, where the first two dimensions represent the sources and destinations, and the third dimension represents the port numbers. The tensor elements may be weighted or binary. In a weighted tensor, each element quantifies a communication between the corresponding source and destination via the corresponding port. Figure 4 shows how the sources, destinations, and ports are represented as a three dimensional tensor. The second way is to represent the whole multi-view dynamic network as a four dimensional tensor. The first three dimensions constitute the tensor in the first method, while time is added as the fourth dimension.
As discussed above, a tensor can be used to represent both quantitative and categorical edge attributes pertaining to a dynamic network. Thus, we review some previous tensorbased change detection methods. The majority of tensor-based change detection methods use tensor decomposition to obtain a low-rank approximation,Ã, of the original tensor, 4 Note that a matrix is a special type of tensor, that is of dimension two.

Figure 4: Representing multiple edge attributes as a 3-D tensor
A, at each time instant (a detailed review on tensor decomposition methods is provided in Kolda and Bader (2009)). The reconstruction error, e = A −Ã 2 F , measures how well the tensor is approximated at that time instant. Sun et al. (2006) decompose each tensor, A, and obtain the reconstruction error, e. If e is 2 standard deviations away from the mean of error values so far, that time instant is characterized as a change point. The tensor-based change detection methods that we find in the literature mainly differ by the technique employed to decompose the tensor. For example, Kolda and Sun (2008) detect change points by doing Memory Efficient Tucker (MET) decomposition. MET addresses the immediate blow-up problem which occurs when the input and output tensors exceed the available memory space during computations for large and sparse graphs. Papalexakis et al. (2012), on the other hand, employ the PARAFAC tensor decomposition technique (Harshman, 1972) in their change detection method. For a comprehensive discussion on tensors and tensor decomposition methods, we direct the reader to Kolda and Bader (2009). Furthermore, a collection of tensor-based anomaly detection methods is extensively surveyed in Fanaee-T and Gama (2016).
Calculating similarity between graphs is a well studied problem (Faloutsos, 2009), but there are a very few papers that make use of the attributes of vertices or edges. Papadimitriou et al. (2010) introduce several similarity metrics to detect change points in an evolving web network. This network is represented as a time sequence of directed, attributed graphs where vertices correspond to active web pages, and attributed edges represent the number of hyperlinks between these web pages. Papadimitriou et al. calculate similarity between consecutive graphs based on the ranks of the vertices and edges. The rank of a vertex is calculated using its quality score obtained from the PageRank method in Eiron et al. (2004). For example, in a social network, these attributes can be the age, location and occupation of the corresponding entities. The GLM assumes each edge to be generated from a probability distribution in the exponential family, such as Bernoulli, Poisson, normal, gamma and so on. Thus, the GLM framework facilitates to model a range of edge attributes such as edge existence, rate of connectivity and volume of connections. The dependency between the time sequence of graphs is captured by constructing a state-space model on the parameters of the GLM, and by using an extended Kalman filter to estimate and update parameters over time.
The parameters estimated at t − 1 are used to predict the graph at t and calculate Pearson residuals. These residuals are monitored over time using an exponentially weighted moving average (EWMA) control chart to detect global structural changes in the stream of graphs.
Non parametric probabilistic methods have the flexibility of defining the structure of the model from the data itself without adhering to prior assumptions. One of the most basic non-parametric methods is the histogram. Borges et al. (2011) employ a histogrambased approach to detect change points by studying the distribution of vertex attributes in a dynamic network. At each time instant, eight vertex attributes such as degree, betweenness, closeness, eigenvector centrality and so on are collected for every vertex in the graph. Given a time sequence of graphs, the joint probability distribution of the eight vertex attributes is defined as a histogram, h G . The histogram for the joint vertex attributes up to time instant t, h G t is then converted to a density estimate,ρ G t using add-one smoothing method. The divergence between the two density estimates,ρ G t andρ G t−1 , is then measured using the cross entropy between them. This is defined as the change score for G t . A high divergence score implies significant change in the behaviour of the global structure compared to the past.
McCulloh and Carley (2011) describe a method based on cumulative sum (CUSUM) control chart to detect changes in a dynamic social network. Changes are detected for graph level measures (such density, eigenvector centrality) as well as vertex level measures (closeness, betweenness) averaged over the graph. At each time instant, the mean and variance of the measure during recent past is compared with the current measure to calculate the CUSUMs C + and C − statistics. These measures are then compared to a control limit to determine if a change is indicated. Once a change point is detected, the corresponding network is further investigated to identify the responsible entities or connections. The CUSUM chart is well suited for detecting small or gradual changes in an unsupervised environment. However, this approach assumes the network measures to be normally distributed. Thus, the application of this method is limited.
Change detection methods discussed in Section 4.1 focus on deviations in the behaviour of the overall network. Some changes occurring in the network might not affect the whole network. These changes would go unnoticed, unless the investigation is narrowed down to local structures.

CHANGES IN VERTICES
Vertex-based methods are very useful when we want to track the behaviour of important entities in the network. Akoglu and Faloutsos (2010) optimize the decomposition-based strategies discussed in Idé and Kashima (2004) (Section 4.1) to detect changes in vertex behaviour.
The inputs to their algorithm are twelve vertex attributes observed at each vertex over time.
The whole dataset is first represented as a three-dimensional array, where the three dimen- and Each element in C i denotes the strength of the relationship between each pair of attributes. Thus, matrices C 1 i , . . . C T i are analogous to the weighted adjacency matrices analysed in Idé and Kashima (2004) (Section 4.1). Akoglu and Faloutsos (2010) apply Idé and Kashima (2004)'s activity vector-based change detection procedure over C 1 i , . . . C T i to detect changes in vertex i's behaviour. However, for a large dynamic network consisting of a large number of entities, it would not be computationally efficient to detect changes in every vertex's be-haviour using this method. Hence, this method is more suitable to track a small number of selected vertices that are identified as interesting in advance.
In most scientific studies, data are generated as multivariate time series. Some examples include, climate studies where time varying data are collected on multiple variables such as temperature, precipitation and water discharges (Jarušková, 1997) and studies on financial markets where data on asset returns are observed over time (Lavielle and Teyssiere, 2006).
Given multivariate time series data, a change in the correlation structure may indicate a change-point in the overall system. For example, neurons in parts of the brain show extreme synchronisation at the time of occurrence of a seizure (Jérémy et al., 2009). Thus, many researches have been conducted in detecting correlation changes in multivariate time series data (Aue et al., 2009;Müller et al., 2005;Bulteel et al., 2014;Cabrieto et al., 2017). As discussed previously in Section 4.2, Akoglu and Faloutsos (2010) obtain a time sequence of graphs from multivariate time series data and detect changes in their correlation structure.
We believe that it would be worthwhile to investigate the suitability of such a graph-based approach to tackle the change-point detection problem in multivariate time series data.
In Jiang et al. (2015), the similarity between the categorical vertex attributes in the graph are used to calculate a weighted adjacency matrix, where the weights can be the correlation coefficient or the cosine similarity between the vector of attributes attached to the two vertices forming an edge. However, Jiang et al. (2015)'s goal is edge prediction.
Nevertheless, this idea can also be utilized for the purpose of change detection. For example, it is possible to combine the weighted adjacency matrix obtained using categorical vertex attributes with the weighted adjacency matrix obtained using quantitative vertex attributes (Akoglu and Faloutsos, 2010) or edge attributes (Idé and Kashima, 2004) using a tensor (see Section 4.1 for a detailed discussion on tensors). It would be interesting to investigate whether the addition of categorical vertex attributes can improve change detection performance. Rossi et al. (2013) use multiple vertex attributes to detect vertices with unusual transitions in their behaviour. Each time instant is first represented as a vertex-by-attribute matrix, W t ∈ R n×f . These f attributes for the n vertices are calculated from the graph by using Rolx method discussed in Henderson et al. (2012). Using Non-negative Matrix Fac-torization (NMF) (Henderson et al., 2012), each W t is then decomposed as W t = Z t × F , where Z t ∈ R n×r and F ∈ R r×f . The r columns of matrix Z t contain the r latent factors for the f attributes in W t , which are described as roles in the paper. Thus, the n rows of Z t describe the membership of each vertex corresponding to the r roles at time instant t.
For each consecutive pair of time instants, the role transition model for a particular vertex, i, is estimated using NMF asẐ t i = T t i Z t−1 i . Based on the estimated role membership matrix,Ẑ t i , the change score for vertex i is calculated as Ẑt i − Z t i . Using this method, significant changes in a vertex's role transition behaviour can be detected. The drawback of being restricted to compare only consecutive time instants is removed by employing a stacked transition model. This model generalizes the former concept to compare k previous time instants from recent past with the current time instant t.

CHANGES IN EDGES
These methods aim to detect individual edges or groups of edges that show changes in their behaviour. Some examples of edge-based changes include the appearance of an edge between two vertices in the graph which represents entities that are very unlikely to interact with each other, or a large increase or decrease in the weight of an edge compared to the recent past. For example, in an author conference network, we may observe an author who usually publishes papers only in conference proceedings related to a particular research area.
However, at a certain point in time, he switches to a new research area and publishes a paper in a related conference proceedings. This forms an irregular connection with respect to his past connections in the network . Sricharan and Das (2014) use a method based on commute time distances to detect changes involving edges. Given a graph, the commute time distance between vertex i and vertex j is the expected return path length between vertex i and vertex j (Lovász, 1993).
A fast and reliable method was introduced by Khoa and Chawla (2012) to calculate commute time distances between vertices in large graphs. Sricharan and Das (2014) adopt this method to detect edges that undergo changes in a time sequence of attributed graphs with weighted edges. Their change detection method, CAD (commute time-based anomaly detection) measures change in the commute time distance between two vertices in a graph inorder to detect changes in the associated edges. First, the commute time distances between every pair of vertices in a graph are calculated. The change-score, Z t i,j , for an edge between vertex i and vertex j is then given by where W t is the weighted adjacency matrix and C t is the commute time distance matrix. A change in the edge weight between vertices, i and j, in turn affects the commute time distances between the neighbours of vertex i and vertex j. Measuring the change using C t and C t−1 alone has been shown to result in many high change scores even for unchanged edges.
Thus, Sricharan and Das (2014) include the term, |W t i,j − W t−1 i,j |, in Equation 5 to address this problem of false detections. According to the experimental results in Sricharan and Das (2014), CAD shows good performance in detecting changing relationships in many real-world networks. However, as CAD can only perform pairwise comparisons between consecutive graphs, it cannot be applied when several graphs from the recent past are required to characterize usual behaviour. In Section 4.1, we discuss how the reconstruction error of a tensor can be employed to detect changes in a dynamic multi-view network. Let A t be the tensor at time instant t at which a global structural change has occurred. The search can be further narrowed down to detect edges that have changed their behaviour the most. This can be achieved by examining the elements of the residual tensor, R t = |A t −Ã t | (Ranshous et al., 2015). The elements in R t that show the highest scores correspond to edges that have changed most.

CHANGES IN SUBGRAPHS
In some scenarios, unusual activity spreads throughout a certain neighbourhood in a network and prevails for some time period. For example, in a road network that consists of street intersections connected by road segments, an accident may suddenly increase the traffic density in road segments near to the accident. Such a change is reflected as a change in the behaviour of some vertices and edges in the corresponding graph, where road segments are denoted as edges and street intersections are denoted as vertices. In this case, rather than observing the behaviour of individual vertices or edges, it is more useful to keep track of a local region in the graph. A local region is a subgraph formed by a set of vertices that lie in close proximity to each other (Idé et al., 2009), such as, a set of vertices in a k-path (discussed later in the section) (Neil et al., 2013a), or a clique 5 (Chen et al., 2012).
The concept of a scan statistic originated in spatial statistics and image analysis to detect regions of unusual activity (Marchette, 2012). Scan statistics were then adopted in the area of network analysis to detect anomalous regions in a graph. Usually, a subgraph is defined centred at each vertex in the graph and a statistic is calculated. The subgraphs that show unusual values for this statistic are highlighted as anomalous. Priebe et al. (2005) use a scan statistics approach for change detection by detecting a subgraph that shows an unusual increase in interactions with respect to the recent past. The authors apply this method to a time sequence of graphs extracted from the Enron e-mail corpus 6 . Each graph represents the email communications between a group of Enron executives during a week, and contains directed, binary edges. The kth order neighbourhood of vertex i is the set of all vertices that lie within a shortest path length of at most k in the graph. The locality statistic for vertex i, Ψ t k,i , at time instant t is defined as the size of its k th -order neighbourhood. The locality statistic, Ψ t k,i , can also be considered as an attribute attached to a vertex at a given time instant. The maximum of the locality statistics, max i Ψ t k,i , is identified as the scan statistic at that time instant. By moving a window of length w over the time sequence of scan statistics, a change score is obtained at each time instant. Time instants that give high change scores are detected as change points. For a given change point, t, the vertices corresponding to max i Ψ t k,i are regarded as the vertices responsible for the detected change. When k = 1, the subgraph defining Ψ t k,i in Priebe et al. (2005) resembles a star that is centred at vertex i ( Figure 5). Computer networks are vulnerable to attacks by intruders. One common type of intruder behaviour is intruder traversal (Neil et al., 2013a). For example, an intruder sends an email containing a link to a malicious web site to a set of users. When a user clicks on the link, the user's computer gets infected and the intruder gains access to that computer. From this computer the intruder then compromises to another computer in a similar manner. In this way, the intruder traverses the whole computer network, accessing valuable data at each infected computer. Figure 6 illustrates the traversal behaviour of an intruder in a network. computer network. A k-path is a directed subgraph, where both its size and diameter are equal to k (Kolaczyk, 2009). Neil et al. (2013a)

obtain scan statistics by fitting a Hidden
Markov Model (HMM) on the edges of each k-path in the graph. Similar to the procedure followed in Priebe et al. (2005), k-paths that show different behaviour compared to their recent past are detected using a moving window approach.
A chatter anomaly is a group of vertices that show increased number of connections compared to their past behaviour. Pao et al. (2011) compare the power of several statistical tests in detecting a chatter anomaly appearing in an Erdős Rènyi random graph (Erdős and Rényi, 1959). They showed that none of the considered global (size,order) as well as local (degree, size of kth order neighbourhood) graph attributes produced a uniformly powerful test for the purpose of the detection of the chatter anomaly. A recent study by Park et al. (2013) utilizes these graph attributes simultaneously to detect change points caused by a chatter anomaly in a dynamic network. The graphs are assumed to be generated from a latent process model (Lee and Priebe, 2011) (detailed discussed in Section 5). The new statistic the authors derive, is a linear combination of the nine graph attributes discussed in Pao et al.
(2011)'s work. Tang et al. (2013) investigate the same test statistic for change detection on an attributed random graph, where the edges are annotated with a single categorical attribute.
Although not directly targeted at change detection, the 'Timecrunch' algorithm introduced in Shah et al. (2015) employ an information theoretic approach to understand the behaviour of a particular subgraph observed at each time instant. They assume that the most common types of subgraphs that can be found in real world networks are stars, full and near cliques, full and near bipartite cores and chains (Kleinberg et al., 1999). Each time instant is analysed to find the above mentioned subgraph types. Using a Minimum Description Length (MDL) principle, the temporal behaviour of these subgraphs is inferred.
Two subgraphs in different time instants are identified as the same type, only if there is a substantial overlap in the set of vertices comprising them. Subgraphs that appear only at one time instant are classified as 'Oneshot'. A subgraph that appears over a period of consecutive time instants is called as 'Ranged'. Some subgraphs appear and disappear in random time instants, these are characterized as 'Flickering'. Subgraphs that appear at fixed time intervals showing a seasonal behaviour are characterized as 'Periodic'. 'Constant' subgraphs are the ones that are found to be present across all time instants.

Communities
A community is a special type of subgraph. There exist several definitions of a community in the network analysis literature. In some publications that use probabilistic model-based approaches to detect community structure in graphs (Holland et al., 1983;Aicher et al., 2014), a community is defined as a set of vertices that are stochastically equivalent. In other publications, a community is defined as a dense subgraph. Some examples along this line of research include, community detection through spectral clustering (Ng et al., 2001), hierarchical clustering (Newman, 2004) and maximization of the so called "NewmanGirvan" modularity function (Newman, 2004). In all the latter mentioned publications, a community consists of a group of vertices that have higher number of edges within the group than between the group and the rest of the graph. For example, in a social network, a community may correspond to a board of directors in a company who have stronger connections among themselves than with others.
Communities in real-world networks are usually stable over time (Koujaku et al., 2013).
Thus, deformation in community structure is a good indication of a change occurring in the network. Chen et al. (2012) define a community as a dense subgraph and discuss six basic changes that can occur in community structure of a graph (Figure 7):

Grown community
Vertices get added into a smaller community, causing the community to grow into a larger community. The size of the community at time instant t is greater than its size at t − 1.

Shrunken community
Community members leave a community, causing the community to become smaller.
The size of the community at time instant t is less than its size at t − 1.

Merged community
At time instant t−1, there were two communities. These two communities join together and form a single larger community at time instant t.

Split community
One community at time instant t − 1 divides into two communities at time instant t.

Born community
The edges between a set of vertices increase and form a community at time instant t.
This scenario uses the same notion as the form scenario discussed in Peel and Clauset (2015).

Vanished community
A community that prevailed at time instant t − 1 disappears at time instant t because relationships between members cease to exist. The same change is also referred to as fragment in Peel and Clauset (2015). Koujaku et al. (2015) perform experiments to detect the above-mentioned six types of changes in community structure. Their method employs two moving windows for change score calculation. At each time instant, the first window contains time instants from t−w +1 to t and the second window contains time instants from t + 1 to t + w. Let G − be the graph constructed from the time instants in the first window and let G + be the graph constructed from the time instants in the second window. A set of communities, U − , and another set, U + , are extracted 7 from G − and G + , respectively. A change score, z t , is then calculated by using the Variational Information (VI) (Meilȃ, 2003) between U + and U − . This is given by where H and I are the entropy and mutual entropy defined as Figure 7: Possible changes occurring in community structure (taken from Chen et al. (2012) with permission).
Finally, once a time sequence of change scores is obtained, a threshold, θ, is defined and time instants with change scores exceeding this threshold are detected as change points. In Section 4.1, we discuss how we can represent a dynamic network with multiple edge attributes as a four-dimensional tensor. Koutra et al. (2012) represent the traffic measurements of a computer network as an n × m × f × t tensor, A, where the four dimensions represent source IP addresses, destination IP addresses, port numbers of the connections and time instants, respectively. They then do PARAFAC decomposition (Harshman, 1970)  and obtain factor matrices, track them inorder to investigate changes in user behaviour and to detect intruder attacks in the computer network. For example, Figure 9 shows a plot of the same columns taken from each of the factor matrices, U,V , W and X. We observe suspicious behaviour on port 1544.
The connection on port 1544 by a particular source IP address to a particular destination IP address is established periodically with perfectly evenly spaced spikes of activity. This type of behaviour is called a bot attack. Intruders in computer networks often exhibit this type of behaviour . In Figure 10, from another common column taken from each of the four factor matrices, we observe an overwhelming burst of traffic concentrated in a certain time interval on port 80 by a particular IP address connected to several destination IP addresses. This type of behaviour resembles a human browsing several websites during a given time interval. Koutra et al. (2012)'s tensor-based change detection method is called tensor-splat. Tensor-splat is used for detecting changes in many real-world networks. For example, the DBLP dataset 8 consists of a large collection of papers that appeared at different conferences written by a number of authors over several years. Koutra et al. (2012) build a tensor with dimensions, 418000 × 3.5000 × 49, with the three dimensions representing authors, conferences, and years, respectively. When the tensor is decomposed using PARAFAC as described earlier, the communities indicated by the factor matrix representing authors, signify groups of authors who come from similar research areas. Using tensor-splat, Koutra et al. detect bridge authors who gradually changed their research area over time. Peel and Clauset (2015) discuss a parametric probabilistic approach to change detection.
They assume each graph in the time sequence to be generated from a generalized hierarchical random graph model (GHRG), which is an improved version of the hierarchical random graph model (HRG) discussed in Clauset et al. (2007 (Azarnoush et al., 2016;Li et al., 2016;Peel and Clauset, 2015;Rossi et al., 2013;Tang et al., 2008). Another popular dynamic network dataset is the Dblp dataset (http://dblp.uni-trier.de/db/). It contains bibliographic information in the area of computer science. Koutra et al. (2012), Yu et al. (2014), Sun et al. (2006) and Ji et al. (2013) are some of the papers that use the Dblp dataset in their experiments. Their discussions are helpful in evaluating the outcomes of a new change detection method. Furthermore, Ranshous et al. (2015) in their review paper, provide a comprehensive collection of publicly available datasets. In addition to these resources, we find some more interesting dynamic network datasets in <http://projects.csail.mit.edu/dnd/>. However, majority of these datasets do not contain multiple attribute information on vertices and edges.
We direct the interested reader to <http://leitang.net/heterogeneous_network.html> , which provides access to three datasets, Enron, Dblp and You-tube that are rich with attribute information and also contain references to past publications that have analysed these datasets. Moreover, the 'High School Contact and Friendship' dataset available at <http://www.sociopatterns.org/datasets/> contains heterogeneous edge information that can be useful in obtaining an attributed dynamic network.
Another way to evaluate the quality of a method is by applying it to a simulated network. Leskovec et al. (2005) proposed a model that can generate a network with several real-world graph properties such as 'preferential attachment', 'shrinking diameter' and 'densification power law characteristic'. We refer the reader to Aggarwal and Subbian (2014) and the references therein for a detailed description about these characteristics. The graph at time t is generated by the Kronecker product of the binary adjacency matrix at time t − 1 by itself.
A certain drawback of this method is the result of large multiplicities on the edges due to the Kronecker product between binary matrices. Leskovec et al. call this as the 'staircase effect'.
This problem has been resolved by the use of Stochastic Kronecker graphs. This produces a time sequence of weighted graphs where the weight of an edge is the probability of its existence. Akoglu et al. (2008) extend the above mentioned Kronecker recursion method to a tensor-based method. Initially the dynamic network is represented as a 3-dimensional tensor where the first and second dimensions represent the adjacency matrix of the graph and the third dimension represents time. Then the initial tensor is multiplied k times recursively by itself to obtain the final tensor that represents the data. Empirical results in Akoglu et al. (2008) show how the graphs generated by this proposed network generator successfully mimic real world properties in weighted and unweighted dynamic networks.
Some authors apply the concepts of latent position models (Hoff et al., 2002) to generate a time series of graphs. Latent position models are a group of random graph models that characterize the structure of the graph using latent vectors associated with the vertices. Lee and Priebe (2011), propose the latent process model to generate a time sequence of graphs with weighted edges. This model is developed based on the concept of the Random Dot Product Graph (RDPG) model (Nickel, 2007).  (Holland et al., 1983). The SBM is a random graph model that groups the vertices in the graph into several blocks, and the probability of an edge between two vertices depend mainly on their block membership. For each vertex in the graph, Wang et al. generate a latent vector using a Dirichlet distribution. Similar to an RDPG model, the probability of an edge between two vertices is then defined as the dot product of the corresponding latent vectors. By tuning the parameters of the Dirichlet distribution, the authors generate graphs from an SBM (Sussman et al., 2012). To get a general understanding about the underlying mechanisms of each of these random graph models, we direct the reader to Goldenberg et al. (2010) and Salter-Townshend et al. (2012).
In this paper, we review several change detection methods for dynamic attributed networks.
We mainly categorize these approaches based on the structure level of the graph investigated to quantify the change. We also provide useful resources for dynamic network datasets. Finally, we review different synthetic network generating mechanisms for the interested reader.
The field of change detection in dynamic networks is a new and growing area. However, there are only a handful of publications that exploit vertex and edge attribute information.
Addition of attribute information result in high dimensional data, that complicate the detection procedure in a dynamic scenario. However, due to its huge applicability to many real world situations, the popularity of this research area is rapidly growing. There is a high demand for scalable algorithms that can efficiently analyse this type of data (Big Data).
Throughout this review paper, we guide the reader to possible paths of exploration in this direction.