【论文翻译】异构社交网络语义用户搜索的子图增强路径嵌入

异构社交网络语义用户搜索的子图增强路径嵌入

摘要

语义用户搜索是异构社交网络中的一项重要任务。它的核心问题是测量网络中两个用户对象之间的接近度。最先进的解决方案通常采用基于路径的方法,该方法使用连接查询用户和目标用户的对象序列来测量它们的接近度。尽管他们成功了,我们断言路径作为低阶结构不足以捕捉两个用户之间丰富的语义。因此,本文引入了一个新的子图概念——语义用户搜索的增广路径。具体来说,我们考虑对从查询用户到目标用户的一组对象路径进行采样;然后,在每个对象路径中,我们用共享子图实例替换其每两个相邻用户之间的线性对象序列。这种子图扩充路径有望利用路径的距离感知和子图的高阶结构。由于建立这种子图扩充路径的模型并不简单,我们开发了一个子图扩充路径嵌入框架来完成这一任务。我们在三个真实世界的公共数据集上对我们的六个语义用户关系的解决方案进行了评估,结果表明它优于基线。

关键词 异构网络;子图增强路径嵌入

1引言

如今,异构社交网络非常普遍[37]。因为社交网络是以人为中心的,所以观察到用户与许多其他类型的对象交互是很常见的。例如,如图1所示,在社交网络上,用户不仅与其他用户交互,还与学院、地点和雇主交互。这些不同类型的交互暗示了用户-用户关系的不同语义。例如,爱丽丝和鲍勃都在加州大学洛杉矶分校上学,因此他们是同学;而克里斯和唐娜都为脸书工作,因此他们是同事。因此,它给了我们一个独特的机会来做语义用户搜索。一般来说,语义用户搜索是给定异构社交网络上的查询用户(例如,爱丽丝)和语义关系(例如,同学)的任务,我们希望找到与查询用户满足该关系的其他用户(例如,鲍勃)。这样的语义用户搜索非常有用[19,22]。例如,我们可以用它在脸书和领英等社交网络上找到同事、同学和家人,或者在DBLP等学术网络上找到顾问和顾问。

传统上,基于路径的方法用于解决语义用户搜索。这是因为在语义用户搜索中,目标用户通常不会立即链接到查询用户。一个合理的选择是考虑从查询用户到目标用户的路径,看看它们是否匹配期望的语义关系。例如,元路径邻近性(MPP) [30]首先依赖于领域专家来指定指示期望的语义关系的一些路径模式(即元路径),然后枚举查询用户和目标用户之间的元路径实例的数量。路径排序算法(PRA) [18]首先列举有限长度(关系)路径模式;然后它递归地为每个路径模式定义一个分数;最后,对于目标节点,它与查询节点的接近度被计算为其对应路径实例的线性组合。最近,深度学习开始利用查询节点和目标节点之间的路径的学习表示,然后使用它们来进行接近度估计。例如,proxed[20]首先对从查询节点到目标节点的多条路径进行采样,然后使用递归神经网络将每条路径嵌入为一个向量;最后,它聚集多个路径嵌入向量用于邻近性估计。

尽管这种基于路径的方法取得了成功,但我们断言路径作为一种低阶结构不足以捕捉两个用户之间丰富的语义。考虑图2(a)中连接查询用户爱丽丝和目标用户唐娜的对象路径。事实上,爱丽丝和鲍勃不仅在加州大学洛杉矶分校上同一所大学,而且住在同一个城市洛杉矶..这样的信息在路径中是缺失的,但是有可能被一些更高阶的子图结构捕获。我们从探索子图模式来组织复杂网络的最新工作中受到启发[3]。假设我们在图2(b)中已经有了一些离线挖掘的子图模式,比如user-user (m1)、user-college-user (m2)、user-college & location-user (m3)等等。然后我们可以用更丰富的子图实例来替换爱丽丝和鲍勃之间的线性对象序列。这样,我们就对爱丽丝和鲍勃之间的语义关系有了更完整的了解。我们设想,一旦我们更好地理解路径中每两个相邻用户之间的语义关系,我们就可以更好地估计查询用户和目标用户之间的接近度。注意,我们只关注增加邻近的用户对象。有两个原因可以避免增加任何两个相邻的对象,不管它们的类型是什么。首先,在语义用户搜索中,我们希望直接建模用户之间的语义关系。其次,通过将子图模式限制为涉及两个用户,我们可以显著减少子图模式的数量,从而大大提高离线子图索引的效率,如[11]中所建议的。

