推荐--用图分析!
什么是推荐系统
当用户需要连接到互联网以满足其需求时,他经常会遇到大量的相关信息。推荐系统是一种用于过滤信息并提供给用户尽量使他们满意和感兴趣的商品、内容或者服务的技术。
随着电子商务和社交媒体平台的快速发展,为了防止用户在数据海中迷失自我,推荐系统应运而生。推荐系统作为AI最成功和最重要的应用之一,帮助消费者更容易地找到相关的或感兴趣的内容、商品或者服务。
推荐系统的重要性
当今互联网承载着多种信息资源,数据量呈指数级增长。推荐系统在缓解信息过载这一问题上发挥着重要作用。在电商平台,一个好的推荐系统能帮助用户发现好商品,也能使高质量的商品触达精准受众。
从用户角度来看,推荐系统可以缓解信息过载带来的时间成本,从企业角度来看,可以帮助企业实现精准营销,个性化用户的体验,提升客户忠诚度,最大化企业的收益。因此推荐系统的好坏对用户和企业来说都非常重要。
图分析与推荐系统的关系
推荐系统里的数据本质上是一些图数据,包括用户、商品、属性在内的数据通过各种各样的关系联系在一起。而图分析技术在处理复杂关系上具有天然的优势,像随机游走、图神经网络等图技术已经被用来处理各种图并且取得了很好的效果,所以利用图分析来处理推荐问题会是一个自然且明智的选择。
而且,图分析有利于建立可解释的推荐系统。深度学习主导下的推荐系统的黑盒机制使得人们越来越关注推荐系统的可解释性,受益于图分析的因果推理的能力,基于图分析的推荐系统能很好地支撑推荐结果的可解释性。
推荐系统的数据结构
推荐系统中会包含很多不同类型的实体,例如用户、商品、属性等等,而他们之间又会通过各种关系联系在一起,例如用户之间的社交关系,用户和商品之间的交互关系等。这些不同的实体和关系构成推荐系统底层的数据集。推荐系统底层的数据可分为以下几种结构。
层级结构
一般地,所有的商品会根据特定属性(例如:产品的类别),被组织成层级结构。例如,华为商城的所有产品被分成许多类(包括手机、配件、智慧屏幕等),每类产品又会被分成小类(手机被分成Mate系列、P系列等),每个小类可能包含各种具体的产品。这种层级结构本身就揭示了产品之间丰富的关系。来自不同但相近的类别的产品可能存在互补的关系(例如手机和保护套),这有利于提升推荐的质量,另外,这也有利于避免重复推荐类似产品,从而提升推荐产品的多样性。
单部图
在推荐系统中,至少有两个单部图需要考虑,即用户社交关系网络和产品的共现关系网络或会话图。在社交关系图中,用户的偏好和购买行为会互相影响,产品的共现关系不仅体现了产品的互补或者竞争的关系,也显示了用户的消费模式,这些都是在做推荐的时候需要考虑的因素。
二部图
用户和商品之间的关系(点击、购买等)是推荐系统的核心,这可以建模成二部图。此时推荐可以看作一个链接预测问题。
异构图
为了有效解决上述用户-商品二部图稀疏性的问题,也为了建立更加鲁棒和可靠的推荐系统,有许多相关的信息可以被考虑进来,包括用户的个人信息、用户的社交关系、商品特性、商品共现关系等等。一般来说,我们对用户的偏好和购买行为以及产品的特性了解得越多,推荐的效果就会越好。
推荐系统的图分析方法
随机游走
随机游走的原理是从某一个点出发,以特定的概率游走到这个顶点的邻居节点,每次游走后得到一个概率分布,该概率分布刻画了图中每个节点被访问到的概率。经过一定步骤后,根据每个节点被访问到的概率对节点进行排序作为推荐结果。受益于随机游走特殊的工作机制,其在复杂、高阶的数据图上获得了很好的推荐效果。
图表示学习
图表示学习方法一般将图中每个点编码成低维度的表示,这些表示蕴含着图的结构信息,这些表示将用于后续的推荐任务。
图神经网络
例如:图卷积神经网络通过利用图的结构和点的特征信息去学习怎样不断地聚合局部结构地特征。一般来说,通过卷积和池化操作,图卷积网络有能力从节点的邻域学习到有价值的特征信息。
知识图谱
基于知识图谱的推荐系统一般利用外部的知识建立知识图谱,以探索用户或者商品之间隐藏的关系,这样有利于更好的推荐。更重要的是,由于利用了外部的知识,基于知识图谱的推荐系统对用户的行为和产品的特性提供了更好的理解,从而提升了推荐结果的可解释性。
基于GES的推荐系统的优势
酷狗、华为商城基于GES构建自己的推荐系统,取得了非常好的效果(基于人货场的电商知识图谱的构建),总的来说,基于GES的推荐系统有以下几个方面的优势:
实时推荐
在线应用程序必须做出即时的推荐,GES的高性能能帮助建立实时推荐系统。
提供高质量、可解释性的推荐结果
提供的推荐结果对用户来说是真正有价值的,而且可以回答为什么的问题。
方法的多样性
GES提供多种方法帮助构建推荐系统,结果更准确。
实现商业目标
帮助企业实现高收入、低成本的目标,提升用户满意度,节约时间成本。
几个推荐的例子
好友推荐
在这个例子中,我们向李雷推荐好友,思路是向他推荐其好友的好友,但是推荐的好友中不应包含李雷本身的好友,比如图中小梅同时是李雷的好友,也是李雷好友的好友,我们不应该向李雷推荐小梅,因为她已经是李雷的好友了。我们可以通过下面的gremlin语句来实现上述推荐:
g.V("李雷").repeat(out("friend").simplePath().where(without('1hop')).store('1hop')).times(2).path().by("name").limit(100)
电影推荐
这是一个异构图的例子,包含user,movie,genre,actor,director等实体,我们想向Frank推荐电影,我们利用GES内置的实时推荐算法来实现。实时推荐算法是一种基于随机游走模型的算法,主要的输入参数是sources和label,sources表示请求节点的id,label表示期望得到的推荐的节点类型,具体的参数说明可以参考链接实时推荐算法,返回参数中,score展示了各节点的推荐值,反应了对其推荐程度。
{
"score": 1494,
"id": "The Sixth Sense"
},
{
"score": 1233.0000000000002,
"id": "Artificial Intelligence"
},
{
"score": 519,
"id": "Lincoln"
},
{
"score": 441,
"id": "Ready Player One"
}
参考文献:
1. Graph Learning Approaches to Recommender Systems: A Review(2020)
2. DKN: Deep Knowledge-Aware Network for News Recommendation(2018)
3. Dressing as a Whole: Outfit Compatibility Learning Based on Node-wise Graph Neural Networks(2019)
- 点赞
- 收藏
- 关注作者
评论(0)