作者为amazon的Greg Linden, Brent Smith, and Jeremy York。
内容概要:
1. 传统的user-based协同过滤算法,复杂度为O(MN),其中M为用户数量,N为商品数量。由于大部分的用户购买都很稀疏,只有极少数用户可能购买了大量商品,因此复杂度可以简化至O(M+N)。然而这个算法受用户数和商品数影响较大,在大多数大型系统中较难应用。
2. 基于聚类的推荐。首先使用聚类算法将用户分群,然后为用户推荐本群内其他用户购买的商品。聚类可以离线计算,因而具有较好的可扩展性,但是推荐质量受聚类的精确度影响较大。如果聚类不太准确,则推荐质量下降较大。
3. 基于搜索的推荐。这个主要就是content-based的方法。通过标题、商品描述等属性计算相似度,然而content-based有可能会造成相似的过度拟合(比如标题一模一样的两本书),而且受场景限制较大,因而并不是很实用。
4. item-to-item的协同过滤算法。这个算法预先计算宝贝的相似度(跟计算用户相似度类似,只是向量由原来的用户之间的共同购买/评分宝贝变成宝贝之间的共同购买/评分用户)。由于该算法需要遍历任意两个宝贝对,以及这两个宝贝对的所有购买用户,因而复杂度为O(N^2*M)。同样由于大部分用户购买都较少,复杂度可以简化至O(MN)。该算法可以离线计算,并且更新较少,因此较为实用。