推荐算法不够精准?让知识图谱来解决

标签: geek | 发表时间:2018-06-05 00:00 | 作者:
出处:http://itindex.net/relian

编者按:我们几乎每天都会接收到各种各样的推荐信息,从新闻、购物到吃饭、娱乐。个性化推荐系统作为一种信息过滤的重要手段,可以依据我们的习惯和爱好推荐合适的服务。但传统的推荐系统容易出现稀疏性和冷启动的问题,而知识图谱作为一种新兴类型的辅助信息,近几年逐渐引起了研究人员的关注,本文将向大家介绍知识图谱的相关知识以及知识图谱在推荐系统中可能的应用价值。一起来学习一下吧!

源:微软研究院AI头条 

小王是一名程序员。早上八点,他被闹铃叫醒,拿起手机开始浏览手机上的新闻APP推荐的最新消息:



随后,小王想起昨晚放在购物车里的鞋还没有下单。于是,他打开了某购物APP,查看了一下自己的购物车:



但是他觉得下面推荐的板鞋似乎更适合自己,于是他买了一双。


吃完早饭,小王坐地铁去上班。地铁上无聊的小王打开了某音乐APP,系统已经为他选好了推荐的歌曲:


 

到了公司后,小王开始继续写没有完成的代码,但是始终无法把参数调到满意的水平。有些烦躁的小王想歇一歇,于是打开了某资讯APP,看了几个为他推荐的话题:



就在他认真阅读的时候,经理注意到了他不在干活,很生气,于是严肃地批评了小王。小王感到很委屈,这时手机里的某求职类APP给他发来了推送:



小王觉得这几个职位都挺适合自己的,于是心里有了跳槽的打算。到了午饭时间,小王打开了某外卖APP,查看了一下系统推荐的附近餐厅:



小王一边吃着刚刚送来的外卖,一边浏览着某娱乐类APP,查看适合晚上和女朋友一起观看的演出推荐:



晚上看完演出,小王和女朋友都非常满意,觉得这个APP的系统推荐很棒。


推荐系统


跟小王一样,我们几乎每个人每天都会使用多个APP中的推荐功能,这些功能的背后都是 个性化推荐系统(personalized recommender systems)。随着互联网技术和产业的迅速发展,接入互联网的服务器数量和网页数量也呈指数级上升。用户面临着海量的信息,传统的搜索算法只能呈现给用户(user)相同的物品(item)排序结果,无法针对不同用户的兴趣爱好提供相应的服务。信息爆炸使得信息的利用率反而降低,这种现象被称为 信息超载(information overload)。


推荐问题从本质上说就是代替用户评估其从未看过、接触过和使用过的物品,包括书籍、电影、新闻、音乐、餐馆、旅游景点等。 推荐系统作为一种信息过滤的重要手段,是当前解决信息超载问题的最有效的方法之一,是面向用户的互联网产品的核心技术。


推荐系统的任务和难点


按照预测对象的不同,推荐系统一般可以分成两类:一类是 评分预测(rating prediction),例如在电影类应用中,系统需要预测用户对电影的评分,并以此为根据推送其可能喜欢的电影。这种场景下的用户反馈信息表达了用户的喜好程度,因此这种信息也叫 显式反馈(explicit feedback);另一类是 点击率预测(click-through rateprediction),例如在新闻类应用中,系统需要预测用户点击某新闻的概率来优化推荐方案。这种场景下的用户反馈信息只能表达用户的行为特征(点击/未点击),而不能反映用户的喜爱程度,因此这种信息也叫 隐式反馈(implicit feedback)。


 

传统的推荐系统只使用用户和物品的历史交互信息(显式或隐式反馈)作为输入,这会带来两个问题:一,在实际场景中, 用户和物品的交互信息往往是非常稀疏(sparse)的。例如,一个电影类APP可能包含了上万部电影,然而一个用户打过分的电影可能平均只有几十部。使用如此少量的已观测数据来预测大量的未知信息,会极大地增加算法的 过拟合(overfitting)风险;二, 对于新加入的用户或者物品,由于系统没有其历史交互信息,因此无法进行准确地建模和推荐,这种情况也叫做 冷启动问题(cold start problem)。