在本文中,我们引入了一个新的语义用户搜索的子图扩充路径的概念。具体来说,我们考虑对从查询用户到目标用户的一组对象路径进行采样;然后,在每个对象路径中,我们用共享子图实例替换其每两个相邻用户之间的线性对象序列。这种子图增强路径被期望利用路径的距离感知(即,能够对查询用户和目标用户之间的多跳连接建模)和子图的高阶结构(即,能够使用比线性序列更复杂的结构)。给定这些子图增强路径作为新的输入,我们的目标是将它们嵌入到低维向量中,然后聚合它们以进行邻近性估计。在这项工作中,我们假设子图模式和子图实例作为输入。这样的假设在实践中是温和的,因为频繁的子图是有用的,并且经常离线挖掘作为基本的图索引来支持许多有用的应用[10]。例如,频繁子图在Alibaba1中用于欺诈检测,在Twitter中用于用户/内容推荐[13]。也存在挖掘频繁子图模式和匹配子图实例的有效算法[9,31]。

然而,嵌入子图扩充路径(简称s-path)并不简单。一个简单的方法是应用ProxEmbed [20]。对于每个s路径,我们将其每个节点表示为键值对(定义3.5),其中关键字是最终用户对,该值表示这两个用户共享的每个子图实例的数量。然后我们应用递归神经网络对s路径中的每个节点进行编码,最后我们将所有节点的输出向量合并为一个。对于多条s路径,我们使用距离折扣池来弱化那些长路径。然而,这种简单的方法忽略了两个挑战。首先,子图是结构性的,有噪声的。为了表示s路径中的节点,我们必须考虑每个子图的结构,以及并非所有子图对于特定的语义用户关系都是有用的这一事实(例如,M5对于同学来说不如m2具有指示性)。其次,s路径内部和相互之间有噪声。在每个s路径中,它的节点对于语义关系来说并不是同等有用的;例如,如果爱丽丝和唐娜是真正的同学,则s路径中的节点(爱丽丝、鲍勃)比同一空间中的其他节点更重要,这意味着同学关系。同样,也不是所有的s路径都同样有用;例如,图1中从爱丽丝-艾米丽-弗朗西斯-唐娜构建的s-路径对于同学关系的指示性不如图2(c)中的,因为它对于该关系没有明确的信号。

为了建立语义用户搜索的s路径模型,我们开发了一个新的子图增强路径嵌入框架。在特殊目的实体中,我们首先用子图嵌入向量的集合来表示s路径中的对象。具体来说,我们在子图之间构造一个结构相似性矩阵,并基于该矩阵为每个子图学习一个嵌入向量以保持结构相似性。然后,我们引入注意机制[40]来自动加权聚合中的子图以表示每个s路径的节点。为了处理s路径中以及s路径之间的噪声,我们还引入了注意力机制来自动加权s路径中的每个节点以及两个用户之间的每个s路径。总之,我们在子图、s-路径的节点和s-路径上有一个三层的关注架构。最后,我们将所有s路径嵌入到一个向量中,在此基础上我们计算邻近度得分,从而计算模型训练的排序损失。

我们总结我们的贡献如下。

  • 我们引入了一个新的子图概念——增广路径,它首次系统地结合了路径的距离感知和子图的高阶结构来解决语义用户搜索。
  • 我们开发了一个新的固相萃取框架,将这些子图扩展路径嵌入到用户邻近度评估中。
  • 我们在三个公共数据集的六个语义用户关系上对固相萃取进行了评估,并显示其优于最先进的基线。

2相关工作

早期的图语义搜索工作,如个性化PageRank [17]和SimRank [16]通常将同构网络视为输入,它们不区分语义类别。最近的工作开始考虑异构网络中丰富的网络结构。例如,监督随机游走(SRW) [1]试图对网络上的随机游走进行偏置,以确保网络上得到的排序结果与地面真实一致。MPP [30]和PRA [18]试图在某种监督下(即元路径模式或基本真值标签)匹配查询节点和目标节点之间的路径,以查看某些语义关系是否成立。元图邻近性(MGP) [11]考虑了比元路径更一般的子图模式。它首先将一些频繁子图模式识别为元图;然后,它利用监督来自动学习哪个元图表示期望的语义关系;最后,它计算两个用户之间指示性元图的数量,以测量他们的接近度。由于子图的高阶结构,MGP改进了SRW和MPP等基于路径的方法。但是MGP缺乏距离意识;即,如果查询用户和目标用户相距多跳,并且它们没有共享元图,则它们的接近度变成(接近)零。MPP和MGP都可以看作是利用显式图形特征进行邻近性估计。

