基于知识图谱的智能推荐

举报
Cheri Chen 发表于 2020/09/18 13:06:54 2020/09/18
【摘要】 推荐系统通过分析用户行为、兴趣、需求等信息,在海量的数据中挖掘用户感兴趣的信息,为用户作出个性化的推荐。知识图谱作为混合推荐系统中一类有效的辅助信息,有效地解决推荐系统中存在的一系列关键问题, 例如数据稀疏、冷启动、推荐多样性等。本文主要介绍了将知识图谱的特征学习应用到推荐系统的三种方法,分别以三种深度学习框架为例,对方法进行了概述。

一、背景介绍

       推荐系统是为用户推荐个性化的在线商品或信息,广泛应用于众多Web 场景之中,来处海量信息数据所导致的信息过载问题, 以此提升用户体验。

      个性化推算法主要有3类:基于内容的推荐算法、基于协同过滤的推荐算法和混合推荐算法。其中,协同过滤方法通过利用用户历史的行为偏好数据构建模。尽管协同过滤方法通常是有效且普适的,但存在两个问题:用户和物品之间的行为关系数据的稀疏问题和对新用户或者新物品进行推荐时存在的冷启动问题。因此,研究者尝试将协同过滤推荐算法和其他辅助信息相结合(例如用户与物品的属性特征、用户社交网络信息等)搭建混合推荐系统来解决以上问题,从而提升推荐效果。

      知识图谱作为混合推荐系统中一类有效的辅助信息,近年来受到了大量研究者的关注。知识图谱是一种知识库,其概念最早由Google公司提出,目的在于提升搜索引擎的搜索质量。知识图谱的本质是一个存储知识与实体之间关系的结构化网络,其包含节点--"实体"与有向边--"关系",因而蕴含了推荐系统中对于物品的大量背景信息,以及物品之间的关系。并且它可以与用户行为数据构成的用户--物品网络集成起来,从而扩展了用户与商品之间存在的隐藏的关联关系,补充了用户与物品交互数据,因此可以更进一步地提升推荐效果。

      表1汇总了部分常见的知识图谱, 其中包括诸如YAGO KGDBpedia KGFreebase KGOwnThink KG等通用知识图谱,也有如WordNetUMLSDouban's movie KGMusicBrainz等特定领域的知识图谱。这类特定领域下的知识图谱往往拥有比通用化知识图谱更完整的领域内实体和关系。

表1-常见的大规模知识图谱


二、何将知识图谱的特征学习应用到推荐系统?

            三种方法:依次训练、联合训练、交替训练(如下图1)


图1 知识图谱应用于推荐系统的三种方法


  • 依次训练指的是知识图谱首先通过embedding得到实体与关系向量,然后引入推荐系统学习用户向量与物品向量,进行模型训练。知识图谱的embedding与推荐系统的训练是依次进行的。依次训练的代表方法为Deep Knowledge-aware Network (DKN)

  • 联合训练指的是同时进行知识图谱的embedding与模型的训练。这里介绍的联合训练的方法为RippleNet

  • 交替训练任务中,对知识图谱的特征学习任务和模型的点击率预测任务交替进行训练。这方面的工作有MKR



三、依次学习:Deep knowledge-aware network (DKN)


    • DKN是一个基于内容的深度推荐框架,用于点击率预测。

    • DKN的关键部分是一个多通道和单词-实体对齐的知识感知卷积神经网络(KCNN),它融合了新闻的语义层面和知识层面的表示。KCNN将单词和实体视为多个通道,并在卷积过程中显式地保持它们之间的对齐关系。

    • 此外,为了解决用户不同兴趣的问题,作者还在DKN中设计了一个注意力模块,以便动态地聚合当前候选对象的用户历史记录。(详细模型见图2)

图2 DKN模型框架

     新闻推荐例子:对于输入新闻,作者通过将新闻内容中的每一个词与知识图中的相关实体相关联来丰富其信息,还搜索并使用每个实体的上下文实体集(即知识图中的近邻)来提供更多的互补和可区分的信息。 DKN中的一个关键部分,即知识感知卷积神经网络(KCNN),将新闻的词级表示和知识级表示融合起来,生成一个知识感知嵌入向量。


图3 新闻推荐例子



四、联合学习:RippleNet

        依次训练中,我们需要首先学习到entity的向量和relation的向量,但是学习到的向量,其目的是为了还原知识图谱中的三元组关系。这种方法通常更适合于图形内应用,例如链接预测,而不是推荐。联合学习将知识图谱和推荐系统进行联合训练,主要代表的网络结构:RippleNet。

       Ripple是波纹的意思,RippleNet就是模拟用户兴趣在知识图谱上的一个传播过程。用户的兴趣以其历史记录为中心,在知识图谱上逐层向外扩散,而在扩散过程中不断的衰减,类似于水中的波纹,因此称为RippleNet。


图4 RippleNet 模拟用户兴趣在知识图谱上的传播过程


图5 RippleNet 网络结构


      最终的预测值是通过item embedding和user embedding得到的,item embedding通过embedding 层可以直接得到,user embedding通过用户u的k-hop ripple set获取,即为以k-1 Relevant Entity 为head的相关三元组。特别地,用户u的0-hop相关实体即用户的历史记录。


五、交替训练MKR

     MKR是一个利用知识图嵌入任务来辅助推荐任务的深度端到端框架。这两个任务通过交叉压缩单元相关联,该单元自动共享潜在特征,并学习知识图中推荐系统和实体之间的高阶交互。MKR由三个主要组件组成:推荐模块、KGE模块和交叉压缩单元。(见图6)

(1)推荐模块以用户和物品为输入,使用多层感知器(MLP)交叉压缩单元分别为用户和物品提取短而密集的特征。然后将提取的特征一起输入另一个MLP,输出预测概率。

(2)KGE模块也使用多层提取知识三元组的头和关系特征,并在评分函数 f 和实尾部的监督下输出预测尾部的表示。

(3)推荐模块与KGE模块之间由专门设计的交叉压缩单元连接。所提出的单元可以自动学习推荐系统中项目与KG中实体之间的高阶特征交互。


图6 MKR框架

交叉特征共享单元是一个可以让两个任务交换信息的模块。由于物品向量实体向量实际上是对同一个对象的两种描述,他们之间的信息交叉共享可以让两者都获得来自对方的额外信息,从而弥补了自身的信息稀疏性的不足。


【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。