推荐系列(五):协同过滤的优点和缺点

简介: 简单介绍协同过滤优缺点

协同过滤的优点和缺点

协同过滤的相关知识点介绍完毕,现在对其优缺点进行总结。

优点

  • 无需领域知识:不需要掌握专门的领域知识,因为embedding是自动学习得到的。
  • 更机缘巧合:该模型可以帮助用户发现新的兴趣。机器学习系统可能不知道用户对某个给定的项目感兴趣,但模型可能仍然推荐出它,因为相似用户对该项目感兴趣。
  • 好的起点:在某种程度上,系统仅需要反馈矩阵来训练矩阵分解模型(FM)。特别是,该模型不需要上下文特征。在实际应用中,该模型可以用作多个候选生成器之一。

缺点

  • 无法处理新项目 :给定(用户,项目)对的模型预测是相应embedding向量的点积。因此,如果在训练期间未看到的项目,则系统无法为其创建embedding,并且无法使用模型对此项目进行预测。这个问题通常被称为 冷启动问题。但是,下面的技术可以在一定程度上解决冷启动问题:

    • WALS投影 :给定一个新的项目 ${i_0u_{i_0}}$

$$ \min_{u_{i_0} \in \mathbb R^d} \|A_{i_0} - u_{i_0} V^T\| $$

​ 上述等式对应于WALS算法的迭代操作:用户的embedding向量保持固定,系统得到该项目$i_0$的embedding向量。

  • 启发式生成新项目的embedding:如果系统无法进行交互,系统可以通过平均来自相同类别项目的embedding来近似其嵌入。
  • 很难包含查询/项目的侧面特征侧面特征(side feature)是查询或项目ID之外的特征。比如,对于电影推荐而言,侧面特征可能是包括国家/地区或年龄。可用的侧面特征可提高模型的质量。尽管在WALS中包含侧面特征可能并不容易,但WALS的变体使这成为可能。

    通过定义块矩阵$A^-$来增加输入矩阵的特征

    • Block(0,0)是矩阵A的原始反馈矩阵;
    • Block(0,1)是用户特征的多热编码;
    • Block(1,0)是项目特征的多热编码;
      这里增加Block (1, 1)一列,表示其侧面特征。

后续将介绍基于深度学习的推荐方法,感谢。

目录
相关文章
|
自然语言处理 算法 数据挖掘
自蒸馏:一种简单高效的优化方式
背景知识蒸馏(knowledge distillation)指的是将预训练好的教师模型的知识通过蒸馏的方式迁移至学生模型,一般来说,教师模型会比学生模型网络容量更大,模型结构更复杂。对于学生而言,主要增益信息来自于更强的模型产出的带有更多可信信息的soft_label。例如下右图中,两个“2”对应的hard_label都是一样的,即0-9分类中,仅“2”类别对应概率为1.0,而soft_label
自蒸馏:一种简单高效的优化方式
|
3月前
|
程序员 API 调度
多线程的类别与优缺点
多线程的类别与优缺点
30 0
|
26天前
|
存储 SQL 分布式计算
Kylin的优点和缺点
Kylin(Apache Kylin)是一个开源的分布式分析数据仓库,专为处理大规模数据集和提供快速的多维分析(OLAP)能力而设计。
20 3
|
10月前
|
Java
Java多线程编程的优点和缺点
优点: 加快响应用户的时间:多线程允许并发执行多个任务,可以充分利用多核处理器,从而提高程序的性能和响应速度。比如我们经常用的迅雷下载,都喜欢多开几个线程去下载,谁都不愿意用一个线程去下载,为什么呢?答案很简单,就是多个线程下载快啊。 简化程序结构、模块化、异步化:例如我们实现电商系统,下订单和给用户发送短信、邮件就可以进行拆分,将给用户发送短信、邮件这两个步骤独立为单独的模块,并交给其他线程去执行。这样既增加了异步的操作,提升了系统性能,又使程序模块化,清晰化和简单化。 更好的资源利用:多线程可以更有效地使用计算机的资源,如CPU时间、内存和文件句柄等,提高了资源利用率。 支持并发编程:多线
756 0
|
3月前
分层模型的优点
分层模型的优点。
86 0
|
11月前
|
算法 搜索推荐
推荐算法的优点
推荐算法的优点
86 0
如何理解ALU的优点?
ALU是组合逻辑电路!
203 0
|
机器学习/深度学习 算法 Windows
算法的复杂性分析
算法的复杂性分析
278 0
算法的复杂性分析
|
测试技术
魂淡,难道你没有缺点吗?
魂淡,难道你没有缺点吗?
|
机器学习/深度学习 存储 搜索推荐
【推荐系统】推荐系统中分解共现矩阵的优点与局限性
【推荐系统】推荐系统中分解共现矩阵的优点与局限性
95 0