转载请注明出处
原文链接:(https://ieeexplore.ieee.org/abstract/document/8486231)
这篇文章主要是用来做实体对齐的,简单点说就是在传统方法的基础上引入了deep learning
文章在我看来主要分为了3个部分
首先第一个部分是随机采样,一个类似于deepealk或者谷歌的random walk的操作。
第二个部分是训练向量,利用skip-gram做一个embedding,这里的做法比较传统,同样是利用负采样,0.75平滑处理
在介绍第三个部分的时候,要介绍一下文章说明的mapping function。
我们首先在给定的一对网络A和B之间预训练两个初步映射函数, 然后,用户身份链接可以形式化为一个双学习游戏,
网络A中锚节点~a的嵌入表示(矢量)可以映射到一个向量~b0使用Φ(A→B)表示其在网络B中的代理。
可以理解成这张图:
然后就是利用train anchor做一个网络之间的MLP,我们需要最小化ui和uj之间的loss,由此来更新mapping function。
上面那个只是针对一个anchor的,在实际的n个anchor中 我们采用的表达式是这样的:
随后提出了一个我并没有过多了解的东西dual learning, 上面的自动映射过程未考虑到用于训练的锚点。 换一种说法,假设我们有n个锚节点,当T R%用于训练,然后使用T E%(1-T R%)进行评估/测试。为了充分利用这些锚节点,我们采用了一种变体双重学习,最初用于自然语言翻译,现在用于用户身份链接的任务。
经过部分锚点预训练的–可以投射,Gs的向量到Gt,反之亦然。 然后我们改善两个通过利用Φ和Φ‘的对偶性来实现映射功能,接下来描述实现此目标的两个步骤。
现有的大多数工作(例如,[7]、[8])都使用标记的锚节点-即一对节点的对齐是已知的-对齐两个网络。 然而,未标记的锚节点,通常是我们 用于测试的ED,也是网络对齐的信息。具体地,对于Gs中的每个锚节点(标记和未标记)ub,我们首先通过Φ映射:v0(Ub)=Φ(v(Ub))获得v0(Ub),然后通过Φ존1(v0(Ub)从Gt映射回来,得到向量v00(Ub)。 请注意,在这个无监督的学习过程中不需要标签,因此标记和未标记的锚节点之间没有区别。 这种自动化的损失(类似于autoencode) [43]中的r是根据v(UB)和v00(UB)之间的差异计算的。 此外,一个网络中的锚节点相对于另一个网络是盲目的。 我们用同样的方法对 GT→Gs模型。 在这次无监督的预训练之后,我们有两个弱映射函数Φ和Φ존1,这将在下一步进一步改进-如下所述。
利用标记的锚节点通过玩双学习游戏来改进映射函数Φ和Φ1。具体地,我们为n个锚节点设置h批量,其中每个批具有bn/hc标记节点。 每个批处理形成一个集,其中一个锚节点ua表示状态sa