推荐系统与知识图谱

个性化推荐系统作为一种信息过滤的重要手段,是当前解决信息超载问题的最有效的方法之一,是面向用户的互联网产品的核心技术。

推荐系统的任务和难点

 按照预测对象的不同,推荐系统一般可以分成两类:一类是评分预测(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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/52619.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【数据分析】豆瓣电影Top250爬取的数据的可视化分析

豆瓣Top250网址 将之前爬取到的豆瓣电影进行简单的可视化: 数据列表保存为CSV格式,如图 导入数据 做好准备 #!-*- coding:utf-8 -*- import pandas as pd import numpy as np import matplotlib.pylab as plt import re from numpy import rank from bu…

1984-1999:中国电影的黄金十五年

https://www.toutiao.com/a6711956018126914059/ 2019-07-10 18:11:26 1984年6月,在黄土高原的群山之间,电影《黄土地》剧组的工作人员大声呼喊着一个人的名字。 他们在寻找这部电影的摄影师张艺谋。 这是张艺谋第二次担任电影摄影师,不久前…

ELK 可视化分析热血电影《长津湖》15万+影评

1、《长津湖》观后 2018 年有了孩子后,近 3 年没有再看过电影。 念于《长津湖》的确大热,我对战争片心念神往、对中国近现代史非常好奇,加上老婆的男神段奕宏参演。一拍即合,我俩在国庆假期的最后一天看了这部鸿篇巨制、热血催泪电…

python爬取百部电影数据,我分析出了一个残酷的真相

2019年就这么匆匆过去了,就在前几天国家电影局发布了2019年中国电影市场数据,数据显示去年总票房为642.66亿元,同比增长5.4%;国产电影总票房411.75亿元,同比增长8.65%,市场占比 64.07%;城市院线…

214 情人节来袭,电视剧 《点燃我温暖你》李峋同款 Python爱心表白代码,赶紧拿去用吧

大家好,我是徐公,六年大厂程序员经验,今天为大家带来的是动态心形代码,电视剧 《点燃我温暖你》同款的,大家赶紧看看,拿去向你心仪的对象表白吧,下面说一下灵感来源。 灵感来源 今天&#xff…

ChatGPT提示词分享1/100 写作助手

作为一名中文写作改进助理,你的任务是改进所提供文本的拼写、语法、清晰、简洁和整体可读性,同时分解长句,减少重复,并提供改进建议。请只提供文本的更正版本,避免包括解释。请从编辑以下文本开始:[文章内容…

家庭教育的重要性,家庭教育是一切教育的基石

在孩子整个教育的过程中,学校教育是处于主导地位的,而家庭教育起着关键的作用。 家庭教育,是国民教育体系的重要组成部分,是社会、学校教育的基础、补充和延伸。家庭教育伴随人的一生,影响人的一生,对一个…

关注家庭教育-父母对子女的期望

关注家庭教育 - 孩子有自己的追求 文章目录 关注家庭教育 - 孩子有自己的追求简要正文期望家庭教育公众号 简要 人对自己的子女都免不了有一些期望。我们对子女实际上只能存品德方面的期望,因为品德它是放之四海而皆准的。你可以希望你的小孩以后长大待人很热忱&am…

如何才能做好家庭教育?家庭教育的五个主要方面

家庭教育的重要性家庭教育自古以来就受到人们的关注,但近年来在中国被作为一门学科来研究。这是时代发展、人才需求、人民整体素质提高必须涉及的问题。在这里,我们和家长一起探讨家庭教育的重要性,让家庭、社会、教育部门共同承担起教育下一…

家庭教育中如何使用批评教育?

孩子做错了事,作为父母,你知道应该怎么批评孩子吗?在家庭教育中,如果批评用得不好,就会比较麻烦,会严重限制孩子的发展。 在一次线下活动中,我看到一个妈妈带着孩子,准备进行乐器表演&#xff…

使用tushare大数据平台对几种股票因子进行计算

写在前面 去年七月,笔者开始接触买入股票,近一年下来,投入的的钱亏了一半,股票市场不是基金市场,其中的残酷给我这个初来乍到的年轻人上了一课。当时,我就在想,买卖股票是否能够赚钱&#xff0c…

利用tushare获取股票数据-V2 +股票数据分析

一、利用tushare获取股票数据 上次利用tushare的API获取了一部分的数据,感觉不够齐全,所以现在更新程序 import tushare as ts import pandas as pdpro ts.pro_api() data pro.query(stock_basic, exchange, list_statusL, fieldsts_code) #实例化一个…

免费获取股票历史交易数据方法与代码获取股票实时数据方法集合

现在网上有越来越多开源的股票数据的获取方法,言简意赅,小编在这里提供2种方法去获取股票数据,第一种呢还是针对于所有的用户,通过使用第三方平台提供的方法来获取到所需要的股票数据。 方法一:使用免费的网站进行 详…

获取股票交易数据的Tushare的使用方法

博客:https://www.cnblogs.com/DreamRJF/p/8660630.html 以前不知道怎么从网上直接获取数据,都是从交易软件上下载数据,也只有个别的软件才能下载,例如通达信可以导出数据,现在学到了一种新的方法,利用tush…

四万字歌词分析:那些年,我们一起追的五月天到底在唱什么?

大数据文摘出品 作者:蒋宝尚、曹培信 你见过自带荧光棒、中途大合唱、放完不离场的电影观众么? 如果你去电影院看了《五月天人生无限公司》,那么,你一定明白文摘菌在说什么。 如果你还没有看过,文摘菌这里弱剧透一下&a…

歌词生成(一)-SongNet简述

歌词生成相较于普通文本生成,需要配合特定的乐曲,并演唱。因而要求,每句歌词演唱的长度正好合拍,即不同曲子,每句歌词的字符个数是要受限制于乐曲。 本文暂不考虑曲配词问题,只是将问题抽象为,…

Android 开源歌词控件 LyricViewX

Android 开源歌词控件 LyricViewX 开源地址 Github https://github.com/Moriafly/LyricViewX LyricViewX 是一个美观的安卓歌词控件。 基于 LrcView 设计。 效果展示 Dso Music Github https://github.com/Moriafly/DsoMusic 双语 拖动 单语 比较与 LrcView 100% Kotlin…

如何获取LRC歌词

在日常的剪辑或者是其他情况下,需要使用LRC歌词,不需要下载新的杂门软件就能获取lrc歌词,真的很心动了,这里以网易云音乐为例: 1、打开网易云音乐网页版,找到需要的歌词 2、按F12键,选择 Netwo…

从ChatGPT等大模型的兴起,看未来计算芯片的发展趋势

欢迎关注软硬件融合公众号: 编者按 ChatGPT的火爆,直接引爆了大模型的繁荣,也使得NVIDIA GPU供不应求。 从发展的角度看,GPU并不是大模型最高效的计算平台。 GPT等大模型为什么没有突破万亿参数?核心原因在于在现在的G…

GPU和CPU芯片区别:为何要用GPU挖矿?

CPU和GPU之所以大不相同,是由于其设计目标的不同,它们分别针对了两种不同的应用场景。CPU需要很强的通用性来处理各种不同的数据类型,同时又要逻辑判断又会引入大量的分支跳转和中断的处理。这些都使得CPU的内部结构异常复杂。而GPU面对的则是…