一个推荐系统是基于用户评价的。评价分为显式的和隐式的。显式评价如直接给item评星。隐式评价有页面访问,点击,购买等。
两种推荐方法
基于内容 基于item的特征和用户profile进行推荐。适用于只有少量用户的系统。由于不依赖于其他用户的评价,刚发布的item即使没有评价,也有可能被推荐。这种方式需要精准和充足的item元数据,但难以将其扩展支持不同的item种类。因此适合垂直型的系统。
协同过滤 基于如下假设:之前评价相同的用户对新item的评价也相似。因此可以根据这些评价构建用户群体,将他们关联起来。推荐系统会对每个用户对任意item的评价产生一个预估,然后将预估分数最高的item推荐给用户。协同过滤只需要评价信息,无需item元数据。其算法有2种。
Nearest Neighborhood 构建用户对各商品评价的好感度向量。用余弦法等计算任意用户和其他用户之间向量的相似度。选出相似度最高的N个用户。最后将他们对各item好感度的均值作为向目标用户的推荐。Nearest Neighborhood方法不适用于稀疏数据。很可能一个用户和其他用户相似度都不高。
Matrix Factorization 建立一个用户-item的评分关联矩阵。矩阵的某个元素可能已经有值,这可以通过用户的评价来获得。但大多数元素是未知的,需要预测的。这里采用一种叫latent factor analysis的算法。该算法需要指定一个latent factor值,基于该值将原矩阵分解成两个子矩阵。