推荐系统(1)

推荐系统(1)

1 基于内容的推荐Content-based

主要思想:向顾客 \(x\) 推荐与之前被 \(x\) 高度评价的商品相似的商品

步骤

  1. Item Presentation

    为每个item抽取出一些特征来表示此item(item profile)

    文本挖掘常用启发式方法: \(TF-IDF\)

  2. Profile Learning(典型的监督分类问题)

    利用一个用户过去喜欢 / 不喜欢的item的特征数据,来学习出此用户的喜好特征(user profile)

  3. Recommendation Generation

    通过比较user profile和item profile,为此用户推荐一组相关性最大的item

\(TF-IDF\) (Term Frequency * Inverse Doc Frequency)词频-逆文档频率

主要思想:一个词语在一篇文章中出现次数越多,同时在所有文档中出现次数越少,越能代表该文章。
\[ TF-IDF score: w_{ij} = TF_{ij} \times IDF_i \]

\(i\) :feature;\(j\) :item;\(N\) :total number of docs

主要思想:一个词语在一篇文章中出现次数越多,同时在所有文档中出现次数越少,越能代表该文章。

词频TF:某一个给定的词在该文章中出现的次数(归一化:除以文章总词数,以防止偏向长文章)
\[ TF_{ij} = \frac{f_{ij}}{max_kf_{kj}} \]
逆文档频率IDF:总文件数 / (包含该给定词的文档化数+1),再取对数(IDF越大,表明词条类别区分能力好)
\[ IDF_i = log{\frac{N}{n_i}} \]
TF-IDF和余弦相似度应用:自动提取关键字;找出相似文章;自动摘要

profile的可能性
  • 加权平均值
  • 变种:不采用均值,而是给与不同的权重
预测

profile \(x\) 和item特征集合 \(i\) 的相关度:\(u(x, i) = cos(x, i) = \frac{x·i}{||x||·||i||}\)

Pros vs. Cons

优点:

  • 不需要其他用户的数据
  • 能够向用户推荐独特的口味
  • 能够推荐新的和不受欢迎的item
  • 能够提供解释

缺点:

  • 找到合适的特征很难
  • 很难向新用户推荐(user profile构建困难)
  • 无法挖掘出用户的潜在兴趣:从不推荐用户user profile以外的内容;人们可能有多种兴趣;不能利用其它用户的质量判断

2 协同过滤Collaborative

主要思想:对于用户 \(x\),找到\(N\)个与 \(x\) 有相似评价的用户,基于这\(N\)个用户的评价估计 \(x\) 的评价

找相似用户

对于用户 \(x\),其评价向量为 \(r_x\)

  • Jaccard相似度:忽略了评价的值(适用于处理无打分的偏好数据,即0/1)

    \(w_{u, v} = \frac{|N(u) \cap N(v)|}{|N(u) \cup N(v)|}\)

  • 余弦相似度:对于没有评价的值,看作negative的(解决方法:减去行均值,即去中心化,让均值为0)

    \(sim(x, y) = cos(r_x, r_y) = \frac{r_x·r_y}{||r_x||·||r_y||}\)

  • 皮尔逊相关系数\(S_{xy}\),被 \(x\)\(y\) 共同评价的item(输出范围[-1, 1])

    \[sim(x, y) = \frac{\sum_{s\in{S_{xy}}}(r_{xs}-\overline{r_x})(r_{ys}-\overline{r_y})}{\sqrt{\sum_{s\in{S_{xy}}}(r_{xs}-\overline{r_x})^2}\sqrt{\sum_{s\in{S_{xy}}}(r_{ys}-\overline{r_y})^2}}\]

从相似度到推荐

\(r_x\) :用户\(x\)的评价;\(N\)\(k\)个评价过item \(i\)的最相似用户;\(S_{xy} = sim(x, y)\)\(x\)\(y\)的相似度

\(r_{xi} = \frac{1}{k}\sum_{y \in N}r_{yi}\)\(x\)\(i\)的评价,即\(y\)个用户对\(i\)评价的均值

\(r_{xi} = \frac{\sum_{y \in N}S_{xy}·r_{yi}}{\sum_{y \in N}S_{xy}}\) ,即\(y\)\(x\)的相似度越高,其评价权重越大

\(\cdots\),还有很多种其他的预测选择。

item-item 协同过滤

对于item \(i\),找到其他相似的item,基于其他相似item的评分估算user \(x\) 对item \(i\)的评分

\[ r_{xi} = \frac{\sum_{j \in N(i;x)}S_{ij}·r_{xj}}{\sum_{j \in N(i;x)}S_{ij}} \]
其中\(N\)是与\(i\)相似的被\(x\)评价过的item集合。

在实践中,对偏差进行建模,得到更好的估计:
\[ r_{xi} = b_{xi} + \frac{\sum_{j \in N(i;x)}S_{ij}·(r_{xj}-b_{xj})}{\sum_{j \in N(i;x)}S_{ij}} \]
其中\(b_{xi} = \mu + b_x + b_i\),即baseline estimate for \(r_{xi}\)\(\mu\)为所有评分平均值,\(b_x\)为user评分偏差,\(b_i\)为item评分偏差。

user-user 系统过滤

同上

在实际中,item-item比user-user表现更好,因为item的简单的,user有不同的口味
Pros vs. Cons

优点:

  • 对于各种item都适合,不需要选择item特征

缺点:

  • 冷启动:需要足够的用户来做推荐

  • 稀疏矩阵:找到评论过相同item的用户很困难

  • 第一个评价者:不能根据以前没有被评价过的item进行推荐(新item,内行的item)
  • 流行偏向:不能根据某人独特口味推荐;趋向于推荐流行的

混合方法
  • 实现多种推荐系统,结合预测(可能使用线性模型)
  • CF主,CB辅(对于新item,新user都可以解决)

问题讨论

评价

用ground truth作为test data set,看恢复精度如何

  • 均方根误差RMSE \(\sqrt{\sum_{xi}(r_{xi}-{r_{xi}^*})^2}\)
  • 精确度在前10的
  • 排序相关性

0/1模型

  • 覆盖率:系统可以做出预测的item/user数量
  • 精确度:预测精确度
  • 接收者操作特征ROC:判断错误的取舍曲线(AUC[Area under Curve]:ROC曲线下的面积,介于0.1和1之间。AUC作为数值可以直观的评价分类器的好坏,值越大越好。)
预测错误

没有关注到的点:

  • 预测多样性
  • 预测上下文
  • 预测顺序

实际上,我们只关心评价高的。

复杂度 / 性能

找到最相似的k个用户花费巨大:\(O\|X\|\)(可以预先计算)

处理手段:

  • LSH:用于海量高维数据的近似最近邻快速查找技术——局部敏感哈希
  • 聚类
  • 降维
提示
  • 很多时候,简单的算法也有好的效果
  • 引入外部的知识数据
  • 更多的数据优于算法

3 基于潜因子的推荐Latent factor based

下节讲

转载于:https://www.cnblogs.com/angelica-duhurica/p/10882264.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值