《推荐系统三十六式》内容推荐 学习笔记

 

1.重点归纳

1)用户画像是对用户信息的向量化表示,而且用户画像是给机器看的,而不是给人看的。

2)用户画像的关键元素是维度和量化,用户画像是跟着使用效果走,用户画像本身不是目的。

3)构建用户画像的手段:查户口做记录、堆数据作统计、机器学习黑盒子。

4)文本数据用户画像过程

(1)分析用户的文本和物品的文本,使其结构化

(2)为用户挑选有信息量的结构化数据,作为画像内容

5)基于内容的推荐一般是推荐系统的起步阶段,而且会持续存在,因为:

(1)内容数据始终蕴含丰富的信息量

(2)产品冷启动阶段,没有用户行为,别无选择

(3)新物品被推荐出去,首选内容推荐

2.画鬼容易画人难:用户画像的“能”和“不能”

1)什么是用户画像

(1)常见的用户画像出现在高大上的PPT上:用标签云方式绘制一个人的形状,或者在一个人物形象旁边列出若干人口统计属性,以此来表达“用户画像”这个概念。看上去非常炫酷,其实越是炫酷的用户画像越没什么用。因为用户画像是给机器看,不是给人看的。

(2)推荐系统的使命是在用户和物品之间建立连接。一般方式是,对用户和物品之间的匹配评分,也就是预测用户评分或者偏好。推荐系统在对匹配评分前,则首先就要将用户和物品都向量化,这样才能进行计算。

(3)用户画像不是推荐系统的目的,而是在构建推荐系统的过程中产生的一个关键环节的副产品。

2)大型推荐系统一般分为召回和排序两个阶段

因为全量物品数量非常大,无法为一个用户逐一计算每个物品的评分,这时候就需要一个召回阶段,就是预先筛选一部分物品,从而降低计算量,用户画像除了用于最终匹配评分,还要用在召回。

3)用户画像的关键因素:维度、量化和效果

  • 理论上来说是越多维度越好,但是画像越精细计算代价越大。
  • 用户画像是向量化结果,而不是标签化。标签化只是向量化的一种,因为向量的维度不一定需要人理解。
  • 以目标为导向,以推荐效果好坏来反向优化用户画像才有意义,要根据使用效果(排序好坏、召回覆盖等指标)来指导用户画像的量化,没有去管推荐效果而先行主观量化每个维度是大忌。

4)用户画像的构建方法

(1)查户口:直接使用原始数据作为用户画像的内容,如注册资料等人口统计学信息,或者购买历史,阅读历史等,数据本身并没有任何抽象和归纳。

(2)堆数据:堆历史数据,做统计工作,这是最常见的用户画像数据。从历史行为数据中挖掘出标签,然后在标签维度上做数据统计,用统计结果作为量化结果,如常见的兴趣标签。

(3)黑盒子:用机器学习方法学习出人类无法直观理解的稠密向量,也就是不被非技术人员重视,但是实际在推荐系统中承担的作用非常大。

3.从文本到用户画像有多远

1)文本数据

(1)用户端

  • 注册资料的姓名、个人签名
  • 评论、动态、日志
  • 聊天记录

(2)物品端

  • 标签、描述
  • 新闻资讯类物品本身
  • 物品的其他属性的文本

2)使用文本构建基础版用户画像步骤

(1)文本结构化

(2)根据用户行为数据把物品的结构化结果传递给用户,与用户自己的结构化信息合并。

3)文本结构化

(1)关键词提取:最基础的标签来源,也为其他文本分析提供基础数据,常用TF-IDF和TextRank算法。

    • TF-IDF
      • TF为词频,文本中出现的次数,一般会除以文本总次数进行归一化。
      • IDF为文档频率,与所有文本中出现关键词的文本数量N有关,n为总文本数。IDF=logNn+1
      • 得到每个词的权重后筛选关键词。指定Top K个词,或者取权重在权重平均值以上的词作为关键词。
    • TextRank
      • PageRank算法是google用来衡量网页重要性的算法,TextRank思想与之类似。
      • 通过TextRank计算后的词语权重,呈现出的特点:那些有共现关系的会互相支持对方成为关键词。计算方式:
        • 文本中设定一个窗口K个词,统计窗口内的词与词的共现关系,将其看作无向图
        • 所有词初始化重要性为1
        • 每个节点把自己的权重平均分配给与自己又连接的其他节点
        • 每个节点将其他节点分给自己的权重求和,作为自己的新权重
        • 反复迭代3、4步,直到所有节点权重收敛为止

(2)实体识别

    • 常被认为是序列标注问题,和分词、词性标注属于同一类问题
      • 分词问题:对每个字符分类为“词开始”、“词中间”、“词结束”三类之一
      • 词性标注:对每个分好的词,分类为定义的词性集合之一
      • 实体识别:对每个分好的词,识别为定义的命名实体集合之一
    • 对标注问题,常用的算法是隐马尔科夫模型(HMM)或者条件随机场(CRF)。
    • 工业基本工具spaCy比NLTK效率更好。

