一、推荐算法基础
两类基本对象:1、用户(user);2、商品(item)
除了用户-商品的交互信息外,其他可以利用的数据包括:
(1)商品的信息,包括商品的价格、类型等;
(2)用户的信息,如用户的性别、年龄、居住地点等。
推荐算法分类:
(1)基于内容的推荐算法;
(2)基于协同过滤的推荐算法。
基于内容的推荐算法:利用商品的相关信息为每件商品构建一个特征向量来表示对应的商品。
基于协同过滤的推荐算法:利用用户和商品之间的相互关系来构建推荐模型和进行推荐。所谓协同过滤:就是找出类似的用户或者商品(这一阶段可以成为“协同”),再利用类似用户的喜好或者类似商品所受到的评价情况,来预测用户对商品的喜好程度并挑出最喜欢的商品(这一阶段可以成为“过滤”)
用户和商品的关系rui的形式可以通常分为4类:
(1)标量型或者数值型
(2)排序型
(3)布尔型
(4)一元值型
协同过滤算法可以进一步分为以下两类算法:
(1)基于矩阵分解的推荐算法
(2)基于领域的推荐算法(可继续分为基于商品的领域推荐算法和基于用户的领域推荐算法)
评价信息中商品的长尾分布:在所有的评价信息中,一小部分商品出现的频率很高,而大部分商品的出现频率很低
二、常用符号
用户集记为U,商品集记为I。用户的总数记为m,商品的总数记为n,即m=|U|,n=|I|。特别地,使用u,v来作为用户的下标,而使用i,j,l作为商品的下标。
将所有的rui放在一个矩阵中,其中每一行对应一个用户,每一列对应一件商品。称这个矩阵为评价矩阵,并记为R。
对于用户u,把他所评价过的商品集记为I(u)
对于商品I,把所有评价过它的用户集记为U(i)$
三、推荐算法的评价标准
在计算推荐算法的评价标准时,假设我们有一个单独的测试集记为T。
平均绝对误差(MAE):
均方根误差(RMSE):
假设对于用户u,推荐了k件商品,按照模型预测的用户对商品的喜好程度从高到低排列,把排好的顺序记为L(u),在测试集T中,把用户u购买的商品记为Itest(u),则精确率和召回率为:
精确率:
召回率:
精确率越高,表示返回的结果L中很多都是用户真正购买的商品。
召回率反映了我们能够在多大程度上预测用户所购买的商品信息。
在返回的序列L中,可以进一步给每个商品根据其在L中的位置赋予不同的权重,位置越高,权重越大。一般采用这种策略的评价标准称为平均反击中率