解决稀疏性和冷启动问题的一个常见思路是在推荐算法中 额外引入一些辅助信息(side information)作为输入。辅助信息可以丰富对用户和物品的描述、增强推荐算法的挖掘能力,从而有效地弥补交互信息的稀疏或缺失。常见的辅助信息包括:


  • 社交网络(social networks):一个用户对某个物品感兴趣,他的朋友可能也会对该物品感兴趣;


  • 用户/ 物品属性(attributes):拥有同种属性的用户可能会对同一类物品感兴趣;


  • 图像/ 视频/ 音频/ 文本等多媒体信息(multimedia):例如商品图片、电影预告片、音乐、新闻标题等;


  • 上下文(context):用户-物品交互的时间、地点、当前会话信息等。

  • ……


 

如何根据具体推荐场景的特点将各种辅助信息有效地融入推荐算法一直是 推荐系统研究领域的热点和难点,如何从各种辅助信息中提取有效的特征也是 推荐系统工程领域的核心问题。


知识图谱



在各种辅助信息中,知识图谱作为一种新兴类型的辅助信息近几年逐渐引起了研究人员的关注。 知识图谱(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)的信息。


  • 以PER [2]、MetaGraph[3]为代表的 基于路径的推荐方法(path-based methods)。该类方法将知识图谱视为一个 异构信息网络(heterogeneous information network),然后构造物品之间的基于meta-path或meta-graph的特征。简单地说,meta-path是连接两个实体的一条特定的路径,比如“演员->电影->导演->电影->演员”这条meta-path可以连接两个演员,因此可以视为一种挖掘演员之间的潜在关系的方式。这类方法的优点是 充分且直观地利用了知识图谱的网络结构,缺点 是需要手动设计 meta-path 或meta-graph,这在实践中难以到达最优;同时,该类方法 无法在实体不属于同一个领域的场景(例如新闻推荐)中应用,因为我们无法为这样的场景预定义meta-path或meta-graph。



知识图谱特征学习


