Reference: 推荐算法不够精准?让知识图谱来解决node
个性化推荐系统做为一种信息过滤的重要手段,是当前解决信息超载问题的最有效的方法之一,是面向用户的互联网产品的核心技术。算法
按照预测对象的不一样,推荐系统通常能够分红两类:一类是评分预测(rating prediction),例如在电影类应用中,系统须要预测用户对电影的评分,并以此为根据推送其可能喜欢的电影。这种场景下的用户反馈信息表达了用户的喜爱程度,所以这种信息也叫显式反馈(explicit feedback);另外一类是点击率预测(click-through rateprediction),例如在新闻类应用中,系统须要预测用户点击某新闻的几率来优化推荐方案。这种场景下的用户反馈信息只能表达用户的行为特征(点击/未点击),而不能反映用户的喜好程度,所以这种信息也叫隐式反馈(implicit feedback)。网络
传统的推荐系统只使用用户和物品的历史交互信息(显式或隐式反馈)做为输入,这会带来两个问题:一,在实际场景中,用户和物品的交互信息每每是很是稀疏(sparse)的。例如,一个电影类APP可能包含了上万部电影,然而一个用户打过度的电影可能平均只有几十部。使用如此少许的已观测数据来预测大量的未知信息,会极大地增长算法的过拟合(overfitting)风险;二,对于新加入的用户或者物品,因为系统没有其历史交互信息,所以没法进行准确地建模和推荐,这种状况也叫作冷启动问题(cold start problem)。app
解决稀疏性和冷启动问题的一个常见思路是在推荐算法中额外引入一些辅助信息(side information)做为输入。辅助信息能够丰富对用户和物品的描述、加强推荐算法的挖掘能力,从而有效地弥补交互信息的稀疏或缺失。常见的辅助信息包括:机器学习
社交网络(social networks):一个用户对某个物品感兴趣,他的朋友可能也会对该物品感兴趣;ide
用户/物品属性(attributes):拥有同种属性的用户可能会对同一类物品感兴趣;函数
图像/视频/音频/文本等多媒体信息(multimedia):例如商品图片、电影预告片、音乐、新闻标题等;学习
上下文(context):用户-物品交互的时间、地点、当前会话信息等。优化
……spa
如何根据具体推荐场景的特色将各类辅助信息有效地融入推荐算法一直是推荐系统研究领域的热点和难点,如何从各类辅助信息中提取有效的特征也是推荐系统工程领域的核心问题。
在各类辅助信息中,知识图谱做为一种新兴类型的辅助信息近几年逐渐引发了研究人员的关注。知识图谱(knowledge graph)是一种语义网络,其结点(node)表明实体(entity)或者概念(concept),边(edge)表明实体/概念之间的各类语义关系(relation)。一个知识图谱由若干个三元组(h、r、t)组成,其中h和t表明一条关系的头结点和尾节点,r表明关系。
上图展现的三元组表达了“陈凯歌导演了霸王别姬”这样一条事实,其中h=陈凯歌、t=霸王别姬、r=导演。
知识图谱包含了实体之间丰富的语义关联,为推荐系统提供了潜在的辅助信息来源。知识图谱在诸多推荐场景中都有应用的潜力,例如电影、新闻、景点、餐馆、购物等。和其它种类的辅助信息相比,知识图谱的引入可让推荐结果更加具备如下特征:
精确性(precision)。知识图谱为物品引入了更多的语义关系,能够深层次地发现用户兴趣;
多样性(diversity)。知识图谱提供了不一样的关系链接种类,有利于推荐结果的发散,避免推荐结果局限于单一类型;
可解释性(explainability)。知识图谱能够链接用户的历史记录和推荐结果,从而提升用户对推荐结果的满意度和接受度,加强用户对推荐系统的信任。
这里值得一提的是知识图谱和物品属性的区别。物品属性能够当作是在知识图谱中和某物品直接相连的一跳(1-hop)的节点,即一个弱化版本的知识图谱。事实上,一个完整的知识图谱能够提供物品之间更深层次和更长范围内的关联,例如,“《霸王别姬》-张国荣-香港-梁朝伟-《无间道》”。正由于知识图谱的维度更高,语义关系更丰富,它的处理也所以比物品属性要更加复杂和困难。
通常来讲,现有的能够将知识图谱引入推荐系统的工做分为两类:
以LibFM[1]为表明的通用的基于特征的推荐方法(generic feature-based methods)。这类方法统一地把用户和物品的属性做为推荐算法的输入。例如,LibFM将某个用户和某个物品的全部属性记为x,而后令该用户和物品之间的交互强度y(x)依赖于属性中全部的一次项和二次项:
基于该类方法的通用性,咱们能够将知识图谱弱化为物品属性,而后应用该类方法便可。固然,这种作法的缺点也显而易见:它并不是专门针对知识图谱设计,所以没法高效地利用知识图谱的所有信息。例如,该类方法难以利用多跳的知识,也难以引入关系(relation)的信息。
知识图谱特征学习(Knowledge Graph Embedding)为知识图谱中的每一个实体和关系学习获得一个低维向量,同时保持图中原有的结构或语义信息。事实上,知识图谱特征学习是网络特征学习(network embedding)的一个子领域,由于知识图谱包含特有的语义信息,因此知识图谱特征学习比通用的网络特征学习须要更细心和针对性的模型设计。通常而言,知识图谱特征学习的模型分类两类:
基于距离的翻译模型(distance-based translational models)。这类模型使用基于距离的评分函数评估三元组的几率,将尾节点视为头结点和关系翻译获得的结果。这类方法的表明有TransE、TransH、TransR等;
基于语义的匹配模型(semantic-based matching models)。这类模型使用基于类似度的评分函数评估三元组的几率,将实体和关系映射到隐语义空间中进行类似度度量。这类方法的表明有SME、NTN、MLP、NAM等。
因为知识图谱特征学习为每一个实体和特征学习获得了一个低维向量,并且在向量中保持了原图的结构和语义信息,因此一组好的实体向量能够充分且彻底地表示实体之间的相互关系,由于绝大部分机器学习算法均可以很方便地处理低维向量输入。所以,利用知识图谱特征学习,咱们能够很方便地将知识图谱引入各类推荐系统算法中。归纳地说,知识图谱特征学习能够:
下降知识图谱的高维性和异构性;
加强知识图谱应用的灵活性;
减轻特征工程的工做量;
减小因为引入知识图谱带来的额外计算负担。
在本篇中,咱们分别介绍了推荐系统、知识图谱、以及知识图谱在推荐系统中的应用价值。做为推荐算法的辅助信息,知识图谱的引入能够极大地提升推荐系统的精准性、多样性和可解释性。在下周的文章中,咱们将详述将知识图谱引入推荐系统的各类思路与实现,敬请期待!
参考文献
[1] Factorization machines with libfm
[2] Personalized entity recommendation: A heterogeneous information network approach
[3] Meta-graph based recommendation fusion over heterogeneous information networks
[4] Knowledge graph embedding: A survey of approaches and applications