本文总结了多种推荐场景中的注意事项,或者推荐中比较关键的因素,不涉及算法描述,仅仅说明关注点,仅供参考。
推荐算法有很多种,从算法的角度来说,我认为主要由以下几种:协同过滤系列(基于item和user),机器学习分类系列(喜欢和不喜欢二分类,或者回归中的分值代表喜欢程度),矩阵分解系列(mahout ALS算法,netflix举行推荐大赛获奖算法),关联规则(电商常用)。本文将从以上几种系列进行总结。
一、协同过滤系列
协同过滤算法感觉是最热也是推荐最精准的算法之一。在SNS交友推荐中,目前协同过滤算法是最精准的算法(个人之见),原因有以下几点:1、交友网站中用户的基础属性不足以完全表达一个人,除非现在可以把人的相貌信息完全表达出来,毕竟陌生人交友首先看相貌。2、用户的行为已经将用户对其他用户的描述看法融入到动作中。
使用协同过滤注意事项:
1、用户的行为考虑尽量周全,可以将不同隐士行为给一定权值,将隐士行为综合起来得到显示的评分。
2、对推荐结果重新排序,达到利益最大化,像交友网站应该加入活跃因子和曝光因子,活跃因子升函数,曝光因子减函数,控制推荐活跃用户,保证用户曝光率均衡。
3、对于交友网站的推荐,正向推荐是用户可能喜欢的人,如果将行为用户和被行为用户顺序颠倒且评分值不变,这样推荐给被行为用户可能喜欢他的人,将两者取交集,就是可能双方互相喜欢,即推荐最高境界互惠型推荐。
4、 基于物品的协同过滤,相似度进行归一化有助于提高推荐的多样性。因为不同物品内部的相似度不平衡,有些物品内部的相似度较高,造成推荐结果倾向于该类物品。对于两个不同的类,什么样的类其类内物品之间的相似度高,什么样的类其类内物品相似度低呢?一般来说,热门的类其类内物品相似度一般比较大。如果不进行归一化,就会推荐
比较热门的类里面的物品,而这些物品也是比较热门的。因此,推荐的覆盖率就比较低。相反,如果进行相似度的归一化,则可以提高推荐系统的覆盖率。
5、在ItemBased CF中,Tanimoto系数比其他系数会得到更大的覆盖量,它不关心用户对物品的具体评分值是多少,它在关心用户与物品之间是否存在关联关系。这样导致了,不同物品之间的相似度平衡,不会偏向某个物品。
6、对基于用户的推荐系统来说,Pearson相关系数比其他对比用户的方法更胜一筹。基于物品的推荐来说,余弦相似度方法比Pearson相关度量表现更好。
7、降低流行物品的权重。很多领域存在一些很多人都喜爱的物品,让两个用户对有争议的物品(冷门物品)达成共识更有价值。可以使用反用户频率缓解。
8、基于物品的推荐来说,余弦相似度方法比Pearson相关度量表现更好。在基于物品的推荐算法中,余弦相似度由于效果精确,已经被证实是一种标准的度量体系。这种方法也被广泛用于信息检索和文本挖掘,用于比较两份文档,文档表示为词的向量。基本的余弦方法不会考虑用户评分平均分之间的差异,改进版的余弦方法能够解决这个问题,做法是在评分值中减去平均值,改进余弦方法的取值在-1和+1之间,就像pearson方法一样。
9、电商推荐中需要加入货品上架时间和购买时间因素,加入季节上下文因子。
二、机器学习分类系列
1、机器学习方式(逻辑回归、决策树、SVM)。使用历史数据中成功和失败的数据集,训练出模型,使用模型进行预测推荐。(成功案例和失败案例比较难把握)
2、机器学习方法一般会使用较多的属性,只包含基础属性效果会很差,如果包含的属性较多的话,很多用户的很多属性会为空,数据预处理比较麻烦。
3、很多模型会使用协同过滤推荐出数据,然后使用逻辑回归(使用关键属性指标)计算推荐数据推荐指数,对推荐数据进行排序。
三、矩阵分解系列
1、ALS算法在netflix大赛中取得了很好的效果,ALS在视频等少物品,多用户的推荐中比较容易发挥,因为此算法的准确度严重依赖于feature的数量,对于少物品的推荐特征值比较低,计算量较小。对于社交网站之类的推荐,推荐者与被推荐者都是人,数量集是一样的,此时如果使用ALS算法,feature数值将会非常高,计算量会巨大,feature数值缩小会导致推荐结果非常不准确。
2、矩阵分解系列在文本聚类中应用较多。
四、关联规则推荐
1、一般用于电商网站推荐,比如购买此物品的人还购买了什么。
2、电商网站物品摆放,一般也会依赖于关联规则进行调整
领域推荐注意事项:
SNS交友推荐:协同过滤推荐效果一般最佳,在推荐过程中保证用户曝光的均衡,弱化流行用户的推荐,发掘潜在用户。
电商网站推荐:关联规则推荐,协同过滤推荐(基于物品),关注新上架物品和季节性物品,弱化流行物品相似度,长尾物品的相似更有价值,长尾物品更能带动公司效益。
视频网站推荐:协同过滤,ALS算法,影评分析挖掘