NLP+基于内容的推荐

2020 年 12 月 30 日 AINLP


哈喽,大家好,今天的内容我们主要是介绍基于内容的推荐,然后将NLP技术融合到基于内容的推荐中:基于内容的语义感知推荐系统。NLP技术的发展也对推荐起到了很大的帮助,一起来看看它们之间是如何互相作用的吧~




基于内容的推荐系统

如果让一个没有系统学习过推荐系统的人,让他快速设计一个推荐系统,那么最终得到的估计八成就是内容推荐(虽然可能他不知道内容推荐是啥意思~)。


让我来介绍一下吧,我们在用户和电影的这个背景下,一个用户看了一部电影,那么电影有哪些内容(属性)呢?演员,导演,电影类型,上映时间等等,这些都是一个电影的内容。如果小明今天对某部电影给了好评,我们就可以认为这部电影的这些属性是小明喜欢的。


像电影的此类结构化属性是一方面,另外一方面是无结构信息(如文本),需要进行一些处理来结构化属性。比如电影有一段介绍,我们随便去网上扒一个:



图片来自豆瓣




通过上面的描述,我们可以知道“小丑”这电影中,亚瑟,小丑,精神疾病,哥谭市,现实,梦想,杀害,疯狂等等这些词语可能更能描述这部电影的属性,但是像普通人,公寓,生活,地铁这些词的描述就显得不那么重要了。但是系统如何选择这些属性呢?




这里推荐入门的 tf-idf 方法,简单的思路就是给每个词一个权重,权重的值和这个词在这个文档中出现的次数成正比,与这个词在所有文档中出现的次数成反比。

举个栗子,假如小丑这个词在这里出现了五次,在其它所有文档中没有出现过;而普通人这个词在这里出现一次,在其它所有文档里面都出现过,那么小丑的重要性就远高于普通人,因此小丑这个词就可以作为一个属性。




那么如何判断用户的兴趣呢?最常见的方法就是基于概率的方法,比如朴素贝叶斯。我们只需要统计用户喜欢的电影里面,每个属性出现的先验概率,然后就可以对一部新电影进行后验概率的判断,预测出现这些属性,用户是否喜欢这部电影。再比如进行拉普拉斯平滑等方法,我们就不深入介绍啦~




传统的基于内容方法,我们可以发现最直接的两个缺陷有限的内容分析过于专业化。有限的内容分析就是说,属性只能找到这些固定的词语,可能无法发掘文本信息中的情感等上下文信息。过于专业化也就是说推荐会陷入局限,可能喜欢某个演员以至于只推荐某个演员。




自上而下加入NLP

这里我们考虑加入NLP的思路来解决前面的问题,主要有三个方向的思路:基于本体资源的方法;利用百科知识资源;利用关联开放数据云。




基于本体资源的方法

首先考虑的是结合本体知识的方法,也就是通过词义消歧(WSD)对内容进行语义解释。可以理解为将同义词进行统一,这样子一个物品在被表示为一个词语向量时,就会比较唯一。


换一种思路,我们将不同语言里面的同一个词语,也可以看作同义词,比如hello和你好。这样子得出来的向量模型就可以跨多语言来对物品进行建模。


听起来基于本体的方法非常滴 nice,但是依然存在一些缺陷,就是对知识的覆盖有限。所以本体会在相互关系之间构建一个相互关联的语义网络。这样子在计算相似性的时候就可以应用到图的方法。





利用百科知识资源

以维基百科为例,这类知识库包含了很多人类知识。那么如果借鉴这些人工构建的百科知识库内容,就相当于从外部学到很多知识,然后再结合这些知识来学习推荐数据集中的内容,自然推荐结果会更友好。


现有的工作将百科全书知识视为一系列的概念,然后用这些概念定义的高维空间来表示自然语言文本的含义。此外还有工作构建了一种名为 BabelNet[1] 的新资源,一个超大规模的百科全书词典。它将知识编码为有标记的有向图:节点是如维基百科中的概念,边是概念之间的关系。


通过这样子的设计,推荐系统在提高推荐精度的同时,也可以提高对推荐结果新颖性的优化。比如用户的文本内容中出现了iPad这种词条,通过外在的百科知识学习,就可以知道还可以推荐iPhone,iPod,MacBook之类的物品,而这是单纯的基于内容的学习比较难做到的。




利用关联开放数据云

