协同过滤的优点和缺点
协同过滤的相关知识点介绍完毕,现在对其优缺点进行总结。
优点
- 无需领域知识:不需要掌握专门的领域知识,因为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)一列,表示其侧面特征。
后续将介绍基于深度学习的推荐方法,感谢。