推荐系统常被问“它怎么知道我喜欢什么”。协同过滤的思路很朴素:找到和你口味相似的人,把他们喜欢而你没见过的东西推荐给你。人以群分,物以类聚,这就是核心。
基于用户的协同过滤先算用户之间的相似度,再汇总邻居的偏好打分。基于物品的协同过滤则看物品之间常被同时喜欢的关系,你买了A,就推荐常和A一起出现的B。
相似度常用余弦相似度或皮尔逊相关系数计算。数据稀疏时效果会打折,因为很多用户只评过少数物品,邻居关系难以可靠估计,于是又有了矩阵分解等方法。
协同过滤有明显局限:新用户和新物品缺少历史数据,存在冷启动问题。实际系统往往把协同过滤和内容特征、热度规则结合使用,取长补短。