这类方法非常好理解,就是关联社区主张通过一些给定规则来处理 web 上的结构化数据,然后协同发布并互联。现在已经有越来越多的语义数据发布,连接了涉及地理位置,人物,公司,书,电影,音乐,电视和节目,基因,蛋白质,药物,在线社区等全球数据空间,将其称之为数据web。


利用这些数据学习到的内容,一方面可以提高原本的基于内容的推荐方法,另一方面的特点我们可以很简单的想到,就是跨领域的推荐。这里举个小栗子

微博上发现小明经常给他女朋友分享周杰伦和许嵩的歌,那么在音乐推荐的时候,这两个歌手就可以看作相似歌手,或者被经常分享的歌可以看作相似的歌曲。


这里就是从微博上的关系可以应用到音乐软件中去~




3)自下而上:基于判别式的方法

前面我们讲了自上而下来加入NLP的语义方法,接下来以基于判别式为例,我们简单的了解一下自下而上的语义方法。

 

自下而上的思路讲的就是从统计分布的角度来考虑,基于分布假说,认为单词的含义取决于它的上下文。那么这里的思路就是从文档中来获得词语的意思,不需要额外的人工标注的外部资源,也无需人工维护本体。但是换个思路,就是我们要大大滴数据集,从这些文本文档中去学习词语的上下文所包含的背景含义。

 

这类方法的依据就是,认为相同上下文中出现的词倾向于具有相似的意义,从另一个角度看,就是这类方法认为词在语义上的相似度取决于它们上下文的相似度。那么如何判断呢?我们可以简单的将其设置为一个词语-上下文矩阵。而这里的上下文判断就方法比较多了。




比如我们可以将一起出现的单词认为是目标词的上下文,或者设定一个滑动窗口内的词语是上下文,也可以是一个句子,一段文本信息,甚至整个文档。那我们再举个栗子:

一个句子写到:常喝的酒有啤酒,葡萄酒,白酒等。那我们的模型就认为啤酒,葡萄酒,白酒这些词比较相似。


在这里也可以考虑加入矩阵分解降维的操作等,对这个词语-上下文矩阵进行降维。也有一些其他工作对这里进行进一步研究,感兴趣的小伙伴可以再进一步了解。




总结

今天的文章我们介绍了传统的基于内容的推荐系统,然后介绍了两类对基于内容的推荐系统的改进思路,分别是依靠外在标注数据的自上而下的思路,以及挖掘文档内部词语相似性的自下而上的思路。


基于内容的推荐是我们主观上非常好理解的一种推荐方法,并且非常简单,同时拥有优秀的解释性,非常善于解决冷启动问题。但是在精度上不如协同过滤表现优异,所以现有对基于内容推荐的改进,或者融合到一些其它模型中,都是非常有意思的尝试。之前看过recsys上也有融合基于内容的推荐来缓解冷启动的问题。


今天的内容就到这里,如果对您有帮助的话,拜托点个再看哟,本系列会在新年期间持续更新哒~




[1]. Navigli, R., Ponzetto, S.P.: BabelNet: The automatic Construction, Evaluation and Application of a Wide-coverage Multilingual Semantic Network. Artif. Intell. 193, 217-250(2012)



由于微信平台算法改版,公号内容将不再以时间排序展示,如果大家想第一时间看到我们的推送,强烈建议星标我们和给我们多点点【在看】。星标具体步骤为:

(1)点击页面最上方"AINLP",进入公众号主页。

(2)点击右上角的小点点,在弹出页面点击“设为星标”,就可以啦。

感谢支持,比心

欢迎加入推荐技术交流群
进群请添加AINLP小助手微信 AINLPer(id: ainlper),备注推荐技术

推荐阅读

这个NLP工具,玩得根本停不下来

征稿启示| 200元稿费+5000DBC(价值20个小时GPU算力)

完结撒花!李宏毅老师深度学习与人类语言处理课程视频及课件(附下载)

从数据到模型,你可能需要1篇详实的pytorch踩坑指南

如何让Bert在finetune小数据集时更“稳”一点

模型压缩实践系列之——bert-of-theseus,一个非常亲民的bert压缩方法

文本自动摘要任务的“不完全”心得总结番外篇——submodular函数优化

Node2Vec 论文+代码笔记

模型压缩实践收尾篇——模型蒸馏以及其他一些技巧实践小结

中文命名实体识别工具(NER)哪家强?

学自然语言处理,其实更应该学好英语

斯坦福大学NLP组Python深度学习自然语言处理工具Stanza试用

关于AINLP

