该文章主要参考吕琳媛的《复杂网络链路预测》以及博文《链路预测(Link prediction)中常用的评价指标(evaluation metrics)》。
问题定义及评价指标
定义 ( G , V , E ) ( G, V, E) (G,V,E) 为一个无向网络,其中 V \small V V为节点集合, E \small E E为边集合。网络总的节点数为 N \small N N,边数为 M \small M M。该网络共有 N ( N − 1 ) 2 \small \frac{N(N-1)}{2} 2N(N−1)个节点对,即全集 U \small U U。
将已知的连边 E \small E E分为训练集 E T \small E^T ET和测试集 E P \small E^P EP 两部分。从数据集中选取一部分边作为测试集 E P \small E^P EP,并将这部分边从数据集中删去,由数据集中剩余部分的边作为训练集 E T \small E^T ET。显然有 E = E T ∪ E P \small E=E^{T} \cup E^{P} E=ET∪EP,且 E T ∩ E P = ∅ \small E^{T} \cap E^{P} = \emptyset ET∩EP=∅ 。同时,网络中还有一些节点之间并没有边相连,将这些边称为不存在的边。假设在该集合 U − E \small U-E U−E中有一些缺失的链接(或将来会出现的链接),链接预测的任务是找出这些链接。
衡量链路预测算法精确度的指标有三种:AUC、Precision、Ranking Score。
1. AUC
AUC从整体上衡量算法的准确性。链路预测算法在经过训练后可以得到网络中每一对节点的相似值 S i m \small Sim Sim(亦即边的相似值)。AUC指标即是基于测试集中边的相似值和不存在的边的相似值的比较(即以不存在的边作为基准)。
若
S
i
m
测
试
>
S
i
m
不
存
在
\small Sim_{测试}>Sim_{不存在}
Sim测试>Sim不存在,则数值的分子加1(此时证明预测效果良好);
若
S
i
m
测
试
=
S
i
m
不
存
在
\small Sim_{测试}=Sim_{不存在}
Sim测试=Sim不存在,则数值的分子加0.5(此时相当于随机选择);
若
S
i
m
测
试
<
S
i
m
不
存
在
\small Sim_{测试}< Sim_{不存在}
Sim测试<Sim不存在,则数值的分子加0(此时预测效果非常差)。
数值的分母则是测试集中的边的相似值与不存在的边的相似值比较的次数。
AUC指标即为数值分子与数值分母的比值,AUC大于0.5的程度衡量了算法在多大程度上优于随机选择的算法。
2. Precision
Precision只考虑前 L \small L L位的边是否预测准确。链路预测算法经过训练后会得到节点对之间的相似值,去除训练集 E T \small E^T ET中的边,仅将测试集 E P \small E^P EP和不存在的边集合中的边的相似值进行排序,排序后取前 L \small L L个。假设 L \small L L个中有 N \small N N个属于测试集,那么Precision值为 N L \small \frac{N}{L} LN。
3. Ranking Score
Ranking Score只考虑所测试的边的排序。令
H
=
U
−
E
T
\small H=U-E^{T}
H=U−ET为未知边的集合(即测试集中的边和不存在的边的集合构成的集合),
r
i
\small r_{i}
ri表示未知边
i
∈
E
P
\small i \in E^{P}
i∈EP在排序中的排名,则该条未知边的Ranking Score(RS)值为
R
S
i
=
r
i
∣
H
∣
\small RS_{i} = \frac{r_{i}}{|H|}
RSi=∣H∣ri,
∣
H
∣
\small |H|
∣H∣为
H
\small H
H中的元素个数。遍历所有在测试集中的边,得到算法的
R
S
\small RS
RS值为
R
S
=
1
∣
E
P
∣
∑
i
∈
E
P
R
S
i
=
1
∣
E
P
∣
∑
i
∈
E
P
r
i
∣
H
∣
\small RS = \frac{1}{|E^{P}|}\sum_{i\in E^{P}}^{}{RS_{i}} =\frac{1}{|E^{P}|}\sum_{i\in E^{P}}^{}\frac{r_{i}}{|H|}
RS=∣EP∣1∑i∈EPRSi=∣EP∣1∑i∈EP∣H∣ri.
以上三个指标主要以AUC为主,在AUC基本相同的情况下,可以再以Precision作为标准衡量算法精确度。