ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

推荐系统笔记

2021-09-22 16:30:28  阅读:141  来源: 互联网

标签:基于 标签 推荐 矩阵 用户 笔记 CF 系统 物品


推荐系统

常用的推荐系统算法可以分为以下三种:

  • 1、基于人口统计学的推荐
  • 2、基于内容的推荐
  • 3、基于协同过滤的推荐

其中,本文简单介绍一下基于UGC(用户自定义标签)推荐和基于协同过滤的推荐。

基于UGC(用户自定义标签)推荐

UGC推荐表示了用户u给物品i打上了标签b,可以表示成(u,i,b)。那么用户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)=b∑​nu,b​,nb,i​

  • n u , b n_{u,b} nu,b​是用户u打过标签b的次数
  • n b , i n_{b,i} nb,i​是物品i被打过标签b的次数。

然而,该公式会存在一个问题,在生活中的热门标签中,物品被打标签次数占较大的权重,会导致推荐系统降低了其新颖度和个性化水平。参考了TF-IDF的思想 (TF(词频):在物品所有标签中的频率;IDF(逆文档频率):在其它物品标签中普遍出现的频率),在上式中加入了惩罚项后可表示为:
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)=b∑​log(1+nb(u)​)nu,b​​log(1+ni(u)​)nb,i​​

  • n b ( u ) n_b^{(u)} nb(u)​记录了标签b被多少个不同的用户使用过(针对热门标签)
  • n i ( u ) n_i^{(u)} ni(u)​记录了物品i被多少个不同的用户打过标签(针对热门物品)

基于协同过滤的推荐

基于CF的推荐也可以分为两种形式,分别为基于用户(User-CF)和基于物品(Item-CF) 。一般来说,在电商、电影、音乐等领域由于大多数情况下用户的数量远远大于物品,所以更倾向于使用Item-CF;而在新闻等领域中,由于信息每天在更新迭代,物品的数量远远大于了用户,所以更倾向于使用User-CF。在实现CF算法的过程中,有以下两种方法:

  • 基于近邻:利用用户行为数据预测偏好(可以近似理解为分类问题)
  • 基于模型:利用用户行为数据训练模型,找内在规律做预测(可以近似理解为回归问题,其中一般利用LFM(隐语义算法))

因为CF算法十分依赖历史数据,一般情况下评分矩阵是稀疏矩阵,所以要对原始数据进行降维,用到了矩阵因子分解的方法,分解之后的矩阵代表了User和Item的隐藏特征。

接下来本文将详细介绍一下矩阵因子分解的过程,假设存在下式:
R ∗ = P m × k T ⋅ Q k × n ≈ R R^{*} = P_{m \times k}^{T} \cdot Q_{k \times n} \approx R R∗=Pm×kT​⋅Qk×n​≈R

  • 预测评分矩阵 R ∗ R^{*} R∗
  • 评分矩阵 R R R
  • m m m个用户
  • n n n个物品
  • k k k个隐类
  • 用户特征 P P P
  • 物品特征 Q Q Q

原始稀疏矩阵进行分解后再乘回去可以得到预测矩阵,即相应得到预测评分数据,可以通过求解最小化的损失函数得到结果。但在实际情况中,这样做容易过拟合,需要加入正则化项: ( λ ∑ u ∥ P u ∥ 2 + λ ∑ i ∥ Q i ∥ 2 ) (\lambda\sum_{u}\left\| {P_u} \right\|^2 +\lambda\sum_{i}\left\| {Q_i} \right\|^2) (λ∑u​∥Pu​∥2+λ∑i​∥Qi​∥2)

  • λ \lambda λ可以通过交叉验证获得
  • 该正则化项表示了特征越多,其值越大,也就是说矩阵越复杂,越容易过拟合,达到了一定的惩罚作用

在求解损失函数的过程中,一般使用ALS算法(交替最小二乘法),通过固定Q求P的最小值;再固定P求Q的最小值,直到满足条件(误差小于阈值 ϵ \epsilon ϵ或者达到一定的迭代次数)

以下为手工推导矩阵因子分解详细过程:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
今天先写到这里啦,有错误的话欢迎各位大佬指出~(谦虚

标签:基于,标签,推荐,矩阵,用户,笔记,CF,系统,物品
来源: https://blog.csdn.net/weixin_44804517/article/details/117662891

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有