随着神经网络的发展,最近的一些研究开始考虑学习“隐含”图特征用于邻近性估计。比如在图嵌入中,DeepWalk [27],LINE [32],node2vec [12],以及更多的[23,25,26]都试图为图中的每个节点学习一个嵌入向量,这样可以保留图的结构。特别地,metapath2vec [8]通过使用元路径来引导随机行走以实现更好的节点嵌入,从而扩展了DeepWalk。Struc2vec [28]利用两个节点的附加结构等价性进行节点嵌入。最近有一份关于图形嵌入的综合调查[5]。将这种节点级嵌入用于语义搜索的一种可能的方法是聚集两个节点的嵌入向量(例如,首先应用哈达玛乘积,然后将其与参数向量相乘)来估计它们的接近度。然而,这种方法被认为是“间接的”,正如ProxEmbed [20]所建议的那样,因为它不直接编码两个可能相距较远的节点之间的网络结构。相比之下,ProxEmbed通过一组连接两个对象的路径来表达两个对象之间的网络结构,并将这些路径直接编码成一个prox embed向量。然而,由于ProxEmbed将对象路径作为输入,它不能利用容易获得的子图的高阶结构。类似地,尽管D2AGE [21]设法将多个对象路径建模为一个用于邻近嵌入的有向无环图,但它也不能利用离线挖掘的子图。

在图嵌入这一行中,存在几个相关但不同的概念。首先,最近的一些工作利用了图嵌入中“高阶邻近”的概念[6,38]。他们利用高阶可达性来构造图的邻接矩阵,然后在这个邻接矩阵上进行节点嵌入。我们的方法有两个主要区别:1)它们没有利用子图模式的高阶结构;2)他们考虑节点嵌入而不是路径嵌入。其次,其他一些工作通过图形卷积来模拟高阶结构[14,24]。这些方法在捕获局部图模式方面很强大,但是如何将路径的距离感知结合到语义用户搜索任务中还不清楚。此外,他们不能利用现成的子图模式。第三,图核方法[7],特别是Weissefiler-Lehman图核[29,41],试图测量两个(小)图之间的相似性及其结构。他们经常利用一些预定义的子图结构,如边、子树和最短路径。但是他们测量图之间相似性的目标与我们测量节点之间相似性的目标非常不同。此外,也不清楚如何使他们的具有路径距离意识的方法适应我们的任务。最后,在知识库领域,最近的工作如TransE [4]、TransH [39]和TransNet [34]极大地推进了知识嵌入的研究。然而,由于问题设置不同,这些方法并不直接适用于我们的任务。它们通常要求边具有明确的描述,并且旨在生成节点/边嵌入而不是路径嵌入。此外,如何利用子图的高阶结构和路径的距离感知来扩展这些方法也不清楚。

3问题表述

我们首先介绍术语和符号(列于表1)。

定义3.1异构网络是G = (V,E,C,τ),其中V是一组对象,E是V中对象之间的一组边,C = {c1,...,cK}是一组截然不同的对象类型,τ : V → C是对象类型映射函数。

例如,在图1中,我们有{用户、学院、地点、雇主}。对于爱丽丝的一个对象,τ(爱丽丝)=用户。

定义3.2子图模式是m = (C_{m}E_{m}),其中C_{m}是一组对象类型,E_{m}是对象类型C_{m}之间的一组边。

例如,图2(b)列出了五个子图模式m1,...,m5。我们把G上可能的子图模式集合表示为M。如第1节所述,我们认为M是从G中离线挖掘的频繁子图模式,可以作为输入。请注意,与G中的C不同,C_{m}中的对象类型可能是非区分的。例如,对于图2(b)中的子图模式1,C_{m_{1}} = {用户,用户}。

定义3.3。如果在g和m的节点集之间存在双射,则对象子图子图实例,比如:

例如Alice-UCLA-Bob是图2(b)中的m2的实例。我们把G上M的可能子图实例集表示为 I,对于每个m ∈ M,G上可能有多个子图实例

定义3.4。G上的对象路径是对象的序列,其中每个,t为路径长度。

