动态图(动态网络)有多种形式的表示,以下对此进行一个系统的阐述。
(接触序列-Contact Sequence)
在下图中,有
N
N
N个顶点
V
V
V在特定时间彼此交互,并且交互的持续时间可以忽略不计,即交互发生在时间点上(个体间发生的交互事件的时长信息对网络的建模、分析影响不大)。系统可以由接触序列表示——一组
C
C
C个交互,三元组
(
i
,
j
,
t
)
(i,j,t)
(i,j,t),其中
i
,
j
∈
V
i,j∈V
i,j∈V,
t
t
t表示交互时间。对于
e
∈
E
e∈E
e∈E,可以用非空的接触次数集合
T
e
=
{
t
1
,
…
,
t
n
}
T_e=\{t_1,…,t_n\}
Te={t1,…,tn}。
适合表示为接触序列的典型系统包括通信数据(电子邮件、电话、文本消息等的集合),以及联系持续时间不那么重要的物理接近数据(例如sexual networks)。对接触进行排序(首先按时间戳排序,然后按其最小顶点索引排序,最后按其最大顶点索引排序)。
(区间图-Interval Graph)
在下图中,边在一组时间上不是活跃的,而在一组区间
T
e
=
{
(
t
1
,
…
,
t
1
’
)
,
…
,
(
t
n
,
…
,
t
n
’
)
}
T_e=\{(t_1,…,t_1’),…,(t_n,…,t_n’)\}
Te={(t1,…,t1’),…,(tn,…,tn’)}是活跃的,即交互发生在一段时间间隔内,圆括号表示活动的周期。当且仅当
i
i
i和
j
j
j之间有接触时,在
i
i
i和
j
j
j之间有一条边的静态图称为(时间)聚合图。
以区间图建模的系统的例子包括接近网络(其中一个接触可以表示两个人已经彼此接近了一段时间),季节性食物网(其中一个时间间隔表示一个物种在一年中的某个时间是另一个物种的主要食物来源),以及像互联网这样的基础设施系统。对于区间图,我们假设没有空的或重叠的区间。
如果交互持续时长不可忽略,如手机通话数据网络中,用户
A
A
A在
t
1
t_1
t1时刻给用户
B
B
B打电话,在
t
2
t_2
t2时刻结束通话,则这个事件可以用
(
A
,
B
,
t
1
,
t
2
−
t
1
)
(A,B,t_1,t_2-t_1)
(A,B,t1,t2−t1)表示。
(快照序列-Snapshot Sequence)
快照序列也称为切片网络。其将发生在同一离散时间步的接触分组到一个图中(在一些文献的术语中称为“Graphlet”)。并将时间网络呈现为图的时间序列。
将时序网络的观察期
[
t
1
,
t
1
+
T
)
[t_1,t_1+T)
[t1,t1+T)分成
M
M
M个时间窗口,每个时间窗口的长度
Δ
t
=
T
/
M
Δt=T/M
Δt=T/M,可以得到
M
M
M个连续、等长且不重叠的时间窗口
{
[
t
1
,
t
1
+
Δ
t
)
,
[
t
2
,
t
2
+
Δ
t
)
,
…
,
[
t
n
,
t
n
+
Δ
t
)
}
\{[t_1,t_1+Δt), [t_2,t_2+Δt),…, [t_n,t_n+Δt)\}
{[t1,t1+Δt),[t2,t2+Δt),…,[tn,tn+Δt)},其中
t
i
=
t
1
+
(
i
−
1
)
Δ
t
)
t_i=t_1+(i-1)Δt)
ti=t1+(i−1)Δt)。如果网络中的任意一个节点对在对应的时间窗口处至少有一次交互,则在该时间窗口下的网络中为对应节点对添加一条边。所有这些连边构成边集
E
m
E_m
Em,则图
G
m
=
(
N
,
E
m
)
G_m=(N,E_m)
Gm=(N,Em)就是时序网络G在时间窗口
[
t
m
,
t
m
+
Δ
t
]
[t_m,t_m+Δt]
[tm,tm+Δt]的快照。快照序列
G
1
,
G
2
,
…
,
G
M
{G_1,G_2,…,G_M}
G1,G2,…,GM中的元素分别是时序网络G在各个时间窗口的快照。时间窗口的长度Δt被称为是时序网络G的时间分辨率。
由于这种表示法很容易将时态网络结构视为不断演变的静态网络结构(这遗漏了时态网络的许多独特之处),因此我们倾向于使用接触序列。此外,在许多具有高时间分辨率的真实数据集中,在数万个顶点中的一个时间步长上只存在少数几条边,这使得图序列表示有点奇怪(但这实际上只是一个品味问题)。
(标签图表示)
将相邻节点间发生交互的所有时刻及时长(也可以省略时长信息)标记在它们的连边上,以此来表示网络中事件发生的时间信息。
标签图可以直接地表示节点间的交互事件的发生时刻和突出网络的拓扑结构。但作为一个时间聚合后的结果图,节点间的时序距离、时序可达、网络的连通性以及事件的阵发性等含有时间维度的属性并没有被直观地展示出来。
以上几种是常见的图或网络的可视化表示,以下阐述几种不常见的表示方法。
(时间序列表示)
边集E中的元素可以用四元组(A,B,t1, δt)表示个体i与个体j在时刻t开始并持续时长为δt的交互,如手机通话数据网络中,用户A在t1时刻给用户B打电话,在t2时刻结束通话,则这个事件可以用(A,B,t1,t2-t1)表示,网络中的所有通话记录都可以表示成这样的四元组,所有的四元组构成的序列就表示了手机通话数据的时序网络。如{(2,4,0,40),(2,5,40,10),(4,5,60,50),(2,3,70,15),(1,2,130,15),(1,4,140,35),(2,3,210,25)}就是包含5个节点的一个时序网络。其可以可视化为下图:
(时线图表示)
时序网络中的每个节点对应图中的一根水平线,水平线从左至右表示时间由先至后,每个点参与交互事件的时刻用黑色小圆标记在各自的水平线上。黑色小圆之间的每一根垂直连线表示一个事件,两端的黑色小圆表示事件发生的时间点,它们所在的水平线对应参与事件的节点。
此外,还有第二种表示形式时序网络中的每个发生交互的节点对对应图中的一根空心矩形水平线,水平线从左至右表示时间由先至后,节点间发生交互的时间用水平线上的一段蓝色矩形表示。它直观的表现了事件发生的时刻、时长,可以观察节点间的可达性、连通性(如果网络规模足够小),也可以直接从个体层面观察事件是否有阵发性。
标签图和时线图均只适用于论述模型时,用于模型的示意和解释,而不能用于可视化真实的时序网络。
(矩阵表示)
时序网络中的每一个快照
G
m
=
(
N
,
E
m
)
G_m=(N,E_m)
Gm=(N,Em)都可以用一个邻接矩阵
A
[
t
m
]
A[t_m]
A[tm]来表示。与静态网络中的定义类似,如果节点i和节点j在时间窗口
[
t
m
,
t
m
+
Δ
t
[t_m,t_m+Δt
[tm,tm+Δt]内有交互,即
e
i
j
(
t
m
)
∈
E
m
e_{ij}(t_m)∈E_m
eij(tm)∈Em,那么
a
i
j
(
t
m
)
=
1
a_{ij}(t_m)=1
aij(tm)=1,否则
a
i
j
(
t
m
)
=
0
a_{ij}(t_m)=0
aij(tm)=0。因此,时序网络快照序列
G
1
,
G
2
,
…
,
G
M
{G_1,G_2,…,G_M}
G1,G2,…,GM可以用一个二维邻接矩阵序列
{
A
[
t
1
]
,
A
[
t
2
]
,
.
.
,
,
A
[
t
M
]
}
\{A[t_1],A[t_2],..,,A[t_M]\}
{A[t1],A[t2],..,,A[tM]}或是一个含时间维度的三维矩阵
A
A
A来表示。
矩阵表示通常在对数据进行处理时使用。
在将数据表示为网络时,我们需要根据具体的场景来选择对应的表示方式。