【T-BABY 夜谈大数据】基于内容的推荐算法

这个系列主要也是本身最近在研究大数据方向,因此边研究、开发也边整理相关的资料。网上的资料常常是碎片式的,若是要完整的看完可能须要同时看好几篇文章,因此我但愿有兴趣的人可以更轻松和快速地学习相关的知识。我会尽量用简单的方式去简介一些概念和算法,尽量让没有工科基础的人也能大体了解。算法

简单讲解学习

基于内容的推荐算法是很是常见的推荐引擎算法。大数据

这种算法经常使用于根据用户的行为历史信息,如评价、分享、点赞等行为并将这些行为整合计算出用户的偏好,再对计算推荐项目与用户偏好的类似度,将最类似的推荐给用户。例如在书籍推荐中,能够根据用户已经看过或者评分的书籍的一些共性(好比做者、分类、标签)再推荐给用户类似度高的书籍。开发

基于内容推荐能够经过两种方式,一个是像上面所说经过用户的行为进行个性化推荐,可是上面的推荐方式很依赖用户的数据、不利于没有用户数据状况下的冷启动。通常适合商品很少、用户有特殊兴趣的状况。文档

第二种就是根据事物的相关性,这种方式是经过比较事物之间共有属性的类似度来进行推荐,例如若是A用户喜欢Dota2,Dota2是属于竞技类网游,那么A用户就有可能喜欢英雄联盟。原型

这种方式的好处就是能够不依赖用户的行为,可是要求事物的内容是准确和完善的而且是没有歧义的,不过也能够经过手动输入标签的方式来解决这个问题。数学

相关算法io

1.基于关键词的空间向量模型基础

关键词通常经过TF-IDF来进行提取,TF-IDF是一种经常使用的加权计算方法,它是基于统计学的方法,通常用来评估一个词在一段话或一篇文章中的重要性。扩展

TF-IDF对区别文档最有意义的词语应该是那些在文档中出现频率高,而在整个文档集合的其余文档中出现频率少的词语,因此若是特征空间坐标系取TF词频做为测度,就能够体现同类文本的特色。

另外考虑到单词区别不一样类别的能力,TF-IDF法认为一个单词出现的文本频数越小,它区别不一样类别文本的能力就越大。所以引入了逆文本频度IDF的概念,以TF和IDF的乘积做为特征空间坐标系的取值测度,并用它完成对权值TF的调整,调整权值的目的在于突出重要单词,抑制次要单词。

有不少不一样的数学公式能够用来计算TF-IDF。

若是某个词或短语在一篇文章中出现的频率TF(词频)高,而且在其余文章中不多出现,则认为此词或者短语具备很好的类别区分能力,适合用来分类。TFIDF其实是:TF * IDF,TF词频(Term Frequency),IDF反文档频率(Inverse Document Frequency)。TF表示词条在文档d中出现的频率。IDF的主要思想是:若是包含词条t的文档越少,也就是n越小,IDF越大,则说明词条t具备很好的类别区分能力。若是某一类文档C中包含词条t的文档数为m,而其它类包含t的文档总数为k,显然全部包含t的文档数n=m+k,当m大的时候,n也大,按照IDF公式获得的IDF的值会小,就说明该词条t类别区分能力不强。

词频 (TF) 是一词语出现的次数除以该文件的总词语数。假如一篇文件的总词语数是100个,而词语“母牛”出现了3次,那么“母牛”一词在该文件中的词频就是 0.03 (3/100)。一个计算文件频率 (DF) 的方法是测定有多少份文件出现过“母牛”一词,而后除以文件集里包含的文件总数。因此,若是“母牛”一词在1,000份文件出现过,而文件总数是 10,000,000份的话,其文件频率就是 0.0001 (1000/10,000,000)。最后,TF-IDF分数就能够由计算词频除以文件频率而获得。以上面的例子来讲,“母牛”一词在该文件集的TF- IDF分数会是 300 (0.03/0.0001)。这条公式的另外一个形式是将文件频率取对数。

向量空间模型是经过进行特征选择计算,经过加权公式将文本转化为数值的一种形式。这样就能够将向量空间模型经过计算获得类似度。

咱们能够将用户的喜爱以文档描述并转换成向量模型,对商品也是这么处理,而后再经过计算商品文档和用户偏好文档的余弦类似度。

有关余弦类似度和TF-IDF详细能够等下一篇文章。

2.Rocchoi算法

Rocchio算法,是一种高效的分类算法,普遍地被应用到文本分类,查询扩展等领域。它经过构造原型向量的方法获得最优解。

Rocchio算法应该算是人们思考文本分类问题时最早能想到,也最符合直觉的解决方法。基本的思路是把一个类别里的样本文档各项取个平均值(例如把全部 “体育”类文档中词汇“篮球”出现的次数取个平均值,再把“裁判”取个平均值,依次作下去),能够获得一个新的向量,形象的称之为“质心”,质心就成了这 个类别最具表明性的向量表示。再有新文档须要判断的时候,比较新文档和质心有多么相像(八股点说,判断他们之间的距离)就能够肯定新文档属不属于这个类。

经过上述的这两种算法就能够判断内容之间是否类似从而进行推荐。

相关文章
相关标签/搜索