例如,图2(a)中的序列是对象路径。

定义3.5。两个用户对象u,v ∈ V子图扩充节点(或简称“s节点”)r是键值对,其键值为(u,v),值为一组元组{m_{1}:e_{1},...,m_{l}:e_{l}}。∀m_{i}∈ M,e_{i}是u和v之间的m_{i}实例数。

例如,在图2(b)中,爱丽丝和鲍勃的s节点被定义为r.key =(爱丽丝,鲍勃),r.value = {m_{1}: 1,m_{2}: 1,m_{3}: 1}。我们跳过r.value中实例为零的子图。如第1节所述,我们选择只增加两个用户对象的共享子图,既关注用户-用户的语义关系,又提高子图索引效率。我们把扩充任意两个对象(不管它们是什么类型)作为语义搜索的未来工作。

定义3.6子图扩充路径(简称“s路径”)是s节点的序列.

例如,图2(c)中的序列是s路径。

问题输入和输出。对于我们模型的输入,我们有一个异构网络G,一组现成的频繁子图模式m和它们的子图实例I onG,最后还有一组训练元组,其中对于每个查询用户对象q_{i},用户v_{i}更接近于用户u_{i}。此外,我们还离线采样了来自G中的一些对象路径作为输入。对于路径采样,我们采用了与DeepWatch[27]相似的方法。具体来说,从G中的每个对象开始,我们随机采样γ个对象路径,每个路径的长度为ℓ.结果,我们获得了一组对象路径,表示为P。这些对象路径被索引以支持有效的训练和测试。对于每个查询对象q∈{q_{1},...,q_{n}}和对应的目标对象,我们从P中提取多个子路径,我们把P中从q开始到v结束的所有子路径表示为P(q,v),从v到q的那些表示为P(v,q)。对于从q到v的每个对象路径,我们使用子图模式M和它们的子图实例I来构造子图扩充路径。我们将在第4节介绍s-path构建的细节。

对于我们模型的输出,我们为q和v之间的每个s-路径生成子图增强路径嵌入向量,其中d > 0是嵌入维数。由于q和v之间有多个s路径,我们将合理地把多个聚合成一个邻近嵌入向量。在这项工作中,我们考虑对称和非对称关系,其中对于对称关系 = ,对于非对称关系。我们将在第5节中讨论如何通过一些分层的神经网络模型来计算。最后,我们使用将q和v之间的接近度估计为

其中是一个参数向量。

我们的模型有两类参数:1)获取的分层神经网络参数;2)接近度估计参数θ。在训练中,我们的目标是学习这些模型参数,使得\pi (q_{i},v_{i})\pi (q_{i},u_{i})对于每个(q_{i},v_{i},u_{i})∈ D,我们将在小节中介绍训练算法的细节。6.注意,在离线训练中,我们只需要为i = 1,...,n的那些(q_{i},v_{i})(q_{i},u_{i})计算子图增强路径嵌入,而不是所有G中可能的对象对。在在线测试中,给定G中的随机查询用户q,我们将从P中快速提取一组从q到G中每个可能的目标用户v的样本对象路径。然后我们用M构造s路径,并应用我们的模型计算每个目标v的π(q,v)以进行排名。

4 S路径构造

我们介绍了如何为一个查询用户q和一个目标用户v构造子图扩充路径,基于:1)一组G中从q到v的已经采样的对象路径;2)G上一组现成的频繁子图模式M及其子图实例 I .

