CN114579879B - 好友推荐方法、装置、设备和存储介质 - Google Patents
好友推荐方法、装置、设备和存储介质 Download PDFInfo
- Publication number
- CN114579879B CN114579879B CN202210490518.2A CN202210490518A CN114579879B CN 114579879 B CN114579879 B CN 114579879B CN 202210490518 A CN202210490518 A CN 202210490518A CN 114579879 B CN114579879 B CN 114579879B
- Authority
- CN
- China
- Prior art keywords
- node
- edge
- user
- nodes
- vector
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 57
- 238000003860 storage Methods 0.000 title claims abstract description 16
- 239000013598 vector Substances 0.000 claims abstract description 292
- 238000003062 neural network model Methods 0.000 claims abstract description 46
- 238000012549 training Methods 0.000 claims description 47
- 238000004364 calculation method Methods 0.000 claims description 28
- 230000009466 transformation Effects 0.000 claims description 21
- 238000006243 chemical reaction Methods 0.000 claims description 16
- 230000004913 activation Effects 0.000 claims description 11
- 238000004590 computer program Methods 0.000 claims description 8
- 238000004422 calculation algorithm Methods 0.000 claims description 6
- 238000005065 mining Methods 0.000 abstract description 4
- 230000006870 function Effects 0.000 description 22
- 230000007246 mechanism Effects 0.000 description 17
- 230000002776 aggregation Effects 0.000 description 15
- 238000004220 aggregation Methods 0.000 description 15
- 230000008569 process Effects 0.000 description 12
- 230000000694 effects Effects 0.000 description 8
- 238000010586 diagram Methods 0.000 description 6
- 230000009471 action Effects 0.000 description 4
- 238000013135 deep learning Methods 0.000 description 4
- 238000013528 artificial neural network Methods 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 3
- 238000013507 mapping Methods 0.000 description 3
- 230000000644 propagated effect Effects 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 238000010276 construction Methods 0.000 description 2
- 238000009826 distribution Methods 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 240000000037 Prosopis spicigera Species 0.000 description 1
- 235000006629 Prosopis spicigera Nutrition 0.000 description 1
- 238000009825 accumulation Methods 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000000052 comparative effect Effects 0.000 description 1
- 238000007418 data mining Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000011423 initialization method Methods 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000004080 punching Methods 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/953—Querying, e.g. by the use of web search engines
- G06F16/9536—Search customisation based on social or collaborative filtering
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/953—Querying, e.g. by the use of web search engines
- G06F16/9535—Search customisation based on user profiles and personalisation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/953—Querying, e.g. by the use of web search engines
- G06F16/9537—Spatial or temporal dependent retrieval, e.g. spatiotemporal queries
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种好友推荐方法、装置、设备和存储介质,方法包括:获取位置社交网络数据,并根据所述位置社交网络数据,构建社交异质多重图,所述社交异质多重图中的节点包括用户节点和兴趣点节点,当两个节点之间存在边时,所述两个节点之间存在至少一种边类型的边;将所述社交异质多重图输入训练好的异质多重图神经网络模型,输出各节点的最终特征向量;分别计算各用户节点的最终特征向量与其他用户节点的最终特征向量之间的相似度,并根据所述相似度进行好友推荐。本发明可很好地体现出位置社交网络不同要素之间复杂的连接关系,便于更加深入地挖掘其中的时空关系信息,从而可提高推荐准确性。
Description
技术领域
本发明涉及数据挖掘技术领域,尤其涉及一种好友推荐方法、装置、设备和存储介质。
背景技术
随着时代的进步,手机、电脑等网络终端逐渐走进每个人的生活中,用户每天的出行轨迹中都包含了大量的兴趣点(points-of-interest,POI)信息。一个常见的生活场景是:几位好友相约前往一家餐馆用餐,并在网络上留下关于这家餐馆的评论。这样的信息我们常常把它归为位置社交网络(location-based social networks,LBSN)。位置社交网络不仅反映了用户的历史访问轨迹,同样也反映了用户的部分社交网络,这其中就隐藏着非常丰富的时空信息。给用户推荐现实生活中可能存在的好友不仅可以帮助用户扩展社交圈子,同时便于商家进行精准广告推送,还有利于城市管理者了解城市中的人口聚居和流动情况,因此从已有的用户位置社交网络中给用户推荐新的好友一直是一项重要的研究内容。
目前已有的工作主要围绕着用户和兴趣点之间的关系进行,以前的一些方法主要是从位置社交网络数据中挖掘出用户的爱好,然后通过用户爱好是否相同来直接简单粗暴地判断他们是否可能成为好友。随着深度学习技术的发展,大量的研究者试图使用深度学习的方法,建立关于用户和兴趣点之间的深度学习网络从而进行好友推荐。但是这些方法大多使用的是深度学习的基础知识,未能深度统一建模用户、兴趣点、时间这些因素。
在《Social Link Inference via Multiview Matching Network FromSpatiotemporal Trajectories》(Zhang W,Lai X,Wang J,IEEE Transactions on NeuralNetworks and Learning Systems,2020)中,通过融合所有数据的不同的视图信息来分别从时间、空间、社交网络三个视图下对应设置时间序列匹配模块、位置匹配模块和关系匹配模块来挖掘时空关系,最后融合三个模块所挖掘出来的信息来判断用户是否为好友。该方法虽然从时间、空间、社交网络三个视图下对应设置时间序列匹配模块,但却把这三个要素割裂开来,特别是社交网络与时空信息,使得模型忽略了这些要素之间的互相影响。虽然模型设置的三个模块可能从不同视图挖掘出位置社交网络的各方面潜在信息特征,但是这种相互割裂开来的做法还是有一定的弊端。
在《Graph Convolutional Networks on User Mobility Heterogeneous Graphsfor Social Relationship Inference》(Wu Y,Lian D,Jin S,et al)中,通过把位置社交网络建模成为一个三层的异质图:用户层、兴趣点层和用户—兴趣点交互层。用户层中用户节点之间的边权值为用户之间的见面次数,兴趣点层中兴趣点之间的边权值为两个兴趣点在所有用户轨迹中连续出现的次数。用户—兴趣点交互层中用户与兴趣点之间的边权值为用户访问这个兴趣点的次数。该方法把位置社交网络建模成异质图,但是在它所建模的异质图中,节点与节点之间的边(连接关系)只存在一种,如用户与兴趣点之间的边只存在访问签到这一种关系,然而现实世界中,兴趣点与用户之间的关系是多样的。同时,该方法中,兴趣点之间的关系也仅仅局限于在用户轨迹的接连出现的次数。因此,该方法中的异质图的数据表示能力不足,无法更加深入地挖掘其中的时空关系信息。
发明内容
本发明所要解决的技术问题是:提供一种好友推荐方法、装置、设备和存储介质,可很好地体现出位置社交网络不同要素之间复杂的连接关系,便于更加深入地挖掘其中的时空关系信息,从而可提高推荐准确性。
第一方面,本发明提供了一种基于位置社交网络的好友推荐方法,包括:
获取位置社交网络数据,并根据所述位置社交网络数据,构建社交异质多重图,所述社交异质多重图中的节点包括用户节点和兴趣点节点,当两个节点之间存在边时,所述两个节点之间存在至少一种边类型的边;
将所述社交异质多重图输入训练好的异质多重图神经网络模型,输出各节点的最终特征向量;
分别计算各用户节点的最终特征向量与其他用户节点的最终特征向量之间的相似度,并根据所述相似度进行好友推荐。
第二方面,本发明还提供了一种基于位置社交网络的好友推荐装置,包括:
构建模块,用于获取位置社交网络数据,并根据所述位置社交网络数据,构建社交异质多重图,所述社交异质多重图中的节点包括用户节点和兴趣点节点,当两个节点之间存在边时,所述两个节点之间存在至少一种边类型的边;
输入模块,用于将所述社交异质多重图输入训练好的异质多重图神经网络模型,输出各节点的最终特征向量;
推荐模块,用于分别计算各用户节点的最终特征向量与其他用户节点的最终特征向量之间的相似度,并根据所述相似度进行好友推荐。
第三方面,本发明还提供了一种电子设备,所述电子设备包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如第一方面提供的基于位置社交网络的好友推荐方法。
第四方面,本发明还提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如第一方面提供的基于位置社交网络的好友推荐方法。
本发明的有益效果在于:通过构建社交异质多重图,可以使得位置社交网络数据成为一个整体,以便在后续更加深入地挖掘其中的时空关系信息,从而更好地辅助后续的好友推荐任务的实现;通过异质多重图神经网络模型,从社交异质多重图中挖掘出潜在的时空数据信息,聚合相连节点及其相连边上的信息,最终输出各节点的特征向量;最后通过计算特征向量之间的相似度来进行好友推荐,可以提高推荐的准确性。
附图说明
图1为本发明提供的一种基于位置社交网络的好友推荐方法的流程图;
图2为本发明提供的一种基于位置社交网络的好友推荐装置的结构示意图;
图3为本发明提供的一种电子设备的结构示意图;
图4为本发明实施例一的异质多重图神经网络模型的结构与流程的示意图;
图5为简单图、异质简单图和异质多重图的示意图;
图6为本发明实施例一的社交异质多重图的示意图;
图7为本发明实施例一的异质多重图神经网络模型与现有推荐模型的对比示意图。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。
在更加详细地讨论示例性实施例之前应当提到的是,一些示例性实施例被描述成作为流程图描绘的处理或方法。虽然流程图将各步骤描述成顺序的处理,但是其中的许多步骤可以被并行地、并发地或者同时实施。此外,各步骤的顺序可以被重新安排。当其操作完成时处理可以被终止,但是还可以具有未包括在附图中的附加步骤。处理可以对应于方法、函数、规程、子例程、子计算机程序等等。
此外,术语“第一”、“第二”等可在本文中用于描述各种方向、动作、步骤或元件等,但这些方向、动作、步骤或元件不受这些术语限制。这些术语仅用于将第一个方向、动作、步骤或元件与另一个方向、动作、步骤或元件区分。举例来说,在不脱离本申请的范围的情况下,可以将第一信息为第二信息,且类似地,可将第二信息称为第一信息。第一信息和第二信息两者都是信息,但其不是同一信息。术语“第一”、“第二”等而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。在本发明的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。
如图1所示,一种基于位置社交网络的好友推荐方法,包括:
S101:获取位置社交网络数据,并根据所述位置社交网络数据,构建社交异质多重图,所述社交异质多重图中的节点包括用户节点和兴趣点节点,当两个节点之间存在边时,所述两个节点之间存在至少一种边类型的边;
S102:将所述社交异质多重图输入训练好的异质多重图神经网络模型,输出各节点的最终特征向量;
S103:分别计算各用户节点的最终特征向量与其他用户节点的最终特征向量之间的相似度,并根据所述相似度进行好友推荐。
其中,异质多重图神经网络模型可包括特征转换模块、边级注意力聚合模块和语义级注意力聚合模块;所述特征转换模块用于将所述社交异质多重图中各边的权值向量转换为纬度相同的权值向量;所述边级注意力聚合模块,用于计算各节点对应各边类型的边的边级注意力向量;所述语义级注意力聚合模块用于计算各节点类型对应各边类型的注意力权值,并根据所述各节点类型对应各边类型的注意力权值,分别对各节点对应各边类型的边的边级注意力向量进行加权求和,得到各节点的特征向量。
本发明通过构建社交异质多重图,可以使得位置社交网络数据成为一个整体,可在后续更加深入地挖掘其中的时空关系信息,从而更好地辅助后续的好友推荐任务的实现;通过异质多重图神经网络模型,从社交异质多重图中挖掘出潜在的时空数据信息,学习用户节点在向量空间中的表示,聚合相连节点及其相连边上的信息,最终输出各节点的特征向量,服务于后续的好友推荐任务;最后通过计算特征向量之间的相似度来进行好友推荐,可以提高推荐的准确性。
在一个可选的实施例中,所述位置社交网络数据包括用户的好友关系和历史访问轨迹以及兴趣点的位置和类别,所述历史访问轨迹包括用户访问过的兴趣点及其对应的访问时间,所述社交异质多重图中的节点类型包括用户和兴趣点,边类型包括朋友、签到、同社区、同类别和共现;
所述步骤S101,包括:
将一天划分多个预设时长的第一时间段;
分别根据各用户的历史访问轨迹中的各兴趣点的位置,计算轨迹中心点位置,作为各用户的家庭住址;
构建与各用户和各兴趣点一一对应的用户节点和兴趣点节点,并分别生成各节点的节点向量;
若两个用户之间存在好友关系,则在所述两个用户对应的用户节点之间构建边类型为朋友的边,并根据所述两个用户的历史访问轨迹,分别统计所述两个用户在各第一时间段内的见面次数,作为所述边类型为朋友的边的权值向量;
若一用户的历史访问轨迹中存在一兴趣点,则在所述一用户对应的用户节点和所述一兴趣点对应的兴趣点节点之间构建边类型为签到的边,并分别统计所述一用户在各第一时间段内访问所述一兴趣点的次数,作为所述边类型为签到的边的权值向量;
若一用户的家庭住址与一兴趣点之间的距离小于预设的距离阈值,则在所述一用户对应的用户节点和所述一兴趣点对应的兴趣点节点之间构建边类型为同社区的边,并将所述一用户的家庭住址与一兴趣点之间的距离作为所述边类型为同社区的边的权值向量;
若两个兴趣点属于同一类别,则在所述两个兴趣点对应的兴趣点节点之间构建边类型为同类别的边,并将所述两个兴趣点之间的距离作为所述边类型为同类别的边的权值向量;
若两个兴趣点同时存在于同一用户的历史访问轨迹中,则在所述两个兴趣点对应的兴趣点节点之间构建边类型为共现的边,并将所述两个兴趣点的共现次数作为所述边类型为共现的边的权值向量。
本发明采用了异质多重图来对位置社交网络数据进行建模,在异质多重图中不仅可以存储多种节点和多种连接关系,更重要的是还可以存储两个节点中可能存在的多种相互连接关系,而现有的简单图和异质简单图都无法捕捉处理这种信息,即异质多重图可以很好地解决异质简单图的数据表示能力不足的问题,可以表现出不同要素之间复杂的连接关系,更广泛适用于真实世界的各种数据建模。
在一个可选的实施例中,所述根据所述两个用户的历史访问轨迹,分别统计所述两个用户在各第一时间段内的见面次数,作为所述边类型为朋友的边的权值向量,包括:
根据所述两个用户的历史访问轨迹,判断所述两个用户是否访问过同一兴趣点;
若否,则将所述两个用户在各第一时间段内的见面次数均设为0;
若是,则分别获取所述两个用户对应所述同一兴趣点的访问时间,并计算访问时间差;
若所述访问时间差小于预设的见面时差阈值,则令所述两个用户在对应所述同一兴趣点的访问时间所属的第一时间段的见面次数加一。
从上述描述可知,若两个用户访问同一个兴趣点的时间差小于预设的见面时差阈值,则认为这两个用户在这个兴趣点有一次见面事件。优选地,见面时差阈值可设为1小时。
在一个可选的实施例中,所述步骤S102,包括:
S1021:将所述社交异质多重图输入异质多重图神经网络模型,输出各节点的特征向量;
S1022:根据预设的训练集中的各用户节点对的好友关系以及各用户节点对中的两个用户节点的特征向量之间的相似度,计算各用户节点对的损失值,并根据所述训练集中的各用户节点对的损失值,计算模型损失值;
S1023:根据所述模型损失值,通过反向传播算法更新所述异质多重图神经网络模型,并继续执行步骤S1021,直至达到预设的训练结束条件;
S1024:获取达到预设的训练结束条件时所述异质多重图神经网络模型输出的各节点的特征向量,作为各节点的最终特征向量。
本发明使用社交异质多重图对异质多重图神经网络模型进行训练,使得模型可以不断自我更新其中的可学习参数,最终到达较好的学习效果;当达到训练结束条件时,如训练了预设训练次数,获取停止训练时异质多重图神经网络模型输出的最终特征向量,可较好地表示各节点聚合其相邻节点及相连边上的信息后的信息。
在一个可选的实施例中,所述步骤S1021,包括:
S10211:分别对所述社交异质多重图中各边的权值向量进行特征转换,得到特征转换后的权值向量,各边特征转换后的权值向量的维度相同;
S10212:获取与一节点通过同一边类型的边相连的节点,作为所述一节点对应所述同一边类型的第一节点;
S10213:根据所述一节点的节点向量、各所述第一节点的节点向量、所述一节点与各所述第一节点之间的所述同一边类型的边的权值向量以及K个第一可学习参数向量,分别计算所述一节点对应所述同一边类型的边关于各第一可学习参数向量的边级注意力向量,并进行拼接,得到所述一节点对应所述同一边类型的边的边级注意力向量;
S10214:根据节点类型与所述一节点相同的各节点对应各边类型的边级注意力向量、所述一节点的节点类型对应的第二可学习向量参数、可学习的第二全连接层的权重和偏差,计算所述一节点的节点类型对应各边类型的注意力权值;
S10215:根据所述一节点的节点类型对应各边类型的注意力权值,对所述一节点对应各边类型的边的边级注意力向量进行加权求和,得到所述一节点的特征向量。
本发明采用边级注意力机制与语义级注意力机制的两级注意力机制,边级注意力机制可以很好地聚合来自同一类型的边上所传播过来的信息,并且在聚合时也聚合了边上的特征;语义级注意力机制可以很好地聚合不同类型的边传播过来的信息。
在一个可选的实施例中,所述步骤S10211具体为:
根据特征转换公式,对所述社交异质多重图中的一边的权值向量进行特征转换,得到所述一边特征转换后的权值向量,所述特征转换公式为he’=σ(Wr⋅he+br),he’为所述一边特征转换后的权值向量,σ( )为激活函数,he为所述一边的权值向量,Wr为可学习的所述一边的边类型对应的第一全连接层的权重,br为可学习的所述一边的边类型对应的第一全连接层的偏差。
由于社交异质多重图中存在多种类型的边,每种类型的边上的权值向量的维度可能不同,为了方便异质多重图神经网络模型的学习,使用全连接层把这些边上的特征都映射到同一特征空间中,同时通过不同的全连接层把不同类型的边的特征维度相统一。
在一个可选的实施例中,所述步骤S10213,包括:
根据所述一节点的节点向量、所述一节点对应所述同一边类型的一第一节点的节点向量、所述一节点与所述一第一节点之间的所述同一边类型的边的权值向量、所述一节点对应所述同一边类型的各第一节点的节点向量、所述一节点与所述各第一节点之间的所述同一边类型的边的权值向量以及一第一可学习参数向量,计算所述一节点与所述一第一节点之间的所述同一边类型的边关于所述一第一可学习参数向量的边级注意力;
根据所述一节点与所述各第一节点之间的所述同一边类型的边关于所述一第一可学习参数向量的边级注意力、所述各第一节点的节点向量以及所述一节点与所述各第一节点之间的所述同一边类型的边的权值向量,计算所述一节点对应所述同一边类型的边关于所述一第一可学习参数向量的边级注意力向量;
对所述一节点对应所述同一边类型的边关于K个第一可学习参数向量的边级注意力向量进行拼接,得到所述一节点对应所述同一边类型的边的边级注意力向量。
具体地,根据边级注意力计算公式,计算所述一节点与所述一第一节点之间的所述同一边类型的边关于一第一可学习参数向量的边级注意力,所述边级注意力计算公式为
其中,为所述一节点i与所述一第一节点j之间的所述同一边类型r的边关于一
第一可学习参数向量的边级注意力,LeakeyReLU( )为激活函数,若x≥0,则LeakeyReLU
(x)=x,反之则LeakeyReLU(x)=negative_slope×x,negative_slope为预设的函数值,||表
示向量拼接操作,hi为所述一节点i的节点向量,hj为所述一第一节点j的节点向量,Ni r表示
所述一节点i对应所述同一边类型r的第一节点集合,hn为所述第一节点集合中的第一节点
n的节点向量。
根据边级注意力向量计算公式,计算所述一节点对应所述同一边类型的边关于所述一第一可学习参数向量的边级注意力向量,所述边级注意力向量计算公式为
其中,为所述一节点i对应所述同一边类型r的边关于所述一第一可学习
参数向量的边级注意力向量,σ( )为激活函数,为所述一节点i与第一节点n之间的
所述同一边类型r的边关于所述一第一可学习参数向量的边级注意力;
根据拼接公式拼接得到所述一节点对应所述同一边类型的边的边级注意力向量,所述拼接公式为
采用多头注意力机制,通过重复计算K次,每次的第一可学习参数向量不共享,最后再把所有的结果进行拼接,使得模型可以在不同的表示子空间里学习到相关的信息,从而提升最终的效果。
在一个可选的实施例中,所述步骤S10214具体为:
根据注意力权值计算公式,计算所述一节点的节点类型对应一边类型的注意力权值,所述注意力权值计算公式为
其中,βri为所述一节点i的节点类型Ai对应一边类型ri的注意力权值,ri∈{r1,
r2,…,rp},{r1,r2,…,rp}为与所述一节点i相连的边的边类型集合,p为与所述一节点i相
连的边的边类型总数,VAi为所述社交异质多重图中节点类型为Ai的节点集合,|VAi|为所述
社交异质多重图中节点类型为Ai的节点的总个数,qk T为所述一节点i的节点类型Ai对应的
第二可学习向量参数,tanh( )为激活函数,W和b分别为可学习的第二全连接层的权重和偏
差,为节点类型为Ai的节点v对应边类型为ri的边的边级注意力向量。
在一个可选的实施例中,所述步骤S10215具体为:
根据加权求和公式,计算所述一节点的特征向量,所述加权求和公式为
通过语义级注意力信息聚合,把来自不同边类型的边的语义信息聚合到一起形成最终的节点特征向量表示。
在一个可选的实施例中,所述步骤S1022,包括:
获取预设的训练集,所述训练集中包括预设比例的正样本和负样本,所述正样本为所述社交异质多重图中存在好友关系的用户节点对,所述负样本为所述社交异质多重图中不存在好友关系的用户节点对;
计算所述训练集中一用户节点对的中的两个用户节点的特征向量之间的余弦相似度;
根据损失值计算公式,计算所述一用户节点对的损失值,所述损失值计算公式为L(ui,uj)=-(yi,j∙log(s(ui,uj))+(1-yi,j)∙log(1-s(ui,uj))),yi,j表示所述一用户节点对中的两个用户节点ui和uj是否存在好友关系,若存在好友关系,则yi,j=1,反之则yi,j=0,s(ui,uj)为所述一用户节点对中的两个用户节点的特征向量之间的余弦相似度;
对所述训练集中的各用户节点对的损失值进行累加,得到模型损失值。
通过上述损失函数的计算,使得异质多重图神经网络模型可以不断自我更新其中的可学习参数,最终达到较好的学习效果。
在一个可选的实施例中,所述步骤S103,包括:
根据所述社交异质多重图,获取与一用户节点不存在好友关系的用户节点,作为所述一用户节点对应的候选好友节点;
分别计算所述一用户节点的最终特征向量与其对应的各候选好友节点的最终特征向量之间的余弦相似度,并根据所述余弦相似度对所述各候选好友节点进行降序排序,得到所述一用户节点的好友推荐序列;
根据所述一用户节点的好友推荐序列,为所述一用户节点进行好友推荐。
可以为在位置社交网络中还未建立好友关系的用户推荐现实生活中可能存在的好友,即为位置社交网络中的用户推荐潜在的好友。本发明最终所学习出来的用户向量表示,使得可以给用户推荐多个好友而不用受到数量限制,即最终的推荐好友数是可以根据需求动态调整的,只需要在已经排好序的候选好友中依次推荐即可。
如图2所示,本发明还提供了一种基于位置社交网络的好友推荐装置,包括:
构建模块201,用于获取位置社交网络数据,并根据所述位置社交网络数据,构建社交异质多重图,所述社交异质多重图中的节点包括用户节点和兴趣点节点,当两个节点之间存在边时,所述两个节点之间存在至少一种边类型的边;
输入模块202,用于将所述社交异质多重图输入训练好的异质多重图神经网络模型,输出各节点的最终特征向量;
推荐模块203,用于分别计算各用户节点的最终特征向量与其他用户节点的最终特征向量之间的相似度,并根据所述相似度进行好友推荐。
如图3所示,本发明还提供了一种电子设备,所述电子设备包括:
一个或多个处理器301;
存储装置302,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器301执行,使得所述一个或多个处理器301实现如上所述的基于位置社交网络的好友推荐方法。
本发明还提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如上所述的基于位置社交网络的好友推荐方法。
实施例一
请参照图4-7,本发明的实施例一为:一种基于位置社交网络的好友推荐方法,旨在深度建模位置社交网络不同要素之间复杂的连接关系从而为真实世界中的用户推荐可能存在的好友。
本方法基于异质多重图,异质多重图与传统的图结构不同点主要体现在两方面:1)图中的节点的类型可以多样化,在本实施例中即包含用户和兴趣点两类节点。2)节点之间的连接关系(边)种类可以多样化,比如兴趣点与兴趣点之间存在多种关系的边来表示它们之间的不同语义关系。通过异质多重图这样的结构方式来建模位置社交网络可以使得整个数据成为一个整体,可以在后续更加深入地挖掘其中的时空关系信息,从而更好地辅助进行好友推荐的任务。
同时,本实施例提出了一种新的异质多重图神经网络模型,旨在从异质多重图中挖掘出潜在的时空数据信息,目的是学习用户节点在向量空间中的表示,服务于后续的好友推荐任务。
本实施例的异质多重图神经网络模型的整体结构与流程如图4所示。
首先,根据位置社交网络(LBSN)中的数据,构建社交异质多重图。本实施例中,位置社交网络数据可来源于第三方平台(如美食推荐及评分平台,可以记录用户对商家的签到打卡信息,并可以发表评论或者分享帖子给好友),因此,位置社交网络数据可包含以下信息:
1、用户的社交网络,即用户与用户之间的好友关系;
2、用户访问商家兴趣点的信息,如某个用户在某个时间点访问了某个商家;
3、商家兴趣点的自身信息,包括商家的类别(如餐饮类)和位置信息,这里的位置信息使用经纬度来表示。
如图5所示,传统的简单图主要是指只包含一种节点一种类型的边的图,但是在现实世界数据中往往数据中节点有不同的类别(如学术网络图),这种需求让异质简单图数据取得了快速的进展。目前为止大多数研究者所设计的异质简单图虽然在可以包含不同类型的节点,同时不同类型节点之间的边也可以不同,但是在这种异质简单图中两个节点只存在一种边,这种形式就限定了异质简单图的数据表示能力不足。
而本实施例中,提出了异质多重图的概念,异质多重图与异质简单图的区别在于两个节点之间可以存在多种类型的边,同时也可以有环边(边两端的节点为同一个节点)。
异质多重图的具体概念如下:异质多重图是由一对不相交的集合G=(ν,ε)(ν称为顶点集合,ε为边集合)、节点类型映射ν→A(A为节点类型)、边类型映射ε→R(R为边类型)、多重图映射ε→ν∪[ν]2构成。其中,节点类型数加边类型数必须大于2,即|A|+|R|>2。此外,由于存在多重图映射,使得每条边可以指定一个或两个顶点,所以多重图中可以有重边和环边。即如果x和y是边e的端点,还是可以记为e=xy,但是x和y可能不能唯一地确定e了。
对于位置社交网络,定义其中的信息如下:U={u1,u2,…,uM}是M个用户的集合,V={v1,v2,…,vN}是N个兴趣点的集合。
则基于位置社交网络数据的好友推荐任务可以描述为:对于一对用户ui和uj,已知他们的社交网络与历史轨迹,训练一个模型F来评估用户ui和uj是好友的可能性ŷ:F(ui,uj)→ŷ∈[0,1],其中可能性的得分介于0到1之间。
如图6所示,本实施例的社交异质多重图中包含两类型节点:用户与兴趣点,以及五种类型的边:朋友、签到、同社区、同类别和共现。
首先,对于位置社交网络中见面事件和兴趣点的共现等问题进行定义:
见面事件:如果两个用户ui和uj分别在时间ti和时间tj访问了某个兴趣点,且其访问的时间差小于预设的见面时差阈值τ,即|ti-tj|<τ,则认定这两个用户在该兴趣点有一次见面事件。本实施例中,见面时差阈值τ设定为1小时。
兴趣点共现:如果两个兴趣点vi和vj在同一个用户um的轨迹Hum中出现,则认定这两个兴趣点有一次共现,如果多次出现,则此处记录的共现次数翻倍,表示这两个兴趣点有比较强的关系。
同时,定义用户的家庭住址为用户的历史访问轨迹中所有兴趣点的位置的中心位置,即计算历史访问轨迹中所有兴趣点的经纬度的平均值,作为用户的家庭住址的经纬度。
另外,本实施例中,把一天24个小时分别四个时间段,其中,5:00-10:00为上午,10:00-15:00为中午,15:00-22:00为下午及傍晚,22:00-5:00为夜间。
然后,对社交异质多重图中的节点及相应的边进行定义:
节点:所有的用户和兴趣点构成社交异质多重图中的节点。随机初始化使用长度为128的向量来表示每个节点。
朋友(边):存在于用户与用户之间。如果两个人是好友,则在社交异质多重图中存在一条“朋友”的边连接这两个用户节点。其中边上的权值向量为这两个人分别在上述四个时间段内的见面事件次数。
签到(边):存在于用户与兴趣点之间。如果在用户的历史访问轨迹中出现了某个兴趣点,则在社交异质多重图中存在一条“签到”的边连接该用户节点与该兴趣点节点。其中边上的权值向量为该用户在上述四个时间段中分别访问这个兴趣点的次数。
同社区(边):存在于用户与兴趣点之间。如果用户的家庭住址与兴趣点的位置之间的距离小于设定的距离阈值d,即认为该用户与该兴趣点处于同一社区,在社交异质多重图中存在一条“同社区”的边连接该用户节点和该兴趣点节点。其中边上的权值向量即为该用户的家庭住址与该兴趣点的位置之间的距离(单位km)。本实施例中的距离阈值d为1.5km。
同类别(边):存在于兴趣点与兴趣点之间。如果两个兴趣点属于同一类别,即类别相同,则在社交异质多重图中存在一条“同类别”的边连接这两个兴趣点节点。其中边上的权值向量为这两个兴趣点之间的距离(km)。
共现(边):存在于兴趣点与兴趣点之间。如果两个兴趣点在同一用户的历史访问轨迹中出现,则认为两个兴趣点有一次共现,在社交异质多重图中有一条“共现”的边来连接这两个兴趣点节点。其中边上的权值向量即为这两个兴趣点节点共现的次数。
通过以上定义,即可根据位置社交网络数据,构建社交异质多重图。
构建完社交异质多重图后,将社交异质多重图输入异质多重图神经网络模型。
由于社交异质多重图中存在五种边,这些边的权值向量都代表了不一样的语义关系。为了方便模型的学习,使用全连接层把这些边上的权值向量都映射到同一特征空间中,同时通过不同的全连接层把不同边类型的边的权值向量维度相统一。
具体地,特征转换公式为,其中,σ( )为激活函数,本实施例中
选用的是ReLU激活函数(f(x)=max(0,x));he为边e上的权值向量,he’为边e特征转换后的权
值向量,Wr为可学习的边e的边类型对应的第一全连接层的权重(矩阵形式),br为可学习的
边e的边类型对应的第一全连接层的偏差(bias)。也就是说,不同边类型的边对应不同的第
一全连接层,同一边类型的边共享同一个第一全连接层,每个第一全连接层的权重和参数
会随着异质多重图神经网络模型的训练而更新。对于初始值,使用Xavier正态分布来初始
化(即xavier初始化方法中服从正态分布),在初始化中涉及到的增益值Gain为根号2。
权值向量维度统一后,进行特征传递与聚合。在本过程中主要包含两大块的内容:边级注意力信息聚合和语义级注意力信息聚合。图神经网络中的基本思想就是节点需要聚合来自其相邻的节点所传递来的信息,从而更新自己的信息。由于在异质多重图中不仅存在不同类型的节点,也存在不同类型的边,同时两个节点之间也可能存在多种边,因此将信息特征传递与聚合的过程分成两部分:首先节点先聚合来自同一类型的边的节点的信息(边级注意力),然后再聚合来自不同类型的节点的信息(语义级注意力)。因为一种类型的边的两端节点是固定的,所以经过这样的两阶段信息聚合,节点就可以聚合到所有的相连的节点及其边上的信息。
对于边级注意力信息聚合,由于一个节点可能会与多种类型的节点有多种类型的边,因此先使用边级注意力来聚合来自同一类边的信息。
其中,LeakeyReLU( )也是激活函数的一种,具体公式为:
negative_slope为预设的函数值,本实施例中,取Pytorch库中的函数默认值1e-2(表示10的负2次方,即0.01)。
本实施例采用多头注意力机制,即分别根据K个不同的第一可学习参数向量,重复执行上述计算,再把这K次计算得到的节点i对应边类型为r的边的边级注意力向量拼接起来,拼接公式为:
通过重复计算K次,每次的第一可学习参数向量不共享,最后再把所有的结果进行拼接,使得模型可以在不同的表示子空间里学习到相关的信息,从而提升最终的效果。
假设有多个边类型{r1,r2,…,rp}的边与节点i相连,则在进行边级注意力信息聚
合后,会相应地得到,这些边级注意力向量分别代表来自不同边类型的边的
信息,这里面就包含着丰富的语义信息。接着通过语义级注意力信息聚合,把这些来自不同
边类型的边的语义信息聚合到一起形成最终的节点特征向量表示。
假设节点i的节点类型为Ai,Ai∈A,通过注意力权值计算公式,计算节点类型Ai对应边类型ri的注意力权值βri,ri∈{r1,r2,…,rp},注意力权值计算公式为:
其中,VAi为社交异质多重图中节点类型为Ai的节点集合,|VAi|为该节点集合中的
节点总个数,也即社交异质多重图中节点类型为Ai的节点的总个数;tanh( )也是激活函数
中的一种;为节点类型为Ai的节点v对应边类型为ri的边的边级注意力向量,节点v∈
VAi;为节点类型Ai对应第二可学习向量参数,W和b分别为可学习的第二全连接层的权重
和偏差,、W和b均会随着异质多重图神经网络模型的训练而更新。
βri即表示边类型为ri的边对节点类型为Ai的节点的重要影响程度,通过计算出节
点类型Ai对应各边类型{r1,r2,…,rp}的注意力权值,再对节点i对应各边
类型的边的边级注意力向量进行加权求和,即可得到节点i的特征向量
,加权求和公式为:
通过上述的多次信息特征传递与聚合,得到了新的节点向量表示,接下来将使用最小化损失函数的方式来指导调整整个网络模型中的权重参数。
余弦相似度计算公式为:
本实施例中,使用交叉熵损失函数来训练整个模型,具体地,预先创建训练集,训练集中包括预设比例的正样本和负样本,正样本为社交异质多重图中存在好友关系的用户节点对(即通过“朋友”的边相连的两个用户节点),负样本为所述社交异质多重图中不存在好友关系的用户节点对;然后通过交叉熵损失函数来计算训练集中各用户节点对的损失值,最后进行累加,得到模型损失值。
交叉熵损失函数的计算公式为:
其中,L(ui,uj)为用户节点对ui和uj的损失值;yi,j表示用户节点对中的两个用户节点ui和uj是否存在好友关系,若存在好友关系,则yi,j=1,反之则yi,j=0。s(ui,uj)为该用户节点对中的两个用户节点的特征向量之间的余弦相似度。
通过上述损失函数的计算后,根据模型损失值,通过反向传播算法(BP算法)训练异质多重图神经网络模型,即通过计算损失值与所有可学习参数的导数,来更新异质多重图神经网络模型中可学习的参数。所有的可学习参数都更新完毕一次后称为一个epoch,即训练了一次。本实施例中,训练结束条件为达到了7000次训练,即经过7000个epoch后,则停止对异质多重图神经网络模型的训练。
接着获取异质多重图神经网络模型最后一次输出的各节点的特征向量,作为各节点的最终特征向量。
最后,分别计算各用户节点的最终特征向量与其他用户节点的最终特征向量之间的余弦相似度,并根据余弦相似度进行好友推荐。本实施例中,好友推荐的方法是计算某个用户节点的最终特征向量和与其不存在好友关系的所有用户节点(即该用户节点对应的候选好友节点)的最终特征向量之间的余弦相似度,然后根据预先相似度对这些候选好友节点进行降序排序,若要为该用户节点推荐M个好友,则选取前M个候选好友节点进行推荐。
本实施例最终所学习出来的用户向量表示,使得可以给用户推荐多个好友而不用受到数量限制(最大数为整个网络中的所有候选好友用户数),即最终的推荐好友数M是可以根据需求动态调整的,只需要在已经排好序的候选好友中依次推荐即可。
另外,在上述过程中,通过上述损失函数的计算及训练,可以使得异质多重图神经网络模型不断自我更新其中的可学习参数,最终达到较好的学习效果。
使用Area Under the ROC Curve (AUC)以及平均准确率(AP)来评价模型的性能。位置社交网络中常用的好友关系推荐模型有LBSN2Vec、metapath2vec、GAT、Heter-GCN、MVMN、HAN。在Foursquare数据集中选用了6个城市的数据(纽约NYC、东京TKY、伊斯坦布尔IST、雅加达JK、吉隆坡KL和圣保罗SP),对数据集中的社交网络划分80%作为训练集,20%作为测试集。最终的对比实验结果如图7所示。
从图7中可以看出,本实施例可以大幅度提升在好友推荐任务上的模型性能,不仅AUC指标,亦或是平均准确率AP指标,本实施例的模型效果在世界范围内的多个城市数据上对比现有的技术方案都有大幅度的提高。
本实施例通过构建社交异质多重图,在异质多重图中不仅可以存储多种节点和多种连接关系,还可以存储两个节点中可能存在的多种相互连接关系,从而使得位置社交网络数据可以成为一个整体,便于后续更加深入地挖掘其中的时空关系信息。
采用边级注意力机制与语义级注意力机制的两级注意力机制,边级注意力机制可以很好地聚合来自同一类型的边上所传播过来的信息,同时在计算边级注意力向量时不仅考虑所连接的节点的节点向量的情况,还考虑到了边上的特征(权值向量)对两个节点之间的连接影响,同样在聚合信息时也聚合了边上的特征,而现有的图神经网络没有考虑边上特征对连接关系的影响。语义注意力机制则可以地很好解决不同类型的边传播过来的信息如何在节点上聚合的问题。
实施例二
请参照图2,本发明的实施例二为:一种基于位置社交网络的好友推荐装置,可执行本发明实施例一所提供的基于位置社交网络的好友推荐方法,具备执行方法相应的功能模块和有益效果。该装置可以由软件/或硬件实现,具体包括:
构建模块201,用于获取位置社交网络数据,并根据所述位置社交网络数据,构建社交异质多重图,所述社交异质多重图中的节点包括用户节点和兴趣点节点,当两个节点之间存在边时,所述两个节点之间存在至少一种边类型的边;
输入模块202,用于将所述社交异质多重图输入训练好的异质多重图神经网络模型,输出各节点的最终特征向量;
推荐模块203,用于分别计算各用户节点的最终特征向量与其他用户节点的最终特征向量之间的相似度,并根据所述相似度进行好友推荐。
在一个可选的实施方式中,所述位置社交网络数据包括用户的好友关系和历史访问轨迹以及兴趣点的位置和类别,所述历史访问轨迹包括用户访问过的兴趣点及其对应的访问时间,所述社交异质多重图中的节点类型包括用户和兴趣点,边类型包括朋友、签到、同社区、同类别和共现;
所述构建模块201,包括:
划分单元,用于将一天划分多个预设时长的第一时间段;
第一计算单元,用于分别根据各用户的历史访问轨迹中的各兴趣点的位置,计算轨迹中心点位置,作为各用户的家庭住址;
第一构建单元,用于构建与各用户和各兴趣点一一对应的用户节点和兴趣点节点,并分别生成各节点的节点向量;
第二构建单元,用于若两个用户之间存在好友关系,则在所述两个用户对应的用户节点之间构建边类型为朋友的边,并根据所述两个用户的历史访问轨迹,分别统计所述两个用户在各第一时间段内的见面次数,作为所述边类型为朋友的边的权值向量;
第三构建单元,用于若一用户的历史访问轨迹中存在一兴趣点,则在所述一用户对应的用户节点和所述一兴趣点对应的兴趣点节点之间构建边类型为签到的边,并分别统计所述一用户在各第一时间段内访问所述一兴趣点的次数,作为所述边类型为签到的边的权值向量;
第四构建单元,用于若一用户的家庭住址与一兴趣点之间的距离小于预设的距离阈值,则在所述一用户对应的用户节点和所述一兴趣点对应的兴趣点节点之间构建边类型为同社区的边,并将所述一用户的家庭住址与一兴趣点之间的距离作为所述边类型为同社区的边的权值向量;
第五构建单元,用于若两个兴趣点属于同一类别,则在所述两个兴趣点对应的兴趣点节点之间构建边类型为同类别的边,并将所述两个兴趣点之间的距离作为所述边类型为同类别的边的权值向量;
第六构建单元,用于若两个兴趣点同时存在于同一用户的历史访问轨迹中,则在所述两个兴趣点对应的兴趣点节点之间构建边类型为共现的边,并将所述两个兴趣点的共现次数作为所述边类型为共现的边的权值向量。
在一个可选的实施方式中,所述输入模块202,包括:
第一输出单元,用于将所述社交异质多重图输入异质多重图神经网络模型,输出各节点的特征向量;
损失值计算单元,用于根据预设的训练集中的各用户节点对的好友关系以及各用户节点对中的两个用户节点的特征向量之间的相似度,计算各用户节点对的损失值,并根据所述训练集中的各用户节点对的损失值,计算模型损失值;
训练单元,用于根据所述模型损失值,通过反向传播算法更新所述异质多重图神经网络模型,并继续执行所述第一输出单元,直至达到预设的训练结束条件;
第二输出单元,用于获取达到预设的训练结束条件时所述异质多重图神经网络模型输出的各节点的特征向量,作为各节点的最终特征向量。
在一个可选的实施方式中,所述第一输出单元,包括:
特征转换单元,用于分别对所述社交异质多重图中各边的权值向量进行特征转换,得到特征转换后的权值向量,各边特征转换后的权值向量的维度相同;
第一获取单元,用于获取与一节点通过同一边类型的边相连的节点,作为所述一节点对应所述同一边类型的第一节点;
边级注意力向量计算单元,用于根据所述一节点的节点向量、各所述第一节点的节点向量、所述一节点与各所述第一节点之间的所述同一边类型的边的权值向量以及K个第一可学习参数向量,分别计算所述一节点对应所述同一边类型的边关于各第一可学习参数向量的边级注意力向量,并进行拼接,得到所述一节点对应所述同一边类型的边的边级注意力向量;
注意力权值计算单元,用于根据节点类型与所述一节点相同的各节点对应各边类型的边级注意力向量、所述一节点的节点类型对应的第二可学习向量参数、可学习的第二全连接层的权重和偏差,计算所述一节点的节点类型对应各边类型的注意力权值;
加权求和单元,用于根据所述一节点的节点类型对应各边类型的注意力权值,对所述一节点对应各边类型的边的边级注意力向量进行加权求和,得到所述一节点的特征向量。
在一个可选的实施方式中,所述特征转换单元,具体用于根据特征转换公式,对所述社交异质多重图中的一边的权值向量进行特征转换,得到所述一边特征转换后的权值向量,所述特征转换公式为he’=σ(Wr⋅he+br),he’为所述一边特征转换后的权值向量,σ( )为激活函数,he为所述一边的权值向量,Wr为可学习的所述一边的边类型对应的第一全连接层的权重,br为可学习的所述一边的边类型对应的第一全连接层的偏差。
在一个可选的实施方式中,所述边级注意力向量计算单元,包括:
边级注意力计算单元,用于根据所述一节点的节点向量、所述一节点对应所述同一边类型的一第一节点的节点向量、所述一节点与所述一第一节点之间的所述同一边类型的边的权值向量、所述一节点对应所述同一边类型的各第一节点的节点向量、所述一节点与所述各第一节点之间的所述同一边类型的边的权值向量以及一第一可学习参数向量,计算所述一节点与所述一第一节点之间的所述同一边类型的边关于所述一第一可学习参数向量的边级注意力;
向量计算单元,用于根据所述一节点与所述各第一节点之间的所述同一边类型的边关于所述一第一可学习参数向量的边级注意力、所述各第一节点的节点向量以及所述一节点与所述各第一节点之间的所述同一边类型的边的权值向量,计算所述一节点对应所述同一边类型的边关于所述一第一可学习参数向量的边级注意力向量;
拼接单元,用于对所述一节点对应所述同一边类型的边关于K个第一可学习参数向量的边级注意力向量进行拼接,得到所述一节点对应所述同一边类型的边的边级注意力向量。
在一个可选的实施方式中,所述损失值计算单元,包括:
第二获取单元,用于获取预设的训练集,所述训练集中包括预设比例的正样本和负样本,所述正样本为所述社交异质多重图中存在好友关系的用户节点对,所述负样本为所述社交异质多重图中不存在好友关系的用户节点对;
第二计算单元,用于计算所述训练集中一用户节点对的中的两个用户节点的特征向量之间的余弦相似度;
第三计算单元,用于根据损失值计算公式,计算所述一用户节点对的损失值,所述损失值计算公式为L(ui,uj)=-(yi,j∙log(s(ui,uj))+(1-yi,j)∙log(1-s(ui,uj))),yi,j表示所述一用户节点对中的两个用户节点ui和uj是否存在好友关系,若存在好友关系,则yi,j=1,反之则yi,j=0,s(ui,uj)为所述一用户节点对中的两个用户节点的特征向量之间的余弦相似度;
累加单元,用于对所述训练集中的各用户节点对的损失值进行累加,得到模型损失值。
在一个可选的实施方式中,所述推荐模块203,包括:
第三获取单元,用于根据所述社交异质多重图,获取与一用户节点不存在好友关系的用户节点,作为所述一用户节点对应的候选好友节点;
第四计算单元,用于分别计算所述一用户节点的最终特征向量与其对应的各候选好友节点的最终特征向量之间的余弦相似度,并根据所述余弦相似度对所述各候选好友节点进行降序排序,得到所述一用户节点的好友推荐序列;
好友推荐单元,用于根据所述一用户节点的好友推荐序列,为所述一用户节点进行好友推荐。
实施例三
请参照图3,本发明的实施例三为:一种电子设备,所述电子设备包括:
一个或多个处理器301;
存储装置302,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器301执行,使得所述一个或多个处理器301实现如上所述的基于位置社交网络的好友推荐方法实施例中的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
实施例四
本发明的实施例四提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如上所述的基于位置社交网络的好友推荐方法实施例中的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
综上所述,本发明提供的一种好友推荐方法、装置、设备和存储介质,通过构建社交异质多重图,在异质多重图中不仅可以存储多种节点和多种连接关系,还可以存储两个节点中可能存在的多种相互连接关系,从而使得位置社交网络数据可以成为一个整体,便于后续更加深入地挖掘其中的时空关系信息。提出一种新的异质多重图神经网络模型,采用边级注意力机制与语义级注意力机制的两级注意力机制,边级注意力机制可以很好地聚合来自同一类型的边上所传播过来的信息,并且在聚合时也聚合了边上的特征;语义级注意力机制可以很好地聚合不同类型的边传播过来的信息;获取停止训练时异质多重图神经网络模型输出的最终特征向量,可较好地表示各节点聚合其相邻节点及相连边上的信息后的信息。最后通过计算用户节点的特征向量之间的相似度来进行好友推荐,可以为在位置社交网络中还未建立好友关系的用户推荐现实生活中可能存在的好友,且保证推荐的准确性。
通过以上关于实施方式的描述,所属领域的技术人员可以清楚地了解到,本发明可借助软件及必需的通用硬件来实现,当然也可以通过硬件实现,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如计算机的软盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(RandomAccess Memory,RAM)、闪存(FLASH)、硬盘或光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
值得注意的是,上述装置的实施例中,所包括的各个单元和模块只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。
以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等同变换,或直接或间接运用在相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (10)
1.一种基于位置社交网络的好友推荐方法,其特征在于,包括:
获取位置社交网络数据,并根据所述位置社交网络数据,构建社交异质多重图,所述社交异质多重图中的节点包括用户节点和兴趣点节点,当两个节点之间存在边时,所述两个节点之间存在至少一种边类型的边;
将所述社交异质多重图输入训练好的异质多重图神经网络模型,输出各节点的最终特征向量;
分别计算各用户节点的最终特征向量与其他用户节点的最终特征向量之间的相似度,并根据所述相似度进行好友推荐;
所述将所述社交异质多重图输入训练好的异质多重图神经网络模型,输出各节点的最终特征向量,包括:
将所述社交异质多重图输入异质多重图神经网络模型,输出各节点的特征向量;
根据预设的训练集中的各用户节点对的好友关系以及各用户节点对中的两个用户节点的特征向量之间的相似度,计算各用户节点对的损失值,并根据所述训练集中的各用户节点对的损失值,计算模型损失值;
根据所述模型损失值,通过反向传播算法更新所述异质多重图神经网络模型,并继续执行所述将所述社交异质多重图输入异质多重图神经网络模型,输出各节点的特征向量的步骤,直至达到预设的训练结束条件;
获取达到预设的训练结束条件时所述异质多重图神经网络模型输出的各节点的特征向量,作为各节点的最终特征向量;
所述将所述社交异质多重图输入异质多重图神经网络模型,输出各节点的特征向量,包括:
分别对所述社交异质多重图中各边的权值向量进行特征转换,得到特征转换后的权值向量,各边特征转换后的权值向量的维度相同;
获取与一节点通过同一边类型的边相连的节点,作为所述一节点对应所述同一边类型的第一节点;
根据所述一节点的节点向量、各所述第一节点的节点向量、所述一节点与各所述第一节点之间的所述同一边类型的边的权值向量以及K个第一可学习参数向量,分别计算所述一节点对应所述同一边类型的边关于各第一可学习参数向量的边级注意力向量,并进行拼接,得到所述一节点对应所述同一边类型的边的边级注意力向量;
根据节点类型与所述一节点相同的各节点对应各边类型的边级注意力向量、所述一节点的节点类型对应的第二可学习向量参数、可学习的第二全连接层的权重和偏差,计算所述一节点的节点类型对应各边类型的注意力权值;
根据所述一节点的节点类型对应各边类型的注意力权值,对所述一节点对应各边类型的边的边级注意力向量进行加权求和,得到所述一节点的特征向量。
2.根据权利要求1所述的基于位置社交网络的好友推荐方法,其特征在于,所述位置社交网络数据包括用户的好友关系和历史访问轨迹以及兴趣点的位置和类别,所述历史访问轨迹包括用户访问过的兴趣点及其对应的访问时间,所述社交异质多重图中的节点类型包括用户和兴趣点,边类型包括朋友、签到、同社区、同类别和共现;
所述根据所述位置社交网络数据,构建社交异质多重图,包括:
将一天划分多个预设时长的第一时间段;
分别根据各用户的历史访问轨迹中的各兴趣点的位置,计算轨迹中心点位置,作为各用户的家庭住址;
构建与各用户和各兴趣点一一对应的用户节点和兴趣点节点,并分别生成各节点的节点向量;
若两个用户之间存在好友关系,则在所述两个用户对应的用户节点之间构建边类型为朋友的边,并根据所述两个用户的历史访问轨迹,分别统计所述两个用户在各第一时间段内的见面次数,作为所述边类型为朋友的边的权值向量;
若一用户的历史访问轨迹中存在一兴趣点,则在所述一用户对应的用户节点和所述一兴趣点对应的兴趣点节点之间构建边类型为签到的边,并分别统计所述一用户在各第一时间段内访问所述一兴趣点的次数,作为所述边类型为签到的边的权值向量;
若一用户的家庭住址与一兴趣点之间的距离小于预设的距离阈值,则在所述一用户对应的用户节点和所述一兴趣点对应的兴趣点节点之间构建边类型为同社区的边,并将所述一用户的家庭住址与一兴趣点之间的距离作为所述边类型为同社区的边的权值向量;
若两个兴趣点属于同一类别,则在所述两个兴趣点对应的兴趣点节点之间构建边类型为同类别的边,并将所述两个兴趣点之间的距离作为所述边类型为同类别的边的权值向量;
若两个兴趣点同时存在于同一用户的历史访问轨迹中,则在所述两个兴趣点对应的兴趣点节点之间构建边类型为共现的边,并将所述两个兴趣点的共现次数作为所述边类型为共现的边的权值向量。
3.根据权利要求2所述的基于位置社交网络的好友推荐方法,其特征在于,所述根据所述两个用户的历史访问轨迹,分别统计所述两个用户在各第一时间段内的见面次数,作为所述边类型为朋友的边的权值向量,包括:
根据所述两个用户的历史访问轨迹,判断所述两个用户是否访问过同一兴趣点;
若否,则将所述两个用户在各第一时间段内的见面次数均设为0;
若是,则分别获取所述两个用户对应所述同一兴趣点的访问时间,并计算访问时间差;
若所述访问时间差小于预设的见面时差阈值,则令所述两个用户在对应所述同一兴趣点的访问时间所属的第一时间段的见面次数加一。
4.根据权利要求1所述的基于位置社交网络的好友推荐方法,其特征在于,所述分别对所述社交异质多重图中各边的权值向量进行特征转换,得到特征转换后的权值向量,各边特征转换后的权值向量的维度相同,包括:
根据特征转换公式,对所述社交异质多重图中的一边的权值向量进行特征转换,得到所述一边特征转换后的权值向量,所述特征转换公式为he’=σ(Wr⋅he+br),he’为所述一边特征转换后的权值向量,σ( )为激活函数,he为所述一边的权值向量,Wr为可学习的所述一边的边类型对应的第一全连接层的权重,br为可学习的所述一边的边类型对应的第一全连接层的偏差。
5.根据权利要求1所述的基于位置社交网络的好友推荐方法,其特征在于,所述根据所述一节点的节点向量、各所述第一节点的节点向量、所述一节点与各所述第一节点之间的所述同一边类型的边的权值向量以及K个第一可学习参数向量,分别计算所述一节点对应所述同一边类型的边关于各第一可学习参数向量的边级注意力向量,并进行拼接,得到所述一节点对应所述同一边类型的边的边级注意力向量,包括:
根据所述一节点的节点向量、所述一节点对应所述同一边类型的一第一节点的节点向量、所述一节点与所述一第一节点之间的所述同一边类型的边的权值向量、所述一节点对应所述同一边类型的各第一节点的节点向量、所述一节点与所述各第一节点之间的所述同一边类型的边的权值向量以及一第一可学习参数向量,计算所述一节点与所述一第一节点之间的所述同一边类型的边关于所述一第一可学习参数向量的边级注意力;
根据所述一节点与所述各第一节点之间的所述同一边类型的边关于所述一第一可学习参数向量的边级注意力、所述各第一节点的节点向量以及所述一节点与所述各第一节点之间的所述同一边类型的边的权值向量,计算所述一节点对应所述同一边类型的边关于所述一第一可学习参数向量的边级注意力向量;
对所述一节点对应所述同一边类型的边关于K个第一可学习参数向量的边级注意力向量进行拼接,得到所述一节点对应所述同一边类型的边的边级注意力向量。
6.根据权利要求1所述的基于位置社交网络的好友推荐方法,其特征在于,所述根据预设的训练集中的各用户节点对的好友关系以及各用户节点对中的两个用户节点的特征向量之间的相似度,计算各用户节点对的损失值,并根据所述训练集中的各用户节点对的损失值,计算模型损失值,包括:
获取预设的训练集,所述训练集中包括预设比例的正样本和负样本,所述正样本为所述社交异质多重图中存在好友关系的用户节点对,所述负样本为所述社交异质多重图中不存在好友关系的用户节点对;
计算所述训练集中一用户节点对的中的两个用户节点的特征向量之间的余弦相似度;
根据损失值计算公式,计算所述一用户节点对的损失值,所述损失值计算公式为L(ui,uj)=-(yi,j∙log(s(ui,uj))+(1-yi,j)∙log(1-s(ui,uj))),yi,j表示所述一用户节点对中的两个用户节点ui和uj是否存在好友关系,若存在好友关系,则yi,j=1,反之则yi,j=0,s(ui,uj)为所述一用户节点对中的两个用户节点的特征向量之间的余弦相似度;
对所述训练集中的各用户节点对的损失值进行累加,得到模型损失值。
7.根据权利要求1所述的基于位置社交网络的好友推荐方法,其特征在于,所述分别计算各用户节点的最终特征向量与其他用户节点的最终特征向量之间的相似度,并根据所述相似度进行好友推荐,包括:
根据所述社交异质多重图,获取与一用户节点不存在好友关系的用户节点,作为所述一用户节点对应的候选好友节点;
分别计算所述一用户节点的最终特征向量与其对应的各候选好友节点的最终特征向量之间的余弦相似度,并根据所述余弦相似度对所述各候选好友节点进行降序排序,得到所述一用户节点的好友推荐序列;
根据所述一用户节点的好友推荐序列,为所述一用户节点进行好友推荐。
8.一种基于位置社交网络的好友推荐装置,其特征在于,包括:
构建模块,用于获取位置社交网络数据,并根据所述位置社交网络数据,构建社交异质多重图,所述社交异质多重图中的节点包括用户节点和兴趣点节点,当两个节点之间存在边时,所述两个节点之间存在至少一种边类型的边;
输入模块,用于将所述社交异质多重图输入训练好的异质多重图神经网络模型,输出各节点的最终特征向量;
推荐模块,用于分别计算各用户节点的最终特征向量与其他用户节点的最终特征向量之间的相似度,并根据所述相似度进行好友推荐;
所述输入模块,包括:
第一输出单元,用于将所述社交异质多重图输入异质多重图神经网络模型,输出各节点的特征向量;
损失值计算单元,用于根据预设的训练集中的各用户节点对的好友关系以及各用户节点对中的两个用户节点的特征向量之间的相似度,计算各用户节点对的损失值,并根据所述训练集中的各用户节点对的损失值,计算模型损失值;
训练单元,用于根据所述模型损失值,通过反向传播算法更新所述异质多重图神经网络模型,并继续执行所述第一输出单元,直至达到预设的训练结束条件;
第二输出单元,用于获取达到预设的训练结束条件时所述异质多重图神经网络模型输出的各节点的特征向量,作为各节点的最终特征向量;
所述第一输出单元,包括:
特征转换单元,用于分别对所述社交异质多重图中各边的权值向量进行特征转换,得到特征转换后的权值向量,各边特征转换后的权值向量的维度相同;
第一获取单元,用于获取与一节点通过同一边类型的边相连的节点,作为所述一节点对应所述同一边类型的第一节点;
边级注意力向量计算单元,用于根据所述一节点的节点向量、各所述第一节点的节点向量、所述一节点与各所述第一节点之间的所述同一边类型的边的权值向量以及K个第一可学习参数向量,分别计算所述一节点对应所述同一边类型的边关于各第一可学习参数向量的边级注意力向量,并进行拼接,得到所述一节点对应所述同一边类型的边的边级注意力向量;
注意力权值计算单元,用于根据节点类型与所述一节点相同的各节点对应各边类型的边级注意力向量、所述一节点的节点类型对应的第二可学习向量参数、可学习的第二全连接层的权重和偏差,计算所述一节点的节点类型对应各边类型的注意力权值;
加权求和单元,用于根据所述一节点的节点类型对应各边类型的注意力权值,对所述一节点对应各边类型的边的边级注意力向量进行加权求和,得到所述一节点的特征向量。
9.一种电子设备,其特征在于,所述电子设备包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-7中任一所述的基于位置社交网络的好友推荐方法。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1-7任一项所述的基于位置社交网络的好友推荐方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210490518.2A CN114579879B (zh) | 2022-05-06 | 2022-05-06 | 好友推荐方法、装置、设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210490518.2A CN114579879B (zh) | 2022-05-06 | 2022-05-06 | 好友推荐方法、装置、设备和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114579879A CN114579879A (zh) | 2022-06-03 |
CN114579879B true CN114579879B (zh) | 2022-07-26 |
Family
ID=81769286
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210490518.2A Active CN114579879B (zh) | 2022-05-06 | 2022-05-06 | 好友推荐方法、装置、设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114579879B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115310762A (zh) * | 2022-07-04 | 2022-11-08 | 上海淇玥信息技术有限公司 | 基于异构图神经网络的目标服务确定方法和装置 |
CN115146180B (zh) * | 2022-09-02 | 2022-11-29 | 南方科技大学 | 一种好友和兴趣点推荐方法及终端 |
CN115186664B (zh) * | 2022-09-13 | 2023-01-13 | 深圳市爱聊科技有限公司 | 基于多维度的主体间相合度测算方法及系统 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105791085B (zh) * | 2016-01-26 | 2018-11-20 | 西安电子科技大学 | 在位置社交网络中基于位置与时间的好友推荐方法 |
CN110704640A (zh) * | 2019-09-30 | 2020-01-17 | 北京邮电大学 | 一种知识图谱的表示学习方法及装置 |
CN113569906B (zh) * | 2021-06-10 | 2024-03-15 | 重庆大学 | 基于元路径子图的异质图信息提取方法和装置 |
CN113254803B (zh) * | 2021-06-24 | 2021-10-22 | 暨南大学 | 一种基于多特征异质图神经网络的社交推荐方法 |
-
2022
- 2022-05-06 CN CN202210490518.2A patent/CN114579879B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN114579879A (zh) | 2022-06-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114579879B (zh) | 好友推荐方法、装置、设备和存储介质 | |
Logesh et al. | A personalised travel recommender system utilising social network profile and accurate GPS data | |
US8874616B1 (en) | Method and apparatus for fusion of multi-modal interaction data | |
AU2010236510B2 (en) | Complex situation analysis system | |
Rahimi et al. | Behavior-based location recommendation on location-based social networks | |
CN114547325A (zh) | 一种概率超图驱动的地学知识图谱推理优化系统和方法 | |
Chae et al. | Technologies and applications of Industry 4.0: insights from network analytics | |
Li et al. | HMGCL: Heterogeneous multigraph contrastive learning for LBSN friend recommendation | |
CN113240086A (zh) | 一种复杂网络链接预测方法及系统 | |
Chen et al. | Construction and application of COVID-19 infectors activity information knowledge graph | |
CN111738447A (zh) | 基于时空关系学习的移动社交网络用户关系推断方法 | |
Noureddine et al. | A hierarchical indoor and outdoor model for semantic trajectories | |
Xu et al. | Deep convolutional recurrent model for region recommendation with spatial and temporal contexts | |
Yao et al. | Fast optimization for large scale logistics in complex urban systems using the hybrid sparrow search algorithm | |
CN112016701B (zh) | 一种融合时序和属性行为的异常变化检测方法及系统 | |
Quan et al. | An optimized task assignment framework based on crowdsourcing knowledge graph and prediction | |
CN117194765A (zh) | 一种兴趣感知的双通道图对比学习会话推荐方法 | |
Lin | Implementation of personalized scenic spot recommendation algorithm based on generalized regression neural network for 5G smart tourism system | |
CN115827898A (zh) | 一种面向用户意图的时空知识图谱构建方法 | |
Zhu | A novel social network measurement and perception pattern based on a multi-agent and convolutional neural network | |
Liu | POI recommendation model using multi-head attention in location-based social network big data | |
Li et al. | Reinforcement learning architecture for cyber–physical–social AI: state-of-the-art and perspectives | |
Wu et al. | Mining trajectory patterns with point-of-interest and behavior-of-interest | |
Zhang et al. | Session‐Based Graph Attention POI Recommendation Network | |
Zhang et al. | Graph-Enhanced Spatio-Temporal Interval Aware Network for Next POI Recommendation in Mobile Environment |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |