本发明涉及博文推荐领域,特别是涉及一种基于图卷积神经网络的博文推荐方法及系统。
背景技术:
随着电子设备的大量普及以及信息技术和互联网技术的迅速发展,网络博文数据呈现爆炸式增长,这为网民们提供大量信息的同时,也带来了信息选择和过滤的困难。网络上大量存在来自各个领域的博文,人们越来越难从大量信息中汲取自身感兴趣的并且有效的博文,以供阅读和借鉴;同时,有用的信息也越来越难准确到达合适的用户,以便进行精准推荐。
寻找博文传统的做法是进入某个网页,输入博文标题进行搜索,这是低效和片面的。在如今大数据时代背景下,如何自动化的寻找和推荐最适合的博文成为迫切需要。
技术实现要素:
本发明的目的是提供一种基于图卷积神经网络的自动化博文推荐方法及系统,以实现对适合用户个体的博文推荐。
为实现上述目的,本发明提供了如下方案:
一种基于图卷积神经网络的博文推荐方法,包括:
获取微博社交网络;所述微博社交网络包括实体和实体间的关系,所述实体包括用户和博文;当两用户之间为第一关系属性时,则在所述微博社交网络中所述两用户之间存在一条边;当用户与博文之间为第二关系属性时,则在所述微博社交网络中所述用户与所述博文之间存在一条边;
将所述微博社交网络输入经训练的隐含关系预测模型,确定目标用户与博文的隐含关系;所述隐含关系预测模型包括一个编码器结构和一个解码器结构,所述编码器结构用于对所述微博社交网络中实体间的隐含关系进行预测,所述解码器结构用于判断解码器预测的所述隐含关系是否成立;所述编码器结构包括门控图注意力网络模型,所述门控图注意力网络模型包括一个图注意力层和一个门控层,所述图注意力层用于以不同重要性程度聚合微博社交网络中不同实体的信息,所述门控层用于对聚合后得到的信息进行选择和过滤;所述解码器结构包括一个最优评分函数,所述最优评分函数用于对所述隐含关系进行评分以判断所述隐含关系是否成立;
根据被判断为成立的隐含关系确定向所述目标用户推荐的博文。
可选的,所述第一关系属性包括关注和好友。
可选的,所述第二关系属性至少包括发表、收藏、转发、点赞、评论中的一种。
可选的,所述解码器结构为convkb模型。
可选的,在所述确定目标用户与博文的隐含关系之后,还包括:
更新所述微博社交网络:在所述微博社交网络中添加所述隐含关系。
本发明还提供了一种基于图卷积神经网络的博文推荐系统,包括:
微博社交网络获取模块,用于获取微博社交网络;所述微博社交网络包括实体和实体间的关系,所述实体包括用户和博文;当两用户之间为第一关系属性时,则在所述微博社交网络中所述两用户之间存在一条边;当用户与博文之间为第二关系属性时,则在所述微博社交网络中所述用户与所述博文之间存在一条边;
隐含关系预测模块,用于将所述微博社交网络输入经训练的隐含关系预测模型,确定目标用户与博文的隐含关系;所述隐含关系预测模型包括一个编码器结构和一个解码器结构,所述编码器结构用于对所述微博社交网络中实体间的隐含关系进行预测,所述解码器结构用于判断解码器预测的所述隐含关系是否成立;所述编码器结构包括门控图注意力网络模型,所述门控图注意力网络模型包括一个图注意力层和一个门控层,所述图注意力层用于以不同重要性程度聚合微博社交网络中不同实体的信息,所述门控层用于对聚合后得到的信息进行选择和过滤;所述解码器结构包括一个最优评分函数,所述最优评分函数用于对所述隐含关系进行评分以判断所述隐含关系是否成立;
推荐博文确定模块,用于根据被判断为成立的隐含关系确定向所述目标用户推荐的博文。
可选的,所述第一关系属性包括关注和好友。
可选的,所述第二关系属性至少包括发表、收藏、转发、点赞、评论中的一种。
可选的,所述解码器结构为convkb模型。
可选的,所述基于图卷积神经网络的博文推荐系统,还包括:
微博社交网络更新模块,用于更新所述微博社交网络:在所述微博社交网络中添加所述隐含关系。
根据本发明提供的具体实施例,本发明公开了以下技术效果:本发明提供的基于图卷积神经网络的自动化博文推荐方法及系统,采用包含关系门控图注意网络对微博社交网络中用户与博文之间的隐含关系进行预测,以实现微博社交网络中用户与博文之间关系的补充和完善,最后用于博文推荐。进而,实现了适合用户个体的博文自动化推荐。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例1提供的基于图卷积神经网络的博文推荐方法的流程示意图;
图2为本发明实施例1中微博社交网络的结构示意图;
图3为本发明实施例1中具体的推荐博文确定方法的流程图;
图4为本发明实施例1中以单层ggat层为例的隐含关系预测模型的结构图;
图5为本发明实施例2提供的基于图卷积神经网络的博文推荐系统的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明的目的是提供一种基于图卷积神经网络的自动化博文推荐方法及系统,以实现适合用户个体的博文自动化推荐。
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
实施例1
参见图1,本实施例提供了一种基于图卷积神经网络的博文推荐方法,该方法包括以下步骤:
步骤101:获取微博社交网络。
参见图2,所述微博社交网络包括实体和实体间的关系,所述实体包括用户和博文。当两用户之间为第一关系属性时,则在所述微博社交网络中所述两用户之间存在一条边,比如,如图2所示,人4关注了人3,则表示人4和人3之间存在关系,反应在微博社交网络中即人4与人3之间存在一条边。当用户与博文之间为第二关系属性时,则在所述微博社交网络中所述用户与所述博文之间存在一条边,比如,如图2所示,人3发表了paper4,则表示人3和paper4之间存在关系,反应在微博社交网络中即人3和paper4之间存在一条边。
上述第一关系属性可以包括关注、好友,第二关系属性示例性的至少包括发表、收藏、转发、点赞、访问、评论中的一种。
需要说明的是,该微博社交网络是包含目标用户的微博社交网络,可以是包含整个社交平台实体与关系的社交网络。
步骤102:将所述微博社交网络输入经训练的隐含关系预测模型,确定所述目标用户与博文的隐含关系。
所述隐含关系预测模型包括一个编码器结构和一个解码器结构,所述编码器结构用于对所述微博社交网络中实体间的隐含关系进行预测,所述解码器结构用于判断解码器预测的所述隐含关系是否成立;所述编码器结构包括门控图注意力网络模型,所述门控图注意力网络模型包括一个图注意力层和一个门控层,所述图注意力层用于以不同重要性程度聚合微博社交网络中不同实体的信息,所述门控层用于对聚合后得到的信息进行选择和过滤;所述解码器结构包括一个最优评分函数,所述最优评分函数用于对所述隐含关系进行评分以判断所述隐含关系是否成立。
关系门控图注意力网络(ggat)通过使用多注意力机制,以及同时对关系进行建模,可对预测的关系进行强弱判断,使得微博社交网络的语义挖掘更加充分有效,以使博文推荐更加精准有效。
步骤103:根据被判断为成立的隐含关系确定向所述目标用户推荐的博文。
在一个示例中,在步骤102得到用户与博文的隐含关系后,还可以更新所述微博社交网络,即在所述微博社交网络中添加所述隐含关系。下次调用该微博社交网络便可直接调用更新后的微博社交网络。
下面对本实施例中用户与博文之间的隐含关系进行预测的过程进行介绍:
(1)微博社交网络
微博社交网络如图2所示。网络(图)的数学定义为g=(ν,ε),其中ν={v1,v2,…,v|v|}表示节点(实体)的集合,
需要说明的是,图2中,节点表示某位用户(圆形表示)或者谋篇博文(椭圆形表示);矩形框表示某位用户或者谋篇博文的相关属性信息(如用户的毕业院校、户籍地、研究领域等,博文的发表领域、发表地点、发表渠道等);蓝色实线表示用户和博文之间已经存在的关系,包括用户和用户之间的关系(关注、好友等关系)、用户和博文之间的关系(发表、评论、点赞、收藏等关系);绿色虚线表示由隐含关系预测模型(即rggat模型)计算的应该存在的关系,则进行博文推荐;红色虚线表示由隐含关系预测模型(即rggat模型)计算的不该存在的关系,则不进行博文推荐。其中的关系存在多跳和单跳关系。比如对于绿色虚线1,由于节点“人4”关注了节点“人3”,而“人3”发表了一篇和“人4”领域相关的“cnn”的博文“paper4”,那么“人4”就很大可能对“paper4”感兴趣,则关系预测成立,那么我们应当把“paper4”推荐给“人4”,并且此关系是2跳关系;同理,绿色虚线2是3跳关系。
(2)隐含链接预测/隐含关系预测
隐含关系预测任务中使用三元组triple(h,r,t)表示微博社交网络数据,比如微博社交网络中的某些三元组:(人3,关注,人2)、(人2,发表,paper2)、(人4,评论,paper3)等等。triple表示一个实体(即微博社交网络中的节点,用户或者博文),h表示头实体,t表示尾实体,r表示两个实体之间连接的关系(即微博社交网络中的边,关注、点赞、评论等关系)。给定一个不完整的三元组triple(h,?,t),隐含关系预测任务就是预测头尾实体h,t之间的关系r(这里指预测用户与用户之间或者用户与博文之间的关系)。对于链接预测任务的模型,目标是使用微博社交网络中现有的关系来预测实体之间的缺失关系(即隐含的关系)。隐含关系预测任务首先用微博社交网络中的所有可能的关系r替换每个测试三元组的关系r,以获得待定样本;然后,对于每个待定样本,隐含关系预测模型将使用评分函数计算它的不可信评分值,以确定其是否有资格作为新的三元组添加到现有的微博社交网络中去。若有资格,则说明该关系预测成立,应当推荐该三元组中的博文给该三元组中的用户。
1)产生模型的输入(实体嵌入矩阵、关系嵌入矩阵)
将实体和关系的初始表示矩阵ν和ε(即采用随机、onehot或其他算法生成的、可唯一表示每一实体或关系的向量所构成的矩阵)输入到transe模型中进行预训练,以得到实体和关系的初始嵌入矩阵:
①实体初始嵌入矩阵:
②关系初始嵌入矩阵:
2)产生第一层ggat层的输出
由1)中产生的实体初始嵌入矩阵e和关系初始嵌入矩阵r输入到ggat层中。该过程可参考图3展示:
a、产生一跳领域节点表示
为了获得一个实体ei的新嵌入,模型学习了与实体ei相连接的所有三元组的表示。对于其中的一个三元组
其中,
然后对公式1依次执行以下操作:
公式2使用一个由一个权值向量
至此,我们可以得到一个实体ei通过注意力机制聚合一跳领域节点信息后新的节点表示(嵌入):
b、产生门控节点表示(即ggat层的输出)
由上面a中获得的新的实体嵌入e′和实体初始嵌入e一起输入到门中执行门控机制,由于这两个嵌入的维度不一致,我们用由权值矩阵
e″=ewe(7)
其中e″(其中的每一行是变换后的各个实体嵌入
其中
其中,
以上,实体和关系的初始嵌入输入ggat层,通过多注意力机制,可以得到实体新的最终的嵌入表示为
rout=rtr=rwr(12)
其中
3)产生第二层ggat层的输出
由b中产生的第一层的实体新的嵌入eout和关系新的嵌入rout输入到第二层ggat层中,同步骤2一样,执行多注意力机制a、b,得到第二层的ggat层输出嵌入:eout和rout。
4)产生第三层ggat层的输出
同3)。由3)中产生的第二层的实体新的嵌入eout和关系新的嵌入rout输入到第三层的ggat层中,同2)一样,执行多注意力机制(1)(2)得到第三层的ggat层输出嵌入:eout和rout。
编码器结构使用自定义的图卷积神经网络ggat层,通过多注意力机制,聚合中心节点一跳以及多跳领域节点的信息,并关注他们在不同关系下的重要性程度,以加大节点之间的差异性程度,使得微博社交网络底层语义挖掘更加合理有效。图4为单层ggat层。
5)产生隐含关系预测评分函数
由4)中产生的最终的实体嵌入
首先,在convkb模型中,嵌入三元组被看成一个3列矩阵a=[vh,vr,vt]∈rk×3,ai,:∈r1×3表示矩阵a的第i行;然后将这个3列矩阵送入一个卷积层,在该矩阵上操作多个滤波器ω∈r1×3以生成不同的特征图。ω的目的不仅是研究在相同维度下嵌入三元组之间的全局关系,而且还可以概括过渡特征。ω在矩阵a的每一行上重复操作,最终生成一个特征映射v=[v1,v2,...,vk]∈rk如下公式13所示:
vi=g(ω·ai,:+b)(13)
其中,b∈r是一个偏置项,g是一些激活函数,如relu。
然后将这些特征图通过串联操作连接成一个代表输入三元组的单一特征向量∈rτk×1,其中τ是滤波器的数量,k是维度数。该特征向量通过点积与权重向量w∈rτk×1相乘以返回分数。最后,这个分数被用来预测三元组是否有效。其具有多个特征映射的评分函数如公式14所示:
其中,ωm表示第mth个卷积滤波器,ω是一个超参数,表示使用的滤波器数量,*是一个卷积算子,w∈rωk×1表示用于计算三元组最终分数的线性变换矩阵。rggat模型使用soft-margin损失通过adam优化器进行训练,如公式15所示:
其中,
解码器结构使用convkb模型对预测的三元组进行不可信评分,并根据评分结果的高低进行关系预测,从而实现博文推荐。
6)博文推荐
通过训练,convkb模型将得到一个最优评分函数(即评分标准),然后给定一个测试三元组,比如(人4,?,paper4),?表示将要预测的关系,该评分函数计算该关系为发表、关注、评论等的不可信评分结果,评分越低则该三元组越有可能是有效的,则说明该三元组中的关系是预测正确的,那么三元组中的用户“人4”很可能对该三元组中的博文“paper4”感兴趣,我们应当将该博文“paper4”推荐给该用户“人4”。我们可取微博社交网络中的所有三元组的评分值的平均值作为阈值,用于判断不可信评分的高低。
本发明实施例提供的基于图卷积神经网络的博文推荐方法具有以下优势:
(1)提出了一个新的微博社交网络嵌入模型:关系门控图注意力网络,用于对微博社交网络中用户与博文之间的隐含关系进行预测,以实现微博社交网络的补充和完善,最后用于博文推荐。
(2)ggat层引入了多注意力机制。对于聚合一跳领域节点的信息,ggat层沿用了经典图注意力卷积神经网络的思想,在中心节点直接连接的邻居节点上执行注意力机制;对于聚合多跳领域节点的信息,ggat层通过使用门控机制对多跳领域节点的信息进行选择和过滤。
(3)ggat层加入了关系信息。ggat层可以同时处理节点信息和关系信息,因此这里提出的多注意力机制不仅可以作用在节点上,还可以作用在节点之间的关系上。扩展的ggat层使得以不同关系连接的实体能够具有不同的表示和不同的重要性程度,这样可以在模型训练过程中增加节点之间的差异性,使得链接预测任务更加真实准确。
实施例2
参见图5,本实施例提供了一种基于图卷积神经网络的博文推荐系统,该系统包括:
微博社交网络获取模块501,用于用于获取微博社交网络;所述微博社交网络包括实体和实体间的关系,所述实体包括用户和博文;当两用户之间为第一关系属性时,则在所述微博社交网络中所述两用户之间存在一条边;当用户与博文之间为第二关系属性时,则在所述微博社交网络中所述用户与所述博文之间存在一条边。
隐含关系预测模块502,用于将所述微博社交网络输入经训练的隐含关系预测模型,确定所述目标用户与博文的隐含关系;所述隐含关系预测模型包括一个编码器结构和一个解码器结构,所述编码器结构用于对所述微博社交网络中实体间的隐含关系进行预测,所述解码器结构用于判断解码器预测的所述隐含关系是否成立;所述编码器结构包括门控图注意力网络模型,所述门控图注意力网络模型包括一个图注意力层和一个门控层,所述图注意力层用于以不同重要性程度聚合微博社交网络中不同实体的信息,所述门控层用于对聚合后得到的信息进行选择和过滤;所述解码器结构包括一个最优评分函数,所述最优评分函数用于对所述隐含关系进行评分以判断所述隐含关系是否成立。
推荐博文确定模块503,用于根据被判断为成立的隐含关系确定向所述目标用户推荐的博文。
作为本实施例的一种实施方式,基于图卷积神经网络的博文推荐系统还包括:微博社交网络更新模块,用于更新所述微博社交网络:在所述微博社交网络中添加所述隐含关系。
作为本实施例的一种实施方式,第一关系属性包括关注、好友。
作为本实施例的一种实施方式,第二关系属性至少包括发表、收藏、转发、点赞、访问、评论中的一种。
作为本实施例的一种实施方式,所述预测评分模型为convkb模型。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的系统而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处。综上所述,本说明书内容不应理解为对本发明的限制。