《推荐系统实践》算法纯享(附代码链接)(三)—— 冷启动篇

在上一篇博客里面分享的是《推荐系统实践》中协同过滤相关的算法,对此还不熟悉的读者可以戳这里

关于这个系列会分为如下几个部分:

《推荐系统实践》算法纯享(附代码链接)(一)—— 评价指标篇
《推荐系统实践》算法纯享(附代码链接)(二)—— 协同过滤篇
《推荐系统实践》算法纯享(附代码链接)(三)—— 冷启动篇
《推荐系统实践》算法纯享(附代码链接)(四)—— UGC推荐篇
《推荐系统实践》算法纯享(附代码链接)(五)—— 借助上下文信息推荐篇
《推荐系统实践》算法纯享(附代码链接)(六)—— 借助社交网络推荐篇
《推荐系统实践》算法纯享(附代码链接)(七)—— 评分预测篇

完整代码链接:https://github.com/Magic-Bubble/RecommendSystemPractice

下面将开始本系列的第三部分——冷启动篇

3 冷启动

冷启动问题主要分为3类:

  1. 用户冷启动:解决为新用户做个性化推荐的问题
  2. 物品冷启动:解决将新物品推荐给可能对它感兴趣的用户这一问题
  3. 系统冷启动:解决在新开发的网站上,没有用户,也没有用户行为,只有一些物品信息的推荐问题

这里主要分享两个算法,一个是利用用户的注册信息进行冷启动,一个是利用物品本身信息进行冷启动。

3.1 利用用户注册信息

代码链接:https://github.com/Magic-Bubble/RecommendSystemPractice/blob/master/Chapter3/用户冷启动-利用用户的注册信息.ipynb

这里主要利用用户注册时填写的人口统计学信息,如年龄、性别、职业、民族、学历和居住地等,来进行推荐。其基本流程如下:

  1. 获取用户的注册信息
  2. 根据注册信息对用户进行分类
  3. 给用户推荐他所属那个分类中用户喜欢的物品

其中核心问题是计算每种分类(特征)的用户喜欢的物品,即对于每种类别(特征) f f f,计算具有这种特征的用户对各个物品的喜好程度 p ( f , i ) p(f, i) p(f,i)

N ( i ) N(i) N(i)为喜欢物品i的用户集合, U ( f ) U(f) U(f)是具有特征 f f f的用户集合。计算方式有如下两种:

a. 物品i在具有 f f f的特征的用户中的热门程度

p ( f , i ) = ∣ N ( i ) ⋂ U ( f ) ∣ p(f, i) = |N(i) \bigcap U(f)| p(f,i)=N(i)U(f)

b. 喜欢物品i的用户中具有特征 f f f的比例

p ( f , i ) = N ( i ) ⋂ U ( f ) ∣ N ( i ) ∣ + α p(f, i)=\frac{N(i) \bigcap U(f)}{|N(i)| + \alpha} p(f,i)=N(i)+αN(i)U(f)

α \alpha α是为了解决数据稀疏的问题,比如有一个物品只被1个用户喜欢过,而这个用户刚好就有特征 f f f,那么就有 p ( f , i ) = 1 p(f, i)=1 p(f,i)=1。但是,这种情况并没有统计意义,因此为分母加上一个比较大的数,可以避免这样的物品产生比较大的权重。

3.2 利用物品的内容信息

代码链接:https://github.com/Magic-Bubble/RecommendSystemPractice/blob/master/Chapter3/物品冷启动-利用物品的内容信息.ipynb

一般物品都有自己的内容信息,比如有一些文本等信息,这时候可以用NLP的知识将物品内容表示成向量空间模型,即表示为一个关键词向量。其流程如下图:

例如对于物品d,它的内容表示为关键词向量如下:其中 e i e_i ei是关键词, w i w_i wi是关键词对应的权重。

d i = ( e 1 , w 1 ) , ( e 2 , w 2 ) , . . . d_i = {(e_1, w_1), (e_2, w_2), ...} di=(e1,w1),(e2,w2),...

对于关键词权重的计算可以使用著名的TF-IDF公式:

w i = T F ( e i ) l o g D F ( e i ) w_i = \frac{TF(e_i)}{logDF(e_i)} wi=logDF(ei)TF(ei)

在给定物品内容的关键词向量之后,对于物品相似度的计算就可以通过余弦相似度进行计算:

w i j = &lt; d i , d j &gt; ∣ ∣ d i ∣ ∣ ∣ ∣ d j ∣ ∣ w_{ij}=\frac{&lt;d_i, d_j&gt;}{\sqrt{||d_i||||d_j||}} wij=didj <di,dj>

同样的,与前面的协同过滤算法类似,可以建立关键词-物品的倒排表加速计算过程。

在得到物品之间的相似度之后,就可以用前面的ItemCF进行推荐了。

对于冷启动的分享到这里就结束了,下面将继续分享第四部分——UGC推荐篇

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值