基于内容的推荐系统

Posted by Jack Lu on 2020-03-12
Words 874 and Reading Time 3 Minutes
Viewed Times

Content-base Filtering

Basics

基于内容过滤通过基于用户之前的行为actions或者隐式反馈,根据物品特征推荐给用户喜爱的类似物品。为了展示基于内容的过滤,我们通过手工方式为google play商店创建一些特征。下面图表展示一个特征矩阵,每行表示一个App,每列表示一个特征。特征可以包含分类(例如教育、休闲、健康),app的发布者以及其它的特征。简单点说,你可以认为这个特征工程是个二元的,一个非0值表示这个app有这个特征。
特征矩阵

你同样使用相同的特征空间来表示用户,一些和用户相关的特征可以被用户显示的提供。例如:用户在他的档案(profile)里面选择了”娱乐APP”,其它的特征可以是隐式的,基于用户之前安装过的app。用户安装了一个Science R Us发布的其它app。
基于内容的模型应该推荐和用户相关的物品,为了能做到这样的推荐,你必须选择一个相似度度量(例如:点积)。然后你必须构建一个基于相似度度量的系统去为每一个推荐候选的物品打分,注意,这个推荐是特定针对这个用户的,因为这个模型没用使用任何其他用户的信息。

使用点积作为相似度度量

考虑用户embedding x和物品embedding y同时是二元向量时,因为
根据点积公式点积公式
,一个特征同时存在x和y中时,那么公式的和就会加1,换句话说,x和y的点积就是同时在x和y的向量中出现的特征的个数。一个高的点积值代表更多共同的特征,也就是更高的相似度。

自己试试

根据上图计算每一个物品和用户的点积,使用计算的结果回答下面的问题:
你会推荐哪个app?
1、 Science R Us 创建的教育类的app
这是正确答案,这个物品和用户向量的点积最高,等于2。我们的这个用户的确喜欢科学和教育类app。
2、 Healthcare创建的健康类app
这个答案错误,这个app和用户点积值为1,这个不是系统生成的最差的推荐,但肯定不是最好的。
3、 TimeWastr创建的休闲app
这个答案错误,这个app和用户的点积值为0,我们的这个用户对游戏类的休闲app不感兴趣

Advantages&Disadvantages

Advantanges

基于内容的推荐不需要其他用户的数据,因为推荐就是针对这个用户的,因此它可以很容易的扩展到更多的用户。
这个模型能捕获用户特定的爱好,可以推荐很少有其他用户喜好的利基(niche)物品给用户。

Disadvantages

因为物品的特征表示某种程度上是通过手工来实现的,这个技术需要大量的专业领域知识。因此,这个模型只能很好的用于手工设计的特征。
这个模型只能基于用户已知的兴趣去推荐,换句话说,这个模型扩展用户已有兴趣的能力和很有限。



注:本文翻译自谷歌开发者文档

链接:https://developers.google.com/machine-learning/recommendation/content-based/basics


This is copyright.

...

...

00:00
00:00