运行示例:以图2(b)为例。对于Alice–UCLA–Bob–Chris–Facebook–Donna的对象路径,我们首先通过折叠路径中的非用户对象来提取每对相邻用户。结果,我们得到(Alice, Bob), (Bob, Chris)和(Chris, Donna)。对于每一对相邻用户,我们试图获取每个用户的相关子图实例。在图2(b)中,我们列出了五种可能的子图模式m_{1},...,m_{5};由于空间的限制,我们跳过了在图1中列出它们在异构网络上的子图实例。以(Alice, Bob)为例。对于Alice来说,她涉及了四个子图实例 w.r.t.m_{1},m_{2}m_{3}。具体来说,对于m_{1},Alice在图1中有两个子图实例:Alice–Bob和Alice–Emily。对于m_{2},Alice在图1中有一个子图实例:Alice–UCLA–Bob。对于m_{3},Alice在图1中有一个子图实例:Alice–UCLA & L.A.–Bob。为了用子图替换线性对象路径Alice–UCLA–Bob,我们希望找到Alice和Bob共享的所有子图实例。找到这种共享子图实例的简单方法是扫描Alice的所有子图实例,看看它们是否包含Bob。如我们所见,Alice和Bob共享一个m_{1}实例、一个m_{2}实例和一个m_{3}实例。然后我们构造一个子图增广节点(s-node) r_{1}r_{1}.key ← (Alice,Bob,r_{1}.value← [m_{1}: 1,m_{2}: 1,m_{3}: 1]。类似地,我们可以为 (Bob, Chris)构造一个s节点r_{2}和为r(Chris, Donna)构造一个s节点r_{3}。最后,我们得到了p :r_{1}r_{2}r_{3}的子图增广路径(s-path)。

我们抽象了上述运行示例,并总结了Alg.1中的spath构造算法。在第1行中,我们首先从p中提取q到v中的所有对象子路径。在这里,我们重载函数“GetSubpaths”,以获得对称和非对称语义关系的不同子路径。在第4行,对于每个结果对象路径,我们得到所有相邻的用户对。在第6行中,对于每对相邻用户,我们从预索引子图实例集I中识别他们的共享子图实例。之后,我们在第7行和第8行中构造一个s节点,并进一步将其附加到前面的s节点序列中,以在第9行中形成一个s路径。

复杂性分析:由于每个对象路径的长度都以ℓ为界,所以在第4行获取相邻的用户对需要O(ℓ).在两个用户之间获取共享子图实例的简单方法是扫描一个用户的所有子图实例。用ζ表示一个用户在G上的子图实例的平均数。因为在实践中,子图模式具有有限的大小(例如,在我们的实验中小于6),所以运行第6行的上述直接方法需要O(ζ)。这种复杂性可以进一步降低;如[11]所建议的,如果在子图索引阶段只考虑那些涉及至少两个用户的子图模式,那么子图模式的数量和子图实例的数量都可以显著减少。通过对匹配哪两个用户的子图实例进行复杂的索引,我们可以将第6行的复杂性降低到一个常数。总之,从对象路径构造s路径需要O(ℓ +ζ)。

5 S-PATH 嵌入

我们首先介绍如何将每个子图扩充的路径嵌入到一个向量,然后将多个这样的向量聚合成一个。如图3所示,我们为子图增强路径嵌入设计了一个分层神经网络。正如第一节所说,我们会把多个因素纳入设计。首先,我们在每个子图中嵌入结构信息。然后,我们在每个子图扩充节点(s节点)中聚集子图嵌入,并注意获得一个s节点嵌入。为了对每个s路径的顺序信息进行建模,我们还采用了递归神经网络架构来学习空间的嵌入。最后,我们聚集所有s-路径的嵌入,并注意获得(q,v)的整体邻近嵌入向量。接下来我们介绍图3中嵌入的每个步骤。

子图嵌入。为了考虑子图结构,我们受到结构深层网络嵌入[38]的启发,考虑从子图结构相似性矩阵中嵌入子图。一般来说,如果两个子图有一些共同的结构,那么它们是相似的。因此,我们采用了广泛使用的最大公共子图(MCS)方法[35]来度量两个子图之间的相似性。给定两个子图m_{i}m_{j},我们将m*表示为它们的MCS。然后将两个子图之间的结构相似性定义为

如果m*越大,S(m_{i}m_{j})越大。. 我们使用堆叠自动编码器[2]为每个子图m_{i}学习嵌入。表示。为了简单起见,我们使用一个三层自动编码器来说明我们如何从它的s_{i}构造x_{i}。特别地,我们定义了m_{i}的子图嵌入向量x_{i}

其中是参数;σ(·)是sigmoid函数。我们从x_{i}重构s_{i}

其中也是参数。最后,我们最小化重构误差:

虽然可以将x_{i}与后续的嵌入嵌入进行优化,但本文还是从S中选择优化x_{i},以保持模型简单。

s节点嵌入。一般来说,一个子图扩充节点(s节点)包含多个子图。为了区分它们的贡献,我们引入了一个注意机制来自动学习s节点嵌入中每个子图的权重。对于s节点r_{j}.value ={m_{1}:e_{1},...,m_{l}:e_{l}},我们为r_{j}中的每个子图m_{i}计算注意力得分\alpha _{i}

其中 以及是参数。因此,我们计算r_{j}的s节点嵌入。

S路嵌入。一旦s-节点嵌入s-路径p_{k}:r_{1}→……→r_{t},我们就可以通过LSTM(Long-Short-Term Memory)[15]学习s-路径嵌入。在形式上,对于每个输入s节点嵌入,我们通过计算输入门、忘记门、存储单元状态和输出门的一系列神经元激活来输出向量’:

其中\且⊙为元素级产品。 我们将LSTM参数集表示为

为了区分s节点的贡献,我们还计算了每个s节点r_{j}的注意力得分

其中是参数。结果,我们计算了p_{k}的s路嵌入

邻近嵌入。一旦对qv之间的每个s路径进行了s路径嵌入,我们就可以计算它们的邻近嵌入。为了统一表示法,我们引入了作为q和v之间的空间集。对于非对称关系,我们将定义为从q到v的s路径。对于对称关系,我们将定义为从q到v和从v到q的s路径。为了区分s路径的贡献,我们将每个s路径p_{k}的注意力得分计算为

式中以及是参数。最后,我们计算了(q,v)的邻近嵌入

我们将(q,v)的邻近嵌入计算

这个f(q,v)编码了q和v之间所有子图扩充路径的信息。它稍后将被用来通过等式1来估计q和v的接近分数。

6端到端训练

训练中,对于每个元组我们定义了基于接近度得分\pi (q_{i},v_{i})和 \pi (q_{i},u_{i})的排名损失。我们将排序损失函数定义为

其中且λ> 0是一个参数。我们将子图、s节点和s路径的三层关注的参数集表示为。总之,我们的模型参数为。我们训练的最终目标是最小化

其中µ> 0是一个折衷参数,\Omega (\cdot )是一个正则化函数(例如,\Theta中每个参数的L2-范数之和)。

训练算法:我们总结了算法2中的SPE训练算法。在第2–4行中,我们对G中对象路径进行了采样。在第6行和第7行,我们基于训练元组中每个(q,v)(q,u)的对象路径构造子图扩充路径。在第8行,我们将训练元组分成批次,然后进行批次随机梯度下降。在第12行和第13行,我们计算邻近嵌入向量。在第14行,我们计算排名损失ℓ(π(q,v),π(q,u)).在第15行和第16行,我们累加batch b的损失,并进行随机梯度下降。

复杂性分析:我们分析算法2的时间复杂性。在第2–4行中,我们从G中的每个物体开始采样长度为ℓ的γ物体路径,因此它采用O(|V|γℓ)。在第5-7行,我们总共构造了 s-路径。据算法1,构造s路径取O(ℓ +ζ)。因此,第7-10行的复杂度为。在第8行,生成批处理需要O(n)。第12行,计算邻近嵌入需要三步:1)嵌入一个s节点,最多取|M |子图给出的;2)嵌入一个s-路径,它取给定的s-路径长度至多为ℓ;3)邻近嵌入,取给定 ,q与v之间的s路径。在第9-16行中,我们基本上计算了所有(q,v,u) ∈ D'和'的,总共取计算第14行中所有训练元组的损失取值O(nd′)。更新|B|批次的第16行中的\Theta需要O(| B |(d′d+d′2))。注意,我们离线计算一次子图嵌入。构造结构相似矩阵需要,学习子图嵌入需要O(|M |d + |M |),总共是。总之,算法2的总复杂度是。由于,算法2的复杂性变成