(3)内容分类

    • 内容的分类得到结构化信息,也被很多推荐系统用来在用户冷启动时探索用户兴趣。
    • 长文本内容分类可以提取很多信息,短文本内容分类更困难一些,短文本分类的经典算法是SVM,最常用的工具是fackbook开源的FastText。

(4)文本聚类

    • 传统聚类方法在文本中的应用,逐渐被主题模型取代。

(5)主题模型

    • LDA为代表的主题模型能够更准确地抓住主题,并且能够得到软聚类的效果,一条文本属于多个类簇。
    • 得到文本在各个主题上的分布,可以保留概率最大的前n个主题作为文本的主题。
    • LDA很难并行化,开源的LDA训练工具有Gensim、PLDA。

(6)嵌入(Word Embedding)

    • 前面除了LDA,其他得到一些标签,而这些标签都是稀疏的,而词嵌入能够为每个词学习得到一个稠密的向量。
    • 拿到这些稠密向量可以做以下事情
      • 计算词和词之间的相似度,扩充结构化标签
      • 累加得到一个文本的稠密向量
      • 用于聚类,会得到比使用词向量聚类更好的语义聚类效果
    • 工具有Word2Vec

4)标签选择

(1)得到标签(关键词、分类等)、主题、词嵌入向量,接下来结构化信息给用户。具体哪些特性吸引了用户消费?

    • 一种简单粗暴的办法是直接把用户产生过行为的物品标签累积在一起
    • 另一种方法是把用户对物品的行为,消费或没有消费看出一个分类问题,挑选出他实际感兴趣的特性就变成了特征选择问题。
    • 基本思路
      • 把物品的结构化内容看出文档
      • 把用户对物品的行为看出是类别
      • 每个用户看见过的物品就是一个文本集合
      • 在这个文本集合上使用特征选择算法选出每个用户关心的东西

(2)卡方检验(CHI)选择特征

    • 卡方检验是有监督的,本质上在检验“词和某个类别C相互独立”这个假设是否独立,这个假设偏离越大,就越说明这个词和类别C有关系,这个词就是关键词。
    • 卡方值χ2Wi,Cj=NAD-BC2(A+C)(A+B)(B+D)(C+D)

 

      • 每个词和每个类别都要计算,只要对其中一个类别有帮助的词都应该留下
      • 卡方值越大,意味着偏离“词和类别互相独立” 的假设越远,靠“词和类别互相不独立”这个备择假设越近。

(3)信息增益(IG, Information Gain)

    • 计算步骤
      • 统计全局文本的信息熵
      • 统计每个词的条件熵,分别计算包含词和不包含词的两部分的信息熵,然后再包含以及不包含词两部分的文本比例加权平均(条件熵公式)
      • 两者相减就是每个词的信息增益

4.超越标签的内容推荐系统

1)必要性:内容推荐是一个包装成推荐系统的信息检索系统,一个复杂的推荐系统很可能是基于内容推荐成长起来的。新的物品一开始没有任何展示机会,没有用户反馈,只有内容能帮它。

2)内容分析和用户分析

基于内容的推荐,最重要的不是推荐算法,而是内容挖掘和分析。内容分析的产出有两种:

(1)结构化内容库

         最重要用途就是结合用户反馈行为去学习用户画像

(2)内容分析模型,主要用于当新的物品刚刚进入时,需要实时地被推荐出去,这时候对内容的实时分析,提取结构化内容,再用于用户画像匹配。

    • 分类器模型
    • 主题模型
    • 实体识别模型
    • 嵌入模型

3)内容推荐算法

(1)最简单的推荐算法是计算相似性,用户的画像内容就表示稀疏的向量,同时内容端也有相对应的稀疏向量,两者之间计算余弦相似度,根据相似度对推荐物品排序。还有一个优点就是可解释性非常强。

(2)可以借鉴信息检索中的相关性计算方法来做推荐匹配计算:BM25F算法。

(3)机器学习方法

         场景:提高某种行为的转化率,如点击、收藏、转发等。

    • 收集这类行为的日志数据,转换成训练样本,训练预估模型。
    • 每条样本由两部分构成:一部分是特征,包含用户端画像内容,物品端的结构化内容,可选的还有日志记录时一些上下文场景信息,如时间、地理位置、设备等。另一部分就是用户的行为,作为标注信息,包含有反馈和无反馈两类。
    • 常用的模型是逻辑回归和梯度提升树,或者两者结合。预估用户行为发生的概率,按照概率排序。

 

 

猜你喜欢

转载自blog.csdn.net/jliang3/article/details/85246152