【推荐系统(二)】协同过滤之隐语义模型(LFM)


基于用户行为分析的推荐算法一般称为协同过滤算法。所谓协同过滤,就是指众多的用户可以齐心协力,通过不断地和网站互动,使自己的推荐列表能够不断过滤掉自己不感兴趣的物品,从而越来越满足自己的需求。常见实现方法的包括:

  1. 基于邻域的方法
  2. 隐语义模型
  3. 基于图的随机游走算法

本文主要讲解隐语义模型(LFM),它的核心思想是通过发掘隐含特征(latent factor) 来完成推荐任务。

一、引例

在讲解LFM之前,先看个例子:

喜欢看视频的用户都有自己的喜好标签,这些标签的粒度可大可小,例如战争和李云龙就是粒度不同的标签。现在假设一个理想的情况:

  1. 已知用户对不同标签的兴趣程度
  2. 每个视频都具有不同的标签,且每个标签占比已知

那么就可以得到:

1,用户潜在因子矩阵,例如:

军事 娱乐 时政 历史 李云龙
用户A 0.7 0.3 0.4 0.8 0.8
用户B 0.8 0.4 0.6 0.7 0.1
用户C 0.5 0.6 0.7 0.3 0.3

矩阵中的数值表示不同用户对于不同标签的偏好程度,1.代表绝对喜欢,0.代表不喜欢。

2,视频潜在矩阵

军事 娱乐 时政 历史 李云龙
视频A 0.8 0 0.4 0.8 1
视频B 0 0.8 0 0.7 0
视频C 0.5 0 0.7 0.6 0

矩阵中的数值表示每种视频包含各种标签的成分。

利用上面的两个矩阵,就可以推算用户A对视频A的喜欢程度,即:

用户A对军事的偏好 * 视频1含有军事成分 + ……(依次类推相乘相加),得到:0.7 * 0.8+0.3 * 0+0.4 * 0.4+0.8 * 0.8+0.8 * 1=2.16

同理,可以得到所有用户对所有视频的喜爱程度:

视频A 视频B 视频C
用户A 2.16 0.8 1.11
用户B 1.13 0.81 1.24
用户C 1.16 0.69 1.02

因此,我们推荐用户A的视频是A,对用户B推荐的视频是C,对用户C推荐的视频是A。

这个推荐过程其实很好理解,但是有下面的问题:

1,需要计算用户对不同标签的喜爱程度。

2,需要给每个视频打不同粒度的标签。

3,需要计算不同标签在视频中的占比。

后面的2个问题难免需要一些人工标记,费时费力,且受主观因素影响大。为此, LFM 提出了一个相对简单的解决方案。

二、LFM

主要思想

LFM的思想与上面的例类似,通过下面的公式计算用户 u 对物品 i 的感兴趣程度:
P r e f e r e n c e ( u , i ) = r u i = p u T q i = ∑ k = 1 F p u , k q i , k Preference(u, i) = r_{ui} = p_u^T q_i = \sum_{k=1}^F p_{u,k}q_{i,k} Preference(u,i)=rui=puTqi=k=1Fpu,kqi,k
式子中,参数 p u , k p_{u,k} p

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值