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

简单讲解

基于内容的推荐算法是非常常见的推荐引擎算法。

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

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

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

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

相关算法

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

通过上述的这两种算法就可以判断内容之间是否相似从而进行推荐。

【T-BABY 夜谈大数据】基于内容的推荐算法的更多相关文章

  1. 新闻推荐系统:基于内容的推荐算法(Recommender System:Content-based Recommendation)

    https://blog.csdn.net/qq_32690999/article/details/77434381 因为开发了一个新闻推荐系统的模块,在推荐算法这一块涉及到了基于内容的推荐算法(Co ...

  2. 大数据算法->推荐系统常用算法之基于内容的推荐系统算法

    港真,自己一直非常希望做算法工程师,所以自己现在开始对现在常用的大数据算法进行不断地学习,今天了解到的算法,就是我们生活中无处不在的推荐系统算法. 其实,向别人推荐商品是一个很常见的现象,比如我用了一 ...

  3. Recommender Systems基于内容的推荐

    基于内容的推荐的基本推荐思路是:用户喜欢幻想小说,这本书是幻想小说,则用户有可能喜欢这本小说 两方面要求:(1)知道用户的喜好:(2)知道物品的属性 基于内容的推荐相比协同过滤方法(个人观点):协同过 ...

  4. 大数据学习之BigData常用算法和数据结构

    大数据学习之BigData常用算法和数据结构 1.Bloom Filter     由一个很长的二进制向量和一系列hash函数组成     优点:可以减少IO操作,省空间     缺点:不支持删除,有 ...

  5. elasticsearch使用More like this实现基于内容的推荐

    基于内容的推荐通常是给定一篇文档信息,然后给用户推荐与该文档相识的文档.Lucene的api中有实现查询文章相似度的接口,叫MoreLikeThis.Elasticsearch封装了该接口,通过Ela ...

  6. 推荐系统第5周--- 基于内容的推荐,隐语义模型LFM

    基于内容的推荐

  7. ElasticSearch java API-使用More like this实现基于内容的推荐

    ElasticSearch java API-使用More like this实现基于内容的推荐 基于内容的推荐通常是给定一篇文档信息,然后给用户推荐与该文档相识的文档.Lucene的api中有实现查 ...

  8. GIS+=地理信息+行业+大数据——基于云环境流处理平台下的实时交通创新型app

    应用程序已经是近代的一个最重要的IT创新.应用程序是连接用户和数据之间的桥梁,提供即时訪问信息是最方便且呈现的方式也是easy理解的和令人惬意的. 然而,app开发人员.尤其是后端平台能力,一直在努力 ...

  9. 贾扬清谈大数据&AI发展的新挑战和新机遇

    摘要:2019云栖大会大数据&AI专场,阿里巴巴高级研究员贾扬清为我们带来<大数据AI发展的新机遇和新挑战>的分享.本文主要从人工智能的概念开始讲起,谈及了深度学习的发展和模型训练 ...

随机推荐

  1. Contiki进程间的交互

    之前都是从各个模块开始看起,从底层开始看起.应该改变一下思路,从高往下看,站得高看得远. 一.Main函数 源码:contiki-release-2-7\platform\stm32test\cont ...

  2. wordpress,cos-html-cache静态化后,点击数失效问题的解决方案

    装了wordpress cos-html-cache 静态插件后,生成了静态文件,post-views等点击数插件就失效了, 找了一些,包括有个js版本的,需要用到post-views插件,我也不想装 ...

  3. elasticsearch ——id字段说明,内部是_uid

    _id field Each document indexed is associated with a _type (see the section called “Mapping Typesedi ...

  4. JQuery UI - resizable调整区域大小

    JQuery UI - resizable   ·概述 resizable插件可以让选中的元素具有改变尺寸的功能. 官方示例地址:http://jqueryui.com/demos/resizable ...

  5. php设置文件编码

    <?php @header('Content-type: text/html;charset=UTF-8'); ?>

  6. C++中两个类相互包含引用问题

    在构造自己的类时,有可能会碰到两个类之间的相互引用问题,例如:定义了类A类B,A中使用了B定义的类型,B中也使用了A定义的类型 class A { int i; B b; } class B { in ...

  7. 苹果手机app试玩赚钱平台汇总

    注意: 微信扫码下载,绑定手机号和微信.才能提现 每天3点更新任务,4点最多! | 平台 | 提现额 | 任务量| 推荐强度 | 扫码 | 1.小鱼,10元,大量,强推! →点开扫码 2.天天飞燕,5 ...

  8. Unity-2017.2官方实例教程Roll-a-ball(二)

    声明: 本文系转载,由于Unity版本不同,文中有一些小的改动,原文地址:http://www.jianshu.com/p/97b630a23234 上一节Unity-2017.2官方实例教程Roll ...

  9. 用CSS实现新闻轮播效果

    CSS: /* Make it a marquee */ .marquee { width: 450px;margin: 0 auto;overflow: hidden;white-space: no ...

  10. Words Gems

    所有的东西都来自抄袭.来自学习.不同的是用新的方法做其他公司做过的事情.很多公司做同样的事情,但只有一家公司最成功.你要发现一个有需求的服务,并做得比别人更好,而不是比别人更早.