一、概念
推荐系统,并不是真的就要求做一个“系统”,而是为解决信息过载()Information overload)问题,应用协同智能(collaborative intelligence)做推荐的技术。
与搜索引擎对应,推荐系统也叫推荐引擎。但是推荐系统相对于搜索引擎来讲,更加倾向于针对没有明确目的人们。它会根据用户的历史行为、兴趣爱好、商品特征等因素进行分析,进而生成推荐结果。
二、分类及评价指标
1. 模型及分类
推荐系统的通用模型如下图1。推荐算法是整个推荐系统中最核心和关键的部分,在很大程度上决定了推荐系统类型和性能的优劣。
推荐算法基本包括以下几种:
- 基于内容的推荐
- 协同过滤推荐
- 基于知识的推荐
- 混合推荐
2. 推荐算法
1)基于内容的推荐
该方法是基于项目的相似度并通过最近邻获取与目标项目最相似的项目列表,然后把用户没有行为记录并且评分高的项目推荐给特定用户。
2)协同过滤推荐
协同过滤推荐一般分为两类:
基于用户的协同推荐:基于用户对物品的偏好找到相邻邻居用户,然后将邻居用户喜欢的推荐给当前用户。推荐过程如下图2所示。
基于物品的协同推荐:基于用户对物品的偏好找到相似的物品,然后根据用户的历史偏好,推荐相似的物品给他。推荐过程如下图3所示。
3)基于知识的推荐
对于一些物品来说会有很多的单次购买者,推荐系统就无法依赖购买记录。此时系统需要利用额外的因果知识生成推荐。
在这种基于知识的方法中,推荐系统通常会用到有关当前用户和有效物品的额外信息。
4)混合推荐
各种推荐方法都有各自的优缺点,在实际应用中可以针对具体问题采用推荐算法的组合进行推荐。
目的是通过组合不同的推荐策略,达到扬长避短的目的,从而产生更符合用户需求的推荐。
3. 评价指标
1)预测准确度
- 评分预测
用户 u u u,物品 i i i, r u i r_{ui} rui是用户 u u u对物品 i i i的实际评分,而 r u i ^ \hat{r_{ui}} rui^是推荐模型预测出的评分。
均方根误差(RMSE):
R M S E = ∑ u , i ∈ T ( r u i − r ^ u i ) 2 ∣ T ∣ RMSE = \sqrt{\frac{\sum_{u,i \in T}(r_{ui} - \hat{r}{ui})^2}{|T|}} RMSE=∣T∣∑u,i∈T(rui−r^ui)2
平均绝对误差(MAE):
M A E = ∑ u , i ∈ T ∣ r u i − r ^ u i ∣ ∣ T ∣ MAE = \frac{\sum_{u,i \in T}|r_{ui} - \hat{r}_{ui}|}{|T|} MAE=∣T∣∑u,i∈T∣rui−r^ui∣ - TopN推荐
R ( u ) R(u) R(u)为通过推荐模型得到的推荐列表, T ( u ) T(u) T(u)为用户在实际场景中(测试集)的行为列表。
精确率(precision):
分类正确的正样本个数占分类器判定为正样本的样本个数比例(这里 R ( u ) R(u) R(u)相当于是模型判定的正样本) P r e c i s i o n = ∑ u ∈ U ∣ R ( u ) ∩ T ( u ) ∣ ∑ u ∈ U ∣ R ( u ) ∣ Precision= \frac{\sum_{u \in U}|R(u) \cap T(u)|}{\sum_{u \in U}|R(u)|} Precision=∑u∈U∣R(u)∣∑u∈U∣R(u)∩T(u)∣
召回率(recall): 分类正确的正样本个数占真正的正样本个数的比例(这里的 T ( u ) T(u) T(u)相当于真正的正样本集合)
R e c a l l = ∑ u ∈ U ∣ R ( u ) ∩ T ( u ) ∣ ∑ u ∈ U ∣ T ( u ) ∣ Recall= \frac{\sum_{u \in U}|R(u) \cap T(u)|}{\sum_{u \in U}|T(u)|} Recall=∑u∈U∣T(u)∣∑u∈U∣R(u)∩T(u)∣
2)覆盖率
信息熵定义覆盖率: 其中 p ( i ) p(i) p(i)是物品 i i i的流行度除以所有物品流行度之和 H = − ∑ i = 1 n p ( i ) l o g p ( i ) H = -\sum_{i=1}^n p(i) logp(i) H=−i=1∑np(i)logp(i) 基尼系数定义覆盖率: 其中 i j i_j ij是按照物品流行度p从小到大排序的物品列表中第 j j j个物品 G = 1 n − 1 ∑ j = 1 n ( 2 j − n − 1 ) p ( i j ) G=\frac{1}{n-1} \sum_{j=1}^{n}(2j-n-1)p(i_{j}) G=n−11j=1∑n(2j−n−1)p(ij)
3)多样性
函数 s ( i , j ) s(i,j) s(i,j)为物品 i i i和物品 j j j的相似性,那么用户推荐列表的多样性可以定义为: D i v e r s i t y ( R ( u ) ) = 1 − ∑ i , j ∈ R ( u ) s ( i , j ) 1 2 ∣ R ( u ) ∣ ( ∣ R ( u ) ∣ − 1 ) Diversity(R(u))=1-\frac{\sum_{i,j \in R(u)}s(i,j)}{\frac{1}{2}|R(u)|(|R(u)|-1)} Diversity(R(u))=1−21∣R(u)∣(∣R(u)∣−1)∑i,j∈R(u)s(i,j) 推荐系统整体的多样性可以定义为所有用户推荐列表多样性的平均值: D i v e r s i t y = 1 U ∑ u ∈ U D i v e r s i t y ( R ( u ) ) Diversity = \frac{1}{U} \sum_{u\in U}Diversity(R(u)) Diversity=U1u∈U∑Diversity(R(u))
4)AUC曲线:一个正例,一个负例,预测为正的概率值比预测为负的概率值还要大的可能性。
5)其它还有:用户满意度、新颖性、惊喜度、信任度、实时性、健壮性、商业目标等指标。
本次学习时间太过仓促…以后改进。