1 基本概念:
user :用户
item被推荐的项目或者内容
2 推荐引擎分类
2.1根据被推荐者分类:大众推荐引擎,个性化推荐引擎( 针对个人用户)
2.2根据推荐原理:Demographic-based(通过用户的相关性) ,Content-based Recommendation(通过内容的相关性),协同过滤推荐
2.2.1基于用户统计学,例如根据用户性别,年龄,地址等分类分成合适的数量的类别,
其实属于使用用的属性标签转化,进行聚类,可以近似划分成与文本向量接近的数据结构进行聚类
每个用户可以看成一个doc,用户的属性看成key,用户属性的值,作为value,可以做转换成数值或者布尔,例如
user1
post-code:1(邮编,做地理分析)
Gender:0(0表示男,1表示女)
xueli: (学历)
age:1(1表示儿童,2表示青少年 3 表示中年 4表示老年)
2.2.2基于内容相关性是对浏览的信息,或者购买的信息,待推荐的信息,进行基于tfidf频次的聚类
2.2.3协同过滤推荐,是基于user与item的相关性分析。
2.3根据推荐模型的建立方式:
- 基于物品和用户本身的,这种推荐引擎将每个用户和每个物品都当作独立的实体,预测每个用户对于每个物品的喜好程度,这些信息往往是用一个二维矩阵描述的。由于用户感兴趣的物品远远小于总物品的数目,这样的模型导致大量的数据空置,即我们得到的二维矩阵往往是一个很大的稀疏矩阵。同时为了减小计算量,我们可以对物品和用户进行聚类, 然后记录和计算一类用户对一类物品的喜好程度,但这样的模型又会在推荐的准确性上有损失。
- 基于关联规则的推荐(Rule-based Recommendation):关联规则的挖掘已经是数据挖掘中的一个经典的问题,主要是挖掘一些数据的依赖关系,典型的场景就是“购物篮问题”,通过关联规则的挖掘,我们可以找到哪些物品经常被同时购买,或者用户购买了一些物品后通常会购买哪些其他的物品,当我们挖掘出这些关联规则之后,我们可以基于这些规则给用户进行推荐。
- 基于模型的推荐(Model-based Recommendation):这是一个典型的机器学习的问题,可以将已有的用户喜好信息作为训练样本,训练出一个预测用户喜好的模型,这样以后用户在进入系统,可以基于此模型计算推荐。这种方法的问题在于如何将用户实时或者近期的喜好信息反馈给训练好的模型,从而提高推荐的准确度。
PS:
参考资源:
http://www.ibm.com/developerworks/cn/web/1103_zhaoct_recommstudy1/index.html?ca=drs-#ibm-pcon
http://www.ibm.com/developerworks/cn/web/1103_zhaoct_recommstudy2/index.html?ca=drs-#ibm-pcon
http://www.ibm.com/developerworks/cn/web/1103_zhaoct_recommstudy3/index.html?ca=drs-#ibm-pcon
https://cwiki.apache.org/confluence/display/MAHOUT/Itembased+Collaborative+Filtering
https://cwiki.apache.org/confluence/display/MAHOUT/Collaborative+Filtering+with+ALS-WR
3 todo