知识图谱特征学习(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


作者简介


王鸿伟,本科毕业于上海交通大学计算机科学与技术专业ACM试点班,目前为上海交通大学在读四年级博士,在微软亚洲研究院社会计算组实习。研究兴趣为网络特征学习、推荐系统、文本和社交数据挖掘,并在WWW、AAAI、WSDM、CIKM、TPDS上发表了十余篇论文。

 


张富峥,微软亚洲研究院研究员,从事人工智能和数据挖掘方面的研究。研究兴趣包括推荐系统、用户画像、自然语言处理等领域,在这些领域的顶级会议和期刊上发表了近30余篇论文,如KDD、WWW、Ubicomp、TIST等,曾获ICDM 2013最佳论文大奖。


谢幸,微软亚洲研究院资深研究员,中国科技大学兼职博士生导师。他的团队在数据挖掘、社会计算和普适计算等领域展开创新性的研究。他在国际会议和学术期刊上发表了200余篇学术论文,共被引用18000余次,多次在KDD、ICDM等顶级会议上获最佳论文奖。他是ACM、IEEE高级会员和计算机学会杰出会员,曾担任ACM UbiComp 2011、PCC 2012、IEEE UIC 2015、以及SMP 2017等大会程序委员会共同主席。


加入Python学习微信交流群

请添加微信:AI_doer

备注:姓名-单位-研究方向

搞算法的我们,不知道这些算法怎么行

一招搞定Windows与Linux间Python交互编程

语义分析的方法简述之文本基本处理

语义分析的方法简述二

今日头条算法原理(全)

高盛:79页区块链报告-《从理论到实践》(附下载)


欢迎转发到朋友圈或分享给好友

相关 [推荐算法 知识] 推荐:

推荐算法不够精准?让知识图谱来解决

- - IT瘾-geek
编者按:我们几乎每天都会接收到各种各样的推荐信息,从新闻、购物到吃饭、娱乐. 个性化推荐系统作为一种信息过滤的重要手段,可以依据我们的习惯和爱好推荐合适的服务. 但传统的推荐系统容易出现稀疏性和冷启动的问题,而知识图谱作为一种新兴类型的辅助信息,近几年逐渐引起了研究人员的关注,本文将向大家介绍知识图谱的相关知识以及知识图谱在推荐系统中可能的应用价值.

社会化推荐算法

- - CSDN博客云计算推荐文章
本文是论文《一种结合推荐对象间关联关系的社会化推荐算法》(以下简称论文)的笔记(下). 该论文提出的算法是以PMF为框架基础的. 因而若对PMF不太了解的话,可以参考我的 上一篇文章脑补一下,当然,那篇文章只是概述,详细了解PMF还需要阅读初始论文,但读完那篇文章后,对本文的理解应该没有问题. 所谓社会化推荐算法,是将社交网络的特性加入到推荐系统中来.

常用推荐算法

- - 互联网 - ITeye博客
       在推荐系统简介中,我们给出了推荐系统的一般框架. 很明显,推荐方法是整个推荐系统中最核心、最关键的部分,很大程度上决定了推荐系统性能的优劣. 目前,主要的推荐方法包括:基于内容推荐、协同过滤推荐、基于关联规则推荐、基于效用推荐、基于知识推荐和组合推荐. 基 于内容的推荐(Content-based Recommendation)是信息过滤技术的延续与发展,它是建立在项目的内容信息上作出推荐的,而不需要依据用户对项目的评价意见,更多地需要用机 器学习的方法从关于内容的特征描述的事例中得到用户的兴趣资料.

Mahout: SVDRecommender SVD推荐算法

- -

[转]Mahout推荐算法基础

- - 小鸥的博客
Mahout推荐算法分为以下几大类. 2.相近的用户定义与数量. 2.用户数较少时计算速度快. 1.基于item的相似度. 1.item较少时就算速度更快. 2.当item的外部概念易于理解和获得是非常有用. 1基于SlopeOne算法(打分差异规则). 当item数目十分少了也很有效. 需要限制diffs的存储数目否则内存增长太快.

推荐算法Slope One初探

- - 标点符
Slope One 算法是由 Daniel Lemire 教授在 2005 年提出的一个 Item-Based 推荐算法.  Slope One 算法试图同时满足这样的的 5 个目标: . 易于实现和维护:普通工程师可以轻松解释所有的聚合数据,并且算法易于实现和测试. 运行时可更新的:新增一个评分项,应该对预测结果即时产生影响.

美团推荐算法实践

- - 美团技术团队
推荐系统并不是新鲜的事物,在很久之前就存在,但是推荐系统真正进入人们的视野,并且作为一个重要的模块存在于各个互联网公司,还是近几年的事情. 随着互联网的深入发展,越来越多的信息在互联网上传播,产生了严重的信息过载. 如果不采用一定的手段,用户很难从如此多的信息流中找到对自己有价值的信息. 解决信息过载有几种手段:一种是搜索,当用户有了明确的信息需求意图后,将意图转换为几个简短的词或者短语的组合(即query),然后将这些词或短语组合提交到相应的搜索引擎,再由搜索引擎在海量的信息库中检索出与query相关的信息返回给用户;另外一种是推荐,很多时候用户的意图并不是很明确,或者很难用清晰的语义表达,有时甚至连用户自己都不清楚自己的需求,这种情况下搜索就显得捉襟见肘了.

Mahout推荐算法API详解

- - zzm
Mahout推荐算法API详解. Hadoop家族系列文章, 主要介绍Hadoop家族产品,常用的项目包括Hadoop, Hive, Pig, HBase, Sqoop, Mahout, Zookeeper, Avro, Ambari, Chukwa,新增加的项目包括,YARN, Hcatalog, Oozie, Cassandra, Hama, Whirr, Flume, Bigtop, Crunch, Hue等.

推荐算法之矩阵分解

- - 标点符
推荐领域的人一般都会听说过十年前 Netflix Prize 的比赛,随着Netflix Prize推荐比赛的成功举办,近年来隐语义模型(Latent Factor MOdel,LFM)受到越来越多的关注. 隐语义模型最早在文本挖掘领域被提出,用于寻找文本的隐含语义,相关的模型常见的有潜在语义分析(Latent Semantic Analysis,LSA)、LDA(Latent Dirichlet Allocation)的主题模型(Topic Model)、矩阵分解(Matrix Factorization)等等.

互联网无处不在的“推荐算法”

- Tiger - 所有文章 - UCD大社区
数据显示,三分之一的用户会根据电子商务网站的推荐买东西,这是任何广告都不可能做到的成绩. 媒体上播放的大众化广告对消费者的影响已经越来越低,于是有人做出预见——个性化推荐技术将成为广告的终极形式.     很多年前,看过一部电影叫作《谁知女人心》,好莱坞大牌梅尔·吉布森饰演的男主角是一个典型的大男子主义者.