AINLP 是一个有趣有AI的自然语言处理社区,专注于 AI、NLP、机器学习、深度学习、推荐算法等相关技术的分享,主题包括文本摘要、智能问答、聊天机器人、机器翻译、自动生成、知识图谱、预训练模型、推荐系统、计算广告、招聘信息、求职经验分享等,欢迎关注!加技术交流群请添加AINLPer(id:ainlper),备注工作/研究方向+加群目的。


阅读至此了,分享、点赞、在看三选一吧🙏

登录查看更多
1

相关内容

一个具体事物,总是有许许多多的性质与关系,我们把一个事物的性质与关系,都叫作事物的属性。 事物与属性是不可分的,事物都是有属性的事物,属性也都是事物的属性。 一个事物与另一个事物的相同或相异,也就是一个事物的属性与另一事物的属性的相同或相异。 由于事物属性的相同或相异,客观世界中就形成了许多不同的事物类。具有相同属性的事物就形成一类,具有不同属性的事物就分别地形成不同的类。
专知会员服务
56+阅读 · 2021年4月20日
专知会员服务
46+阅读 · 2021年3月24日
【WWW2021】基于双侧深度上下文调制的社会化推荐系统
专知会员服务
28+阅读 · 2021年1月28日
基于事件社会网络推荐系统综述
专知会员服务
70+阅读 · 2021年1月13日
应用知识图谱的推荐方法与系统
专知会员服务
116+阅读 · 2020年11月23日
专知会员服务
48+阅读 · 2020年10月20日
基于旅游知识图谱的可解释景点推荐
专知会员服务
92+阅读 · 2020年9月4日
基于知识图谱的推荐系统研究综述
专知会员服务
329+阅读 · 2020年8月10日
推荐系统之矩阵分解家族
图与推荐
13+阅读 · 2020年3月28日
1分钟了解相似性推荐
架构师之路
5+阅读 · 2018年3月20日
【推荐系统】详解基于内容的推荐算法
产业智能官
23+阅读 · 2018年1月11日
干货 | 自然语言处理(1)之聊一聊分词原理
机器学习算法与Python学习
5+阅读 · 2017年12月7日
基于机器学习方法的POI品类推荐算法
全球人工智能
3+阅读 · 2017年11月22日
【NLP】十分钟快览自然语言处理学习总结
专知
17+阅读 · 2017年11月21日
深度学习在 NLP 上的七大应用
AI前线
3+阅读 · 2017年10月11日
自然语言处理技术(NLP)在推荐系统中的应用
CSDN大数据
4+阅读 · 2017年6月29日
Cold-start Sequential Recommendation via Meta Learner
Arxiv
15+阅读 · 2020年12月10日
Arxiv
20+阅读 · 2019年11月23日
Arxiv
22+阅读 · 2018年8月30日
Arxiv
14+阅读 · 2018年4月18日
Arxiv
7+阅读 · 2018年1月31日
VIP会员
相关VIP内容
专知会员服务
56+阅读 · 2021年4月20日
专知会员服务
46+阅读 · 2021年3月24日
【WWW2021】基于双侧深度上下文调制的社会化推荐系统
专知会员服务
28+阅读 · 2021年1月28日
基于事件社会网络推荐系统综述
专知会员服务
70+阅读 · 2021年1月13日
应用知识图谱的推荐方法与系统
专知会员服务
116+阅读 · 2020年11月23日
专知会员服务
48+阅读 · 2020年10月20日
基于旅游知识图谱的可解释景点推荐
专知会员服务
92+阅读 · 2020年9月4日
基于知识图谱的推荐系统研究综述
专知会员服务
329+阅读 · 2020年8月10日
相关资讯
推荐系统之矩阵分解家族
图与推荐
13+阅读 · 2020年3月28日
1分钟了解相似性推荐
架构师之路
5+阅读 · 2018年3月20日
【推荐系统】详解基于内容的推荐算法
产业智能官
23+阅读 · 2018年1月11日
干货 | 自然语言处理(1)之聊一聊分词原理
机器学习算法与Python学习
5+阅读 · 2017年12月7日
基于机器学习方法的POI品类推荐算法
全球人工智能
3+阅读 · 2017年11月22日
【NLP】十分钟快览自然语言处理学习总结
专知
17+阅读 · 2017年11月21日
深度学习在 NLP 上的七大应用
AI前线
3+阅读 · 2017年10月11日
自然语言处理技术(NLP)在推荐系统中的应用
CSDN大数据
4+阅读 · 2017年6月29日
相关论文
Top
微信扫码咨询专知VIP会员