• 论文阅读 Dynamic Network Embedding by Modeling Triadic Closure Process


    3 Dynamic Network Embedding by Modeling Triadic Closure Process

    link:https://scholar.google.com.sg/scholar_url?url=https://ojs.aaai.org/index.php/AAAI/article/view/11257/11116&hl=zh-TW&sa=X&ei=HSiOYtaAE4a4ygS4j4ioAg&scisig=AAGBfm3pULFHq0jItuRofWLIic0PONocIw&oi=scholarr

    Abstract

    本文提出了一种利用三元组闭包过程来建模时间序列的方法。

    Conclusion

    在本文中,我们提出了一种新的动态网络表示学习算法,以及一种学习顶点动态表示的半监督算法。为了验证模型和学习算法的有效性,我们在三个真实网络上进行了实验。实验结果表明,与几种最先进的技术相比,我们的方法在六个应用中取得了显著的效果。(基本属于啥都没说)

    Figure and table

    image-20220526104316389

    图1 动态社交网络的例证。用户A和B有不同的社交策略。例如,用户A倾向于介绍她的朋友来相互联系,而用户B倾向于将她的朋友留在自己的社区中。

    image-20220526111748910

    表1 数据集参数

    image-20220526111813508

    表2 模型表现(应该是测了两次)

    image-20220526112523584

    图2 超参数分析

    image-20220527100556649

    图3 使用2D t-SNE的可视化,数据集为academic。

    Introduction

    There is nothing permanent except change.— Heraclitus

    如图1,作者认为在时间步t+1t+1,A的两对朋友相互连接,而B的朋友之间仍然没有链接。此外,用户B在时间步t+1t+1时会将精力分散到其他朋友身上,而用户A则一直专注于发展与时间步t时相同朋友的关系。用户的不同进化模式反映了他们自己的性格和社交策略之间的差异,这些策略用于满足他们的社交需求,如与他人建立联系。例如,用户A倾向于相互介绍她的朋友,而用户B倾向于让她的朋友在自己的社区中保持紧密联系。因此,学习到的表示是否能很好地反映顶点的演化模式是网络嵌入方法的关键要求。

    在本文中,通过捕捉网络的进化结构特性来学习顶点的嵌入向量。

    具体来说 ,本文通过使用三元组的闭合过程来模拟网络结构的动态变化。

    本文有三点贡献

    1)我们提出了一种新的动态网络表示学习模型。我们的模型能够保留网络的结构信息和演化模式。

    2)我们开发了一种用于参数估计的半监督学习算法。

    3)模型可以在几个最先进的基线上实现显著的改进(例如,在链路预测方面,F1提高了34.4%)。

    Method

    Our Approach

    Model Description

    三元闭合过程:从时间t的一个开放三元组(vivjvk)(vivjvk)的示例开始,其中,用户vivivjvj彼此不认识,但他们都是vkvk的朋友(即eikejkEteikejkEteijEteijEt)。现在,用户vkvk将决定是否引入vivivjvj,让它们相互了解,并在下一个时间步t+1t+1在它们之间建立连接。我们自然会假设vkvk将根据她与vivivjvj(在潜在空间中)的接近程度做出决定,这由dd维向量xtijkxtijk量化为

    xtijk=wtik(utkuti)+wtjk(utkutj)1

    其中wtik是在t时刻vivk的强度(应该是线性变换的可训练矩阵)

    utk是在t时刻vk的嵌入表示

    此外,定义了一个社交策略参数θ,它是一个维度向量,用于提取嵌入每个节点潜在向量中的社交策略信息。

    基于上述定义,定义开放三元组(vivjvk)演变为闭合三元组的概率。即在vk的介绍(或影响)下,vivj将在时间t+1时在它们之间建立链接的概率如下(将上述的距离用sigmoid映射为[0,1]的概率)

    Pttr(i,j,k)=11+exp(θ,xtijk)2

    同样,vivj可能由他们的几个共同朋友介绍,因此,我们的下一个目标是联合建模多个开放三元组(具有一对共同的未链接顶点)是如何演化的。首先定义集合Bt(i,j)vivjt时间的共同邻居,并且定义一个向量αt,i,j=(αt,i,jk)kBt(i,j),其中对于每一维的值如下定义,如果t+1处的开放三元组(vivjvk)将发展为闭合三元组。换句话说,在vk的影响下,vivj将成为朋友,则为1。

    很明显,一旦(vivjvk)闭合,所有与vivj相关的开放三元组都将关闭。因此,通过进一步假设每个普通朋友对vivj潜在链接的影响之间的独立性,我们将在时间步t+1创建新链接eij的概率定义为(伯努利分布)

    Pttr+(i,j)=αt,i,j0kBt(i,j)(Pttr(i,j,k))αt,i,jk×(1Pttr(i,j,k))(1αt,i,jk)3

    同时,如果vivj没有受到任何共同朋友的影响,则不会创建边缘eij。我们将其概率定义为

    Pttr(i,j)=kBt(i,j)(1Pttr(i,j,k))4

    将上述两条可能的开放三元组(vi、vj、vk)演化可能放在一起,

    且定义

    St+={(i,j)eijEteijEt+1}为在t+1时刻成功创建链接的集合,

    St={(i,j)eijEteijEt+1}为在t+1时刻没有创建链接的集合

    然后,我们将三元组闭合过程的损失函数定义为数据的负对数似然:

    Lttr=(i,j)St+logPttr+(i,j)(i,j)StlogPttr(i,j)5

    社会同质性与时间平滑:我们利用另外两个假设来加强DynamicTriad:社会同质性与时间平滑。社会同质性表明,高度连接的顶点应该紧密嵌入潜在的表示空间中。形式上,我们将两个顶点之间的距离vjvk的嵌入utjutk定义为

    gt(j,k)=utjutk226

    在当前时间步t,我们将所有顶点对分为两组

    边组:Et+=Et

    和非边组:Et={ejkj{1,,N},k{1,,N},jk,ejkEt}

    根据同质性假设,如果两个顶点相互连接,它们往往嵌入在潜在表示空间中更紧密,所以对于社会同质性的基于排名的损失函数为

    Ltsh=(j,k)Et+(j,k)Eth(wjk,[gt(j,k)gt(j,k)+ξ]+)7

    这里先提一下排名损失函数(ranking loss-based function),知乎回答链接:https://zhuanlan.zhihu.com/p/158853633
    ranking loss的目的是去预测输入样本之间的相对距离。这里用的是两个节点去做三元组的排名损失变种(因为这里没有锚点),希望正样本gt(j,k)的距离越小越好(接近于0),负样本gt(j,k)的距离越大越好(起码大于一个边界值ξ

    其中[x]+=max(0,x)

    ξ是边界值(margin value)

    函数h.,.结合了权重和嵌入差异度量,通常h(w,x)=w·x

    假设一个网络会随着时间的推移而平稳发展,而不是在每一个时间步中完全重建。因此,我们通过最小化相邻时间步长中嵌入向量之间的欧氏距离来定义时间平滑度。形式上,相应的损失函数为

    Ltsmooth={Ni=1utiut1i22t>10t=1(8)

    因此,给出第一个T时间步的总体优化问题是

    argmin{uti},θTt=1Ltsh+β0Lttr+β1Ltsmooth9

    Model Learning

    对数似然近似:从三元闭包的损失开始(等式5),对于计算非边的项(i,j)StlogPttr(i,j)可计算为如下(浅推了一下,只能说通透):

    (i,j)StkBt(i,j)θ,xtijk+log(1+exp(θ,xtijk))10

    推导如下

    image-20220529111558898

    但是比较棘手的是第一项的正采样,因为αt,i,j具有指数数量的可能值,为了解决这个问题,我们采用了一种类似于期望最大化(expectation maximization,EM)算法的方法来优化这个项的上界。具体来说,我们计算该项的上界为

    (i,j)St+logPttr+(i,j)(i,j)St+kBt(i,j)Ctijkθ,xtijk+log(1+exp(θ,xtijk))11

    其中

    Ctijk=1Pttr(i,j,k;θ(n),u(n))1kBt(i,j)(1Pttr(i,j,k;θ(n),u(n)))12

    可以在迭代开始时给定ijkt预先计算,θ(n)u(n)是当前迭代下的模型参数。由于篇幅有限,省略了推导细节。结合式(10)和式(11),我们得到了Lttr的上界

    {(i,j)eijEt},kBt(i,j)log(1+exp(θ,xtijk))+(I(eijEt+1)Ctijk+I(eijEt+1))θ,xtijk13

    采样:如果对所有正负样本均进行计算,开销较大。所以采样策略为在时间步t处给定一个正采样(边)ejk,先随机选择一个节点vj{j,k},再从其他节点随机选择一个节点vk,使得vj,kEt,即为负采样。

    对每个边ejk重复采样过程,我们将训练集定义为Etsh={(j,k,j,k)(j,k)Et},损失函数可以表示为

    Ltsh,1=(j,k,j,k)Etshh(wjk,[gt(j,k)gt(j,k)+ξ]+)14

    对于三元组闭合过程的损失函数,(j,k,j,k)Etsh。我们首先从vjvk中随机选择一个顶点,在影响结果的情况下,我们假设选择了vk。然后我们的目标是采样一个顶点vi,其中eikEt,eijEt,所以我们得到一个开放的三元组ijk,其中vk连接vivj。开放三元组可以是一个正实例,也可以是一个负实例,取决于它是否在下一个时间步骤中闭合(即eijEt+1),结合公式13如下

    Lttr,1=(j,k,j,k,i)Ettrlog(1+exp(θ,xtijk))+(I(eijEt+1)Ctijk+I(eijEt+1))θ,xtijk15

    由于Lttr,1依赖于时间步t+1处的信息,最后一个时间步T有一个特例

    Lttr,2={Lttr,1,t<T0,t=T16

    综上所述,训练阶段的总体损失函数为

    L=Tt=1(Ltsh,1+β0Lttr,2)+β1T1t=1Ni=1ut+1iuti2217

    其中前两项共享一组相同的样本,第三项对应于时间平滑度。

    image-20220529213631519续联

    算法流程如上

    优化:采用随机梯度下降(SGD)框架和Adagrad方法。

    Experiment

    Experimental Results

    Data Sets

    Mobile, Loan,Academic

    参数信息见表1

    Tasks and Baselines

    六个任务:节点分类,节点预测,链接重构(两个节点是否存在边),链接预测(和重构的区别是根据当前时间步t的嵌入,去预测下个时间步t+1中边缘的存在),更改链接重建和预测。

    三个baseline:DeepWalk,node2vec,Temporal Network Embedding 。

    Quantitative Results

    具体sota见表2

    参数对本文模型的影响见图2(影响较小)

    嵌入可视化见图3

    Summary

    本文通过捕捉网络中三元组的闭合来达到建模网络演化过程,在动态图中是一种较为独特的思路,公式较多,但是解释清楚。尤其是对正样本的损失处理为了避免指数数量的可能值,采用了一种类似于期望最大化算法的方法来做,很巧妙。

  • 相关阅读:
    修改Cpython解释器为python单文件代码加密(无import自己模块)
    【部署】Linux Shell脚本部署java程序 (jar包)
    基于JAVA农产品的物流信息服务平台计算机毕业设计源码+系统+mysql数据库+lw文档+部署
    ssm基于web的教务管理系统毕业设计源码261620
    GBRank:一种基于回归的排序方法
    Spring In Action 5 学习笔记 chapter4 Spring Security部分关键点
    《动手学深度学习 Pytorch版》 10.1 注意力提示
    java烧脑总结:技术的本质?到底什么是数组?数组为何查询快插入慢?
    计算机毕业设计(附源码)python智慧校园系统
    货币银行学试卷及答案
  • 原文地址:https://www.cnblogs.com/luoyoucode/p/16325033.html