本技术涉及一种基于知识图谱和注意力机制的推荐方法,属于个性化推荐领域。该方法包括:定义知识图谱感知推荐问题,建立用户与项目交互矩阵以及作为输入的知识图谱;在知识图谱传播层中设置用户和项目的种子集,并将种子集沿相邻实体进行传播,捕获用户和项目的基于知识的高阶交互信息;在知识感知注意力嵌入层通过注意力机制为每一个关系学习对应的潜在关系表示,得到潜在关联的实体集合;通过聚合器对实体集合进行处理得到对应的聚合向量,并根据聚合向量预测用户对项目的偏好评分;设计损失函数对上述过程进行训练,训练完成后用于用户偏好推荐。本发明能够更准确地捕捉用户和物品之间的潜在关系,为用户提供更加精准、个性化的推荐服务。
背景技术
随着互联网技术的不断进步,人们可以轻松访问大量在线内容,涵盖音乐、电影、商品等多种领域。但互联网上的信息量也在不断增长,信息过载的现象变得越来越普遍,导致用户难以快速准确地找到符合他们个人兴趣的项目。为了解决这一难题,推荐系统应运而生,旨在缓解信息过载并满足用户的个性化需求。
传统的推荐技术是协同过滤,通过分析用户或物品之间的相似性,为用户提供个性化的推荐。但是在面临冷启动问题、数据稀疏性问题时推荐性能有限。为了克服协同过滤的冷启动问题和数据稀疏性问题,研究人员采取了添加辅助信息的方法,通过引入额外的信息或特征来改善推荐性能。其中,知识图谱因其能够提供更丰富的物品信息以及物品之间的关联信息而受到越来越多的关注。
知识图谱作为辅助信息的一种,包含着丰富的语义特征,有助于进一步获取实体间的高阶邻域信息,丰富实体表示,从而解决数据稀疏问题来提升推荐准确性。知识图谱中的拓扑结构信息与推荐算法中用户与物品交互矩阵中的信息有着密切的关联,二者的结合带来更深层次的数据关联,弥补了原本数据的稀疏性,通过知识图谱的拓扑结构和有效的推荐算法可以挖掘用户和物品的潜在特征。
通过结合知识图谱,推荐系统可以更准确地模拟用户偏好,缓解数据稀疏性。与不加入知识图谱的推荐方法相比,将知识图谱引入推荐有以下几个方面的好处:(1)知识图谱包含丰富的语义关系,将属性之间连接起来,可以提高推荐系统的精度,可以更加准确发现属性之间的相似度。(2)知识图谱本身含有丰富的结构信息,通过不同的类别来做扩展,可以提高推荐系统的多样性。(3)知识图谱中丰富的结构信息,其中用户的历史交互矩阵中关联着候选的待推荐物品,所以增强了推荐的可解释性。(4)知识图谱中有新用户或者新物品加入时,可能与之前的用户或者物品通过一定的属性发生关联,有助于缓解推荐的冷启动问题。
尽管有上述优点,但由于知识图谱的高维性和异质性,在推荐系统中结合知识图谱仍然是具有挑战性的。将知识图谱用于推荐系统的核心工作是如何用知识图谱中的异构信息来丰富用户和项目的潜在向量表示。针对此核心工作构建模型,基于知识图谱的推荐系统大致可分为以下三类:基于嵌入的方法、基于路径的方法以及基于传播的方法。
(1)基于嵌入的方法通过知识图谱嵌入(Knowledge Graph Embedding,KGE)对知识图谱进行预处理,将图中包含的实体与关系嵌入到低维空间中,映射为表示向量。例如,协同知识库嵌入(Collaborative Knowledge Base Embedding,CKE)通过TransR在KG的参与下学习项目嵌入。深度知识感知网络(deep knowledge-aware network,DKN)将实体嵌入和词嵌入看作不同的通道,通过Trans D利用KG生成新闻嵌入进行推荐。然而,KGE方法更适用于知识图谱补全、知识图谱预测等图内应用而非推荐,因此学习到的实体嵌入不足以用于项目推荐,且由于缺乏显示建模能力,基于嵌入的知识图谱推荐不能保证可以捕捉长距离节点的依赖性,并且难以解释实体之间的高阶语义关系以进行推荐
(2)基于路径的算法通过提取知识图谱中富含高阶节点信息的实体路径,为实体推荐提供一些偏好信息。例如,个性化实体推荐(Personalized Entity Recommendation,PERKG视为一个异构信息网络,并沿着不同类型的关系路径/图提取基于元路径/图元的潜在特征来表示用户和项目之间的连通性。基于路径的算法充分地利用了知识图谱中的网络结构。然而,基于路径的算法严重受限制于人工设计的元路径,在复杂的知识图谱中是一件具有挑战的工作并且很难设计出最优的路径。
(3)基于传播的方法即在整个知识图谱上迭代的传播信息,结合图神经网络的聚合机制获取高阶领域的信息,可以有效缓解基于嵌入和基于路径方法的缺陷,但是仍存在着一些待提升的空间,比如对知识图谱中的信息挖掘不够深入,不能充分利用知识图谱中的实体信息和关系信息,以及无法同时获取高阶用户特征和高阶物品特征,丰富用户表示的同时也丰富物品表示,现有算法仅仅只对一端的信息进行充分的挖掘,即只考虑了用户端或物品端与知识图谱中实体的关联,缺乏对知识图谱信息充分的利用。同时在聚合邻域信息时现有的工作忽略了关系向量的重要性,没有提取出隐藏在实体集深处的潜在关系。因此,对于探索用户端特征和物品端特征与知识图谱中实体的语义关联以及用户-物品历史交互记录中的隐藏性信息的挖掘是一个挑战。
RippleNet为涟漪网络,作者在知识图谱中以用户和项目的历史交互矩阵作为种子节点在知识图谱中扩散传播用户的兴趣,就像水面上的涟漪一样扩散,取得了非常好的效果,但RippleNet仅对用户特征进行了高阶建模,丰富了用户特征表示,但没有考虑对项目特征进行高阶建模。同时在扩散用户兴趣时也忽略了实体集之间的潜在关系。
知识图谱卷积网络(Knowledge Graph Convolutional Networks,KGCN)采用图卷积网络(Graph convolutional network,GCN)利用图神经网络的核心思想,聚合领域信息来丰富物品特征表示,在聚合领域信息的捕捉用户对不同关系的偏好,这表明邻居的信息能够极大地提升推荐任务。需要注意的是,两种方法中考虑了用户对于关系权重的影响,但忽略了实体之间的潜在关系,项目嵌入不充分。同时仅考虑了项目端与知识图谱中实体的关联,忽略了用户端与知识图谱中实体的关联,缺乏对知识图谱信息充分的利用。
知识图谱注意力网络(Knowledge Graph Attention Network,KGAT)提出了协同知识图谱(CKG),将用户-项目二部图(UIG)和知识图谱(KG)结合在一起,并通过GCN递归地在CKG上进行传播以补充实体嵌入。KGAT的一个不足之处是将用户视为与CKG中的实体相同的节点,这使得处理新用户变得困难。一旦有新的交互用户出现,KGAT需要重新构建CKG并重新训练整个模型为他推荐,其计算成本是工业界无法接受的。此外,KGAT假设UIG中的交互项和KG中的关联实体应被视为同质节点,但实际上它们处于不同的隐空间中。此外,由于用户交互的项目类型通常非常广泛,UIG中的高阶交互可能与原始项目的潜在语义表示具有完全不同的含义,这会在嵌入中引入噪声。
协同知识感知注意力网络(Collaborative Knowledge-aware AttentiveNetwork,CKAN)将协同过滤与知识图谱结合提出了协同信号,对用户项目信息进行显式编码在知识图谱中传播,并设计了一种知识感知注意力机制来获取不同邻居的重要程度。CKAN同时对用户特征与物品特征进行高阶建模,丰富了用户与项目的特征表示,但是没有注意到实体之间的潜在关系对于建模用户与项目特征的影响。
基于知识图谱的意图网络(Knowledge Graph-based Intent Network,KGIN)可以识别用户的潜在意图,可以在细粒度级别上识别用户与项目的关系,以达到更好的推荐效果,但忽略了潜在关系对推荐的影响,导致学习到的用户意图具有噪音。
现有的研究工作大都仅对一端的信息在知识图谱中进行挖掘,只考虑了用户端或项目端与知识图谱中实体的关联,缺乏对知识图谱信息充分的利用,同时忽略了潜在关系对于个性化推荐的重要性。
实现思路