推荐系统基本框架
推荐系统的基本模型一般有以下三个部分构成:
- User
- Item
- Rating
每个User可以有自己的一些属性(Attribute),如喜好、偏向等。这个属性可以通过对用户的行为进行统计得出,如统计该用户阅读新闻的主题等。在Content Based Filtering算法中,会利用此数据对用户进行基于内容的推荐。
类似的,每个Item也有自己的属性,例如风格(style)、流派(genre)、电影的导演、演员、主题等。在Content Based Filtering中,可通过计算Item自己的属性向量与User的属性向量的夹角余弦值来衡量该Item与User的相似程度,并据此进行推荐。
Rating是整个推荐系统最重要的数据。在User-User CF算法和Item-Item CF算法中,都起到计算相似度的重要作用。此外,对缺失的评分数据进行预测也是通过他人的Rating进行加权得到的。
三者关系图如下:
推荐算法分类
推荐算法大体可以分为以下几类:
- 非个性化推荐
- 基于内容的过滤(Content Based Filtering)
- Information Retrieve
- Knowledge Based
- 联合过滤(Collaborative Filtering)
- User-User CF
- Item-Item CF
- Dimensionality Reduction
其中非个性化推荐指不涉及到用户属性的推荐,如餐馆推荐,在不考虑用户口味、距离等因素的情况下,可以通过简单的统计给出各个餐馆的Rating,并据此得到推荐的Top N List。当然,要考虑评分作弊、评分的时效性和用户评分习惯等因素。
再比如,超市捆绑销售推荐。如果我们通过统计观测到很多用户买了
X
的同时,买了商品
Content Based Filtering是指考虑用户的属性的一种过滤。如某个技术专栏中有Android、大数据、云计算、机器学习等主题的文章,我们可以通过统计用户
u
阅读各个主题的文章数,得出用户属性向量,如
Collaborative Filtering是指利用其它人/物的Rating来预测缺失的评分。在User-User CF算法中,我们首先计算用户间的相关度(Correlation),然后再根据用户对特定Item的Rating与Correlation加权平均得出缺失的Item的评分。
与之类似,Item-Item CF算法也是利用相似度与评分进行加权得出缺失Item评分的一种方法,不同的是Item-Item CF计算的是Item间的相似度。如我买了商品
i1,i2,i3
,系统计算某个我没买过的商品
i4
与其他三个商品的相似度,并给出预测评分