7实验

异质社交网络。我们对之前研究收集的三个真实世界的数据集进行了广泛的实验,即LinkedIn[19],Facebook[22]和DBLP [36]。每个数据集包含不同类型的对象。尤其是LinkedIn,包括用户类型、雇主、地点、学院;脸书包括用户、集中程度、学位、学校、家乡、姓氏、地点、雇主、工作地点和工作项目(其他类型由于稀少或不相关而被忽略);DBLP包括论文,作者,年份,会议和关键词。我们将它们组织成不同的社交网络,如表2所示。

基本事实。在LinkedIn上,用户关系已经被标记为不同的语义类别。我们测试了两个主要班级:同学同事。在Facebook,用户关系由[11]定义,分为两类:家庭同学。在DBLP,一对合著者中的建议者被建议者是根据一些教职员工的网站以及数学系谱和人工智能系谱项目来确定的[36]。所有未识别的合著者对都被假定为阴性。如表3中所总结的,顾问类被顾问类是不对称的,而其他类都是对称的。

培训和测试。在每一个图上,一个用户q可以被用作一个查询节点,如果存在另一个用户v,使得qv在我们的基本事实中具有期望的语义关系。每个网络和每个语义关系的查询用户数以及每个查询的平均结果数如表3所示。我们将这些查询随机分成两个子集:20%保留作为训练,其余作为测试。我们重复这样的分裂10次,并对这10次分裂的任何结果进行平均。在每个分割中,基于训练查询,我们进一步生成训练示例(q,v,u),使得q和v属于期望的语义关系,而qu不属于期望的语义关系。对于测试,我们为每个测试查询用户和每个期望的语义关系构建了一个理想的排名。我们将这个理想的排名与各种语义用户搜索算法生成的排名进行了比较。我们采用NDCG和MAP[11]来评估算法排名前10名结果的质量。

