基于内容的推荐系统

转自http://blog.sina.com.cn/s/blog_6f7265cf0101nbfm.html

推荐系统随处可见,比如推荐歌词、推荐广告、推荐文章,这里谈到的是基于内容的推荐系统。

基于内容的推荐(Content-based Recommendations),根据用户过去喜欢的产品,为用户推荐和他过去喜欢的产品相似的产品。主要包括以下三个步骤:

一、产品的表示,也可以称为特征的表示。产品可以包括图片、文章、数据等等,基本上可以分为两类,一类是结构化数据,可以直接明确其中的意义;另一类是非结构化数据,比如文章的内容,无法直接确定意义,通常需要转换。在转换的方法中常用的词频-逆文档频率(term frequency–inverse document frequency,简称TF-IDF)。词典里第k个词与第j篇文章中对应的TF-IDF值为:

基于内容的推荐系统

其中,TF()为第k个词在文章j中出现的次数,nk是所有文章中包括第k个词的文章数量。第k个词在文章j中的权重为:

基于内容的推荐系统

有了词在文章中的权重之后就可以表示出该文章的特征向量。哦也~

二、为用户的喜好建立模型,即profile。这里需要以前的该用户数据,也可以看成是监督学习。训练集就是用户数据,里面的类别就是喜好程度。简单介绍一些分类方法:
1.贝叶斯分类器

我们需要一个分类模型,即类条件概率和先验概率,这样每有一个候选集里的值都有一个后验概率。贝叶斯分类器的关键是类条件概率的计算。
贝叶斯分类器里很重要的一种算法是朴素贝叶斯分类器(Naive Bayes,简称NB)。
前提假设:每个词出现的概率相互独立。虽然假设不靠谱,但结果惊人的好。常被用来做文本分类,往往是很多分类为最先被尝试的算法。这里因为是朴素贝叶斯分类器,类条件概率相互独立,可以计算每个属性的条件概率值然后连乘。
另外还有贝叶斯信念网、高斯混合模型等算法,不再介绍。

2.决策树

当数据数量少而且是结构化属性,可以考虑。如若不然,例如文章,效果就不一定好,不多做介绍。

3.神经网络

也是输入输出的对应函数的一种模型,输出可以看成是喜好程度,不多做介绍。

4.专家系统

专家系统是源于里面有很多的推理规则。

5.最近邻

最近邻方法(k-Nearest Neighbor,简称kNN),也是分类器的一种,优点是不需要训练。

6.线性分类器

找到线性判决面,比如SVM。

7.最大熵

熵是度量数据的变化程度,可以反映出能量大小。用分布模拟出训练数据,使分布的熵最大化,即最大熵模型。

三、产生结果。有了模型之后,就可以针对候选集里的每一个数据进行模型值的估计,然后将最能匹配的前N个返回。
基于内容推荐的优点:

1.用户之间相互独立,profile只针对本人的模型训练。

2.易于理解。

3.新的候选集可以立即判定。

基于内容推荐的缺点:

1.特征抽取困难而且不太准确。

2.无法挖掘潜在兴趣。

3.新用户没有推荐。

 

目前大部分的推荐系统都是以其他算法为主(如协同过滤),而辅以基于内容推荐以解决主算法在某些情况下的不精确性(如解决新候选集问题)。

posted on 2014-09-23 16:43  ukouryou  阅读(553)  评论(0编辑  收藏  举报

导航