推荐算法

来源:互联网 发布:百色广电网络电视 编辑:程序博客网 时间:2024/05/07 14:34

最近刚刚参加实习,主要工作是做推荐算法,下面主要总结一下这几天看到的内容。

常用的推荐算法:

1,基于内容的推荐算法;

2,协同过滤的推荐算法;

3,基于关联规则推荐;

4,基于效用的推荐;

常用的推荐算法适用场景也不一样,基于内容的推荐算法和协同过滤的推荐算法比较适合向有意向但是还没有购买的用户进行推荐,而基于关联规则的推荐算法更适用于已经购买了

这一篇文章主要介绍一下基于内容的推荐算法(Content-based Recommendations ),其他算法在后续文章中陆续介绍。

基于内容的推荐算法,说白了就是根据用户以往浏览的内容或者项目(本文称为项目Item)来为用户推荐相似度高的item。
基于内容的推荐算法主要分为三步:

第一步:

提取item的特征:提取item的一些特征主要是为了方便表示item;

第二步:

提取用户的喜好特征:根据用户以往对item的喜好来学习出用户的喜好特征;

第三步:

根据用户的喜好特征为用户推荐最相似的item;

下面详细介绍一下各个步骤:

第一步:提取item特征

现实中每个item都会有很多属性。属性一般可以分为两类:结构化的属性和非结构化的属性。结构化属性是指属性的意义比较明确,其取值限定在某个范围;而非结构化的属性往往其意义不太明确,取值也没什么限制,不好直接使用。比如对一篇文档来说,文档大小等就是结构化属性,而文档的内容就是一种非结构话的属性。

第二步:用户喜好特征

在这一步中,机器学习中的一些分类聚类算法都可以使用,下面给出CB中常用的一些算法,详细内容后面陆续补充:

1. 最近邻方法(k-Nearest Neighbor,简称kNN);


2. Rocchio算法;

3.决策树算法(Decision Tree,简称DT);

4. 朴素贝叶斯算法(Naive Bayes,简称NB)

第三步:推荐

可以使用consine度量模型;

基于内容推荐的优点:

1. 用户之间的独立性(User Independence):既然每个用户的profile都是依据他本身对item的喜好获得的,自然就与他人的行为无关。

2. 好的可解释性(Transparency):如果需要向用户解释为什么推荐了这些产品给他,你只要告诉他这些产品有某某属性,这些属性跟你的品味很匹配等等。

3. 新的item可以立刻得到推荐(New Item Problem):只要一个新item加进item库,它就马上可以被推荐,被推荐的机会和老的item是一致的。

基于内容推荐的缺点:

1. item的特征抽取一般很难(Limited Content Analysis)

2. 无法挖掘出用户的潜在兴趣(Over-specialization):既然CB的推荐只依赖于用户过去对某些item的喜好,它产生的推荐也都会和用户过去喜欢的item相似。如果一个人以前只看与推荐有关的文章,那CB只会给他推荐更多与推荐相关的文章,它不会知道用户可能还喜欢数码。

3. 无法为新用户产生推荐(New User Problem):新用户没有喜好历史,自然无法获得他的喜好,所以也就无法为他产生推荐了。


参考:http://www.cnblogs.com/breezedeus/archive/2012/04/10/2440488.html


0 0
原创粉丝点击