子图。我们重复了[11]中的子图模式挖掘和子图实例匹配算法,以获得每个网络上的频繁子图模式M及其实例I的集合。具体来说,我们首先在每个图上应用GRAMI [9]来挖掘频繁子图模式集。然后我们过滤掉那些明显不可行的子图:1)因为我们的基本事实是为语义用户搜索设计的,一个可行的子图必须至少有两个用户对象;2)子图必须包含至少两种不同的类型,以获取更丰富的语义;3)为了进一步限制子图的数量,我们限制它们在LinkedIn和脸书最多有五个节点,在DBLP最多有六个节点,这足以表达两个用户之间的交互。子图模式的结果数量如表2所示。

如表4所示,子图索引(包括挖掘子图模式的频繁集合,以及将每个子图模式与其在图上的可能实例进行匹配)可以在合理的时间(即几个小时)内完成。由于子图索引不是本文的重点,我们认为子图索引已经完成,并且所得到的子图模式/实例对于我们的子图增强路径嵌入算法是容易获得的。

参数和环境。为了公平比较,我们使用与ProxEmbed [20]相同的对象路径采样设计和参数。具体来说,在LinkedIn上,对于同学同事,我们设置γ = 20,ℓ = 20。在Facebook上,我们为同学设定γ = 40,ℓ = 80,为家人设定γ = 20,ℓ = 80。在DBLP上,我们为advisor设置γ = 20,ℓ = 80,为advisee设置γ = 20,ℓ = 40。默认情况下,我们为θ(t)中的参数设置维数d′= 12,在等式中为= 104。21.针对不同的语义关系,我们调整了子图嵌入的不同维数d和λ。我们在32GB内存的Linux服务器上运行这些实验,使用Anano[33]进行SPE实现,Java jdk-1.8进行路径采样和s-path构造。

基线。我们将我们的特殊目的实体与以下最先进的语义搜索基线进行比较。

  • ProxEmbed[20]:代理嵌入使用对象路径来描述两个对象之间的关系,并测量它们的接近度。
  • MGP [11]:元图邻近度使用两个对象之间的元图实例数量作为度量邻近度的特征。
  • MPP [30]:元路径邻近度使用两个对象之间的元路径实例的数量作为测量邻近度的特征。
  • SRW [1]:监督随机漫步学习边缘权重,以偏置随机漫步,从而产生与基本事实一致的排名结果。我们将每条边的特征定义为基于其两个对象类型的二进制向量。
  • DWR:深度行走排名在[20]中推出。它首先通过深度行走[27]学习对象嵌入,然后输出两个对象嵌入的哈达玛乘积作为邻近嵌入。
  • PES:带s路径的代理嵌入是模拟s路径的简单解决方案。它不需要子图嵌入、s节点嵌入和s路径嵌入,直接将s路径馈入ProxEmbed。
  • SPE-A:没有注意的SPE是验证是否需要对注意进行建模的基线。它分别用平均池、最大池和最大池取代了在SPE中嵌入子图、s节点嵌入和s路径嵌入的注意机制

对于MGP和MPP,我们使用与[11]相同的参数设置。对于SRW,我们设置其正则化参数λ = 10,随机行走隐形传态参数α = 0.2,损耗参数b = 0.1。我们把DWR的维数定为128,和[27]一样。对于SPE-A,我们使用与SPE相同的参数值。我们将相同的对象路径输入到代理嵌入、DWR、PES、SPE-A和SPE。

数据和代码可用性。如前所述,所有三个数据集都可以从相应的参考资料中在线公开获得。我们已经在网上提供了我们的代码。

7.1与基线的比较

