分析:基于文本内容推荐和协同过滤推荐
发布时间:2018-08-27 15:46:21
进入详细




图片版权所属:站长之家 当用户看完某个感兴趣的事物时,推荐系统会给你推荐类似你喜欢的东西,而本文主要分析一下关于协同过滤推荐和基于文本内容推荐的这两种推荐方式。 文/SincerityY
(1)需求背景


  • 当用户表示出对一些内容感兴趣的时候,满足用户的一个拓展的兴趣;比如:feed流产品,让你对新的内容既有熟悉感并且有新颖感,这样的话就能够促进用户进一步内容消费。
  • 一般是在内容消费完结时推荐,比如:看完一部小说,会给你推荐通类型的小说,看完一部钢铁侠的电影,会给你推荐钢铁侠系列电影。
    相似内容推荐的核心逻辑——即推荐用户在当前当刻下最感兴趣的或者与这个内容最相似的一个内容。
    (2)业务目标
    业务目标:推荐内容用户消费行为的最大化
    (3)衡量标准


  • 简单的方式就是CTR的方式,用户点击的数量/推荐的数量。
  • 用户行为消费的深浅,比如:一个网页的用户停留事件,网页的浏览完成时间。

    基于文本内容推荐Content-base
    1. 基本原理使用内容的元数据,或者针对内容的自身的分析,对于任意内容A、B,计算AB之间两两相似度Sab,推荐给用户相似度最高的N个内容。
    2. 关键路径

    (1)定义度量标准
    标准类似于坐标轴,例如:人有很多属性,性别、年龄、身高、体重、文化程度、专业技能等。 这些共同构成的一个多维空间,每一个特定的人,在每一个维度上面都会有一个具体的值,这样就实现对一个特定人的量化表示。实现从一个人的个体到一个N维度的向量的一个映射,并且由于面对的需求不一样,我们构建的一个特征空间可能是不一样的。 继续上面的例子,如果我们要挑选好的战士,那么特征空间可能就包括性别、年龄、身高、体重,等维度基本就够了。那如果要挑选好的产品经理,这些维度肯定不不够全面。
    (2)对内容进行量化
    对各个内容,如:文章、商品,通过上面定义的维度进行量化。
    (3)计算相似度

  • 算距离度量,及文本在立体在空间上存在的距离,距离越远说明个体间的差异越大。
  • 算相似度度量,相似度度量的值越小,说明个体间相似度越小,差异越大。 [/ol]距离度量和相似度量是负相关的——距离小、“离得近”、相似度高;距离大、“离得远”、相似度低。
    3. 举例

    (1)定义度量标准:
    全体有益的词,如果两篇文章中相同的词汇越多,则认为两篇文章越相似。 首先我们需要对文章进行处理,通过切词,去掉没有意义的形容词,得到关键词的一个集合,这样完成了一篇文章到一个集合的映射。
    (2)对内容进行量化
    如果直接对关键词量化,首先想到的是统计一下文档中每个词出现的频率(TF),词频越高,这个词就越重要。但是统计完你可能会发现你得到的关键词基本都是“的”、“是”、“为”这样没有实际意义的词(停用词)。因此,我们需要通过TF-IDF的方法进行预处理。 TF-IDF指在上出现得越频繁的一些词,也就是说越是大众货色的词。那我们认为,对于区分不同内容的贡献度就越低。他们的权重应该降低,这个权重就是(IDF)。











    字词的重要性随着它在文件中出现的次数成正比增加,但同时会随着它在语料库中出现的频率成反比下降。 举一个例子说明一下:

  • 文章1:我喜欢动漫电视剧;
  • 文章2:我爱科幻动作电影;
  • 文章3:我喜欢动画科幻电影。












    在计算IDF时,如果该词语不在语料库中,就会导致被除数为零,因此一般情况下会加 1 为了简便计算,分母只包含改词的文档数,公式如下:



    计算结果如下:





  • 文章1:(0.045,0,0.12,0,0.045,0,0,0)
  • 文章2:(0,0.096,0,0.036,0,0.096,0.096,0.036)
  • 文章3:(0.036,0,0,0.036,0.036,0,0.036,0)
    在此过程中完成了文章向向量的转化。
    (3)计算相似度

    算距离度量常用的算法:

    欧式距离
    欧式距离是最常见的距离度量,衡量的是多维空间中各点之间的绝对距离,公式如下:



    根据距离度量越大差异越大,相似度如下:
    文章1,文章3> 文章2,文章3> 文章1,文章2。

    闵可夫斯基距离




    P是一个变参数,当 P=1 时,就是曼哈顿距离当 P=2 时,就是欧氏距离。
    曼哈顿距离
    和欧氏距离非常相似(把平方换成了绝对值,拿掉了根号),公式如下:




  • Dist(文章1,文章2=|0.045|+|0.096|+|0.12|+|0.036|+|0.045|+|0.096|+|0.036|=0.47
  • Dist(文章1,文章3)=0.21
  • Dist(文章2,文章3)=0.264 [/ol]与欧式距离结果类似。
    算相似度度量, 常用的算法:

    余弦相似度
    余弦相似度用向量空间中两个向量夹角的余弦值,作为衡量两个个体间差异的大小。相比距离度量,余弦相似度更加注重两个向量在方向上的差异,而非距离或长度上。 公式如下:







    根据相似度量越小,相似度如下:
    文章1,文章3> 文章2,文章3> 文章1,文章2。
  • 更多文章 进入论坛 我要发帖