推荐系统基础 - 1

推荐系统基础 - 1

知识点

  1. 推荐系统基本思想:
    在这里插入图片描述
  2. 推荐系统的数据分析:
    • 要推荐物品或内容的元数据:如关键字,分类标签,基因描述等
    • 系统用户的基本信息:如性别,年龄,兴趣标签等
    • 用户的行为数据:可以转化为对物品或者信息的偏好,根据应用本身的不同,可能包括用户对物品的评分,用户查看物品的记录,用户的购买记录等。这些用户的偏好信息可以分为两类:
      • 显示的用户反馈:这类是用户在网站上自然浏览或者使用网站以外,显示的提供反馈信息,例如用户对物体的评分,或者对物体的评论。
      • 隐式的用户反馈:这类是用户在使用网站时产生的数据,隐式的反应了用户对物品的喜好,如用户购买了某产品,用户查看了某物品的信息等。
  3. 推荐分类:
    1. 根据实时性分类:
      • 离线推荐
      • 实时推荐
    2. 根据是否个性化分类:
      • 基于统计的推荐
      • 个性化推荐
    3. 根据推荐原则分类:
      • 基于相似度推荐
      • 基于知识的推荐
      • 基于模型的推荐
    4. 根据数据源分类
      • 基于人口统计学的推荐
      • 基于内容的推荐
      • 基于协同过滤的推荐
  4. 相关算法
    1. 基于人口统计学的推荐算法
      在这里插入图片描述

    2. 基于内容的推荐算法在这里插入图片描述

    3. 协同过滤

      • 基于近邻的协同过滤:
        • 基于用户(User - CF)
        • 基于物品(Item - CF)
      • 基于模型的协同过滤:
        • 奇异值分解:SVD
        • 潜在语义分析:LSA
        • 支撑向量机:SVM
    4. 混合推荐

      • 加权混合:用线性公式将几种不同的推荐按照一定权重组合起来,具体权重的值需要在测试数据集上反复实验,从而达到最好的推荐效果。
      • 切换混合:切换的混合方式,就是允许在不同的情况下,选择最为合算的推荐机制计算推荐。
      • 分区混合:采用多种混合机制,并将不同的推荐结果分不同的区显示给用户
      • 分层混合:采用多种推荐机制,并将一个推荐机制的结果作为另一个的输入,从而综合各个推荐机制的优缺点,得到更加准确的推荐。
  5. 推荐系统评测
  • 一个好的推荐系统:
    让用户更快更好的获取到自己需要的内容,让内容更快更好地推送到喜欢它的用户手中,让网站更有效的保留用户资源。
  • 实验方法:
    • 通过体制系统获取用户行为数据,并按照一定格式生成一个标准的数据集。
    • 将数据集按照一定的规则分为训练集和测试集。
    • 在训练集上训练用户兴趣模型,在测试集上进行预测。
    • 通过事先定义的离线指标评测算法在测试集上的预测结果。
  • 用户问卷调查:
    找到靠谱的真实用户,让他们在需要测试的系统上做一些任务,记录他们的行为,并让他们回答一些问题,进行一些分析
  • 在线实验:
    AB测试。行为数据收集过程会比较漫长。
  1. 评测指标:
    1. 预测准确度
    2. 用户满意度
    3. 覆盖率
    4. 多样性
    5. 惊喜度
    6. 信任度
    7. 实时性
    8. 健壮性
    9. 商业目标
  • 评分预测:RMSE或者MAE。
  • Top-N推荐:精确率和召回率。
  1. 用户画像(User Profiling)
  • 含义:用户信息标签化的过程。
  • 过程:企业通过收集与分析消费者的社会属性,生活习惯,消费行为等主要信息的数据后,完美抽象出一个用户的商业全貌,是企业应用大数据的基本方式。
  1. 基于内容推荐系统的高层次结构
    在这里插入图片描述
  2. 推荐系统常见反馈数据
    在这里插入图片描述
  3. 基于UGC的推荐
    算法:
  • 统计每个用户最常用的标签
  • 对于每个标签,统计被打过这个标签次数最多的商品
  • 对于每个用户,首先找到他的常用标签,然后找到具有这些标签的最热门的商品,推荐给他
  • 所以用户u对商品i的兴趣公式为
    P ( u , i ) = ∑ b n u , b n b , i P(u,i) = \sum_{b}n_{u,b}n_{b,i} P(u,i)=bnu,bnb,i
    其中, n u , b n_{u,b} nu,b是用户u打过b标签的次数, n b , i n_{b,i} nb,i是物品i被打过标签b的次数
  • TF-IDF对UGC的改进:
    P ( u , i ) = ∑ b n u , b log ⁡ ( 1 + n b ( u ) ) n b , i log ⁡ ( 1 + n i ( u ) ) P(u,i) = \sum_{b}\frac{n_{u,b}}{\log(1+n_{b}^{(u)})}\frac{n_{b,i}}{\log(1+n_{i}^{(u)})} P(u,i)=blog(1+nb(u))nu,blog(1+ni(u))nb,i
    其中 n b ( u ) n_{b}^{(u)} nb(u)是记录了标签b被多少个不同的用户使用过, n i ( u ) n_{i}^{(u)} ni(u)记录了物品i被多少个不同的用户打过标签。
  1. LFM(Latent Factor Model隐语义模型)降维方法
  • 假设用户评分矩阵为R,现有m个员工,n个物品。

  • 我们想要发现k个隐类,我们的任务就是找到两个矩阵P和Q,使这两个矩阵的乘积近似等于R,即将用户物品评分矩阵R分解成两个低维矩阵相乘。
    在这里插入图片描述

  • 求解P, Q的损失函数
    平方损失函数加上惩罚参数:
    C = ∑ ( u , i ) ∈ R 0 ( R u i − P u T ⋅ Q i ) 2 + λ ∑ u ∣ ∣ P u ∣ ∣ 2 + λ ∑ i ∣ ∣ Q i ∣ ∣ 2 C= \sum_{(u,i)\in R_0}(R_{ui}-P_{u}^{T}\cdot Q_{i})^2+\lambda \sum_{u} ||P_{u}||_2+\lambda\sum_{i}||Q_{i}||_2 C=(u,i)R0(RuiPuTQi)2+λuPu2+λiQi2

  • 解法一 Alternating Least Square(ALS):
    主要思想是由于P,Q都未知,通过矩阵乘法耦合在一起,为了使它们解藕,可以先固定Q,把P当作变量,通过损失函数最小化求出P,这就是一个经典的最小二乘问题,再反过来固定求得的P,把Q当作变量,求解Q。交替执行,直到误差满足阈值条件,或者达到迭代上限。

  • 固定Q求解P的过程:
    L u ( P u ) = ∑ ( u , i ) ∈ R 0 ( R u i − P u T ⋅ Q i ) 2 + λ ∑ u ∣ ∣ P u ∣ ∣ 2 L_{u}(P_{u})=\sum_{(u,i)\in R_0}(R_{ui}-P_{u}^{T}\cdot Q_{i})^2+\lambda \sum_{u} ||P_{u}||_2 Lu(Pu)=(u,i)R0(RuiPuTQi)2+λuPu2
    ∂ L u ∂ P u = ∑ i 2 ( P u T Q i − R u i ) Q i + 2 λ P u = 2 ( ∑ i P u T Q i Q i − ∑ i R u i Q i + λ P u ) \begin{aligned} \frac{\partial L_{u}}{\partial P_{u}} &=\sum_{i}2(P_{u}^{T}Q_{i}-R_{ui})Q_{i}+2\lambda P_{u}\\ &=2(\sum_{i}P_{u}^{T}Q_{i}Q_{i}-\sum_{i}R_{ui}Q_{i}+\lambda P_{u}) \end{aligned} PuLu=i2(PuTQiRui)Qi+2λPu=2(iPuTQiQiiRuiQi+λPu)
    可以求得:
    P u = ( Q Q T + λ I ) − 1 Q R u P_{u} = (QQ^{T}+\lambda I)^{-1}QR_{u} Pu=(QQT+λI)1QRu
    同理:
    Q i = ( P P T + λ I ) − 1 P R i Q_{i} = (PP^{T}+\lambda I)^{-1}PR_{i} Qi=(PPT+λI)1PRi

  • 解法二:梯度下降法
    P u = P u − α ∗ ∂ L u ∂ P u = P u − α ⋅ [ ∑ i 2 ( P u T Q i − R u i ) Q i + 2 λ P u ] \begin{aligned} P_{u} &= P_{u}-\alpha * \frac{\partial L_{u}}{\partial P_{u}} \\ &=P_{u} - \alpha \cdot [\sum_{i}2(P_{u}^{T}Q_{i}-R_{ui})Q_{i}+2\lambda P_{u}] \end{aligned} Pu=PuαPuLu=Puα[i2(PuTQiRui)Qi+2λPu]
    同理:
    Q i = Q i − α ⋅ [ ∑ u 2 ( P u T Q i − R u i ) P u + 2 λ Q i ] Q_{i} = Q_{i} - \alpha \cdot [\sum_{u}2(P_{u}^{T}Q_{i}-R_{ui})P_{u}+2\lambda Q_{i}] Qi=Qiα[u2(PuTQiRui)Pu+2λQi]

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值