我们将我们提议的特殊目的实体与上面介绍的七个最先进的语义搜索基线进行比较。在不同的训练元组数量下,即10、100和1000,我们对所有的方法进行了测试。根据表5中报告的结果,我们得出以下结论。

首先,就NDCG和映射而言,我们的特殊目的实体在所有六种语义关系上的表现一般都优于基线。唯一的例外是当用10元组训练时,SPE不能在所有基线中产生最佳性能。这是因为SPE有更多的参数需要学习;当训练元组的数量很小时,它的性能并不好。随着训练元组数量的增加,SPE的性能始终优于其他方法。

其次,SPE比ProxEmbed更好,因为s路径比ProxEmbed中使用的简单o路径承载更多的语义。而且,SPE也比直接在s路径(即PES)上应用ProxEmbed要好。这是因为PES无法处理子图结构和噪声。这样的结果证实了,为邻近嵌入建模s路径并不简单。

第三,SPE优于MGP和MPP,说明特征学习比特征工程在邻近学习中更有效。虽然特殊目的实体使用与MGP相同的子图输入,但是特殊目的实体进一步从采样的0-路径中学习子图嵌入、s-节点嵌入和s-路径嵌入。显而易见,特殊目的实体受益于构造的子图增强路径,该路径利用了路径的距离感知和子图的高阶结构。

第四,特殊目的实体优于SRW。它使用有偏随机游走来指导语义排序。SRW似乎对训练元组的数量不敏感。此外,SPE法优于DWR法,后者采用两个物体嵌入的哈达玛乘积作为邻近嵌入。这一观察表明,节点嵌入法作为一种间接解决语义搜索的方法,对邻近搜索的效果较差。

最后,SPE优于SPE-α,验证了建模注意事项的必要性。从表5中可以看出,SPE-A的性能始终不如固相萃取。这意味着处理好子图和s路径中的噪声是很重要的。

我们用表6中的配对t检验总结了SPE相对于最佳基线的性能改进。在领英-同事中观察到最大的改善,其中SPE在NDGG方面将最佳基线(PES)改善了相对13.2%,在MAP方面改善了相对16.9%,t检验p值小于0.01。

7.2参数敏感度

我们还使用100个训练元组测试了SPE的参数敏感性。我们改变子图嵌入的维数d(等式3),注意参数‘维数d’(等式7,等式15和等式18)和损失折扣λ(等式20)。

如图4所示,脸书数据集比其他两个数据集(尤其是LinkedIn)对参数设置更加敏感。原因是脸书的对象类型总数比LinkedIn和DBLP大得多,如表2所示。当搜索满足特定语义关系类型的用户时,不相关的类型可能会给语义用户搜索过程带来噪声。种类越多,噪音可能就越多。因此,对于类型较多的数据集,需要仔细调整参数,以便嵌入的子图、学习到的注意和损失折扣有助于从噪声中过滤出有用的信息。另一方面,对于LinkedIn等类型较少的数据集,由于无关对象类型引入的噪声有限,性能相对稳健。

基于三个数据集上所有六个语义关系的NDCG和映射,SPE倾向于在d = 16时产生最佳性能。特别是对于同学和家人来说,当d太小时,产生的嵌入无法捕捉到丰富的语义。当d太大时,可能会带入更多的噪声,增加需要学习的参数数量。当d′太小或太大时,注意力维度d′也容易遭受类似的性能下降,d′= 16是最佳设置。对于排名损失折扣参数λ,我们看到λ = 0.1通常给出最好的结果,提示需要对等式20中的排名损失进行折扣。

8 结论

本文研究了异构社交网络中的语义用户搜索问题。我们利用集成路径的距离感知和子图的高阶结构的机会来学习更好地表示两个用户之间的接近度。我们提出了一种新的子图增强路径嵌入模型。它以对象路径为输入,并将其丰富为子图扩充路径。然后讨论了合并子图结构、子图噪声和子图增强路径噪声的挑战。最后,将两个用户之间的子图扩充路径嵌入到一个邻近嵌入向量中。有了这样一个邻近嵌入向量,我们可以很容易地测量两个用户之间的邻近度,用于语义用户搜索。我们在三个公共数据集上用六种语义关系测试了固相萃取,它用100个训练样本至少提高了1.8%-13.2%(NDCG)和1.4%-16.9%(最大似然比)。未来,我们希望探索具有丰富边缘特征和图形动力学的异构社会网络。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值