热门推荐
三天搭建内容推荐系统——标签挖掘、画像搭建、算法推荐
2024-11-04 18:27

推荐系统的起步阶段一般都从基于内容的推荐开始做起,内容推荐系统可以快速搭建并且快速见效。要把基于内容的推荐做好,重要的是要做好“抓、洗、挖、算”

三天搭建内容推荐系统——标签挖掘、画像搭建、算法推荐

  • :持续抓取数据来丰富自己的内容源和分析维度是必不可少的(即便是对于千亿大厂来说
  • :冗余、垃圾、政治、涩情等内容都需要被清洗出去
  • :不管是抓来的数据还是自家的数据,如果不深入挖掘,那就是对资源的极度浪费。这是推荐系统最重要的环节
  • :将用户的兴趣和物品的属性相匹配,计算出更合理的相关性。这是推荐系统的使命。

快速搭建内容推荐系统,大体上可以分成三个步骤

  1. 构建标签库(标签挖掘:利用文本挖掘算法,把非结构化内容进行结构化,去粗取精,保留关键信息,构建高质量的标签库(其结果的准确度、粒度、覆盖面决定了用户画像的质量
  2. 构建用户兴趣画像(标签选择:根据用户注册数据、行为数据,把第一步的标签传递给用户,作为用户的兴趣标签
  3. 内容推荐算法:通常包括相似性计算、相关性计算和学习算法等

标签挖掘是内容推荐中最重要的一环,本质上是将非结构化数据进行结构化的过程。利用成熟的NLP算法分析物品端的文本信息,可以得到如下信息

  • 关键词提取:最基础的标签来源,也为其他文本分析提供基础数据,常用TF-IDF和TextRank。
  • 嵌入Embedding:从词到篇章,都可以学习其嵌入表达。嵌入表达可以挖掘出字面意思之下的语义信息,并且用有限的维度表达出来。
  • 文本分类:将文本按照分类体系进行分类,用分类来表达粗粒度的结构化信息。
  • 命名实体识别:人物、位置、著作、影视剧、历史事件和热点事件等,常用基于词典的方法结合CRF模型(Conditional Random Field,条件随机场)。
  • 文本聚类:在无人制定分类体系的前提下,无监督地将文本划分成多个类簇。虽然不是标签,类簇编号也是用户画像的常见构成。
  • 主题模型:从大量已有文本中学习主题向量,然后再预测新的文本在各个主题上的分布概率。主题模型也很实用,它其实也是一种聚类思想。主题向量不是标签形式,但也是用户画像的常用构成。

关键词提取是最基础的标签来源,也为其他文本分析提供基础数据。常用方法有TF-IDF和TextRank,都属于无监督方法,无需标注数据。

1.1.1 TF-IDF

TF-IDF提取关键词的思想来自信息检索领域,其思想很朴素

  • 在一篇文章中,反复出现的词会更重要
  • 在所有文本中都出现的词不重要。

这两点分别量化成TF和IDF两个指标
TF(Term Frequence,词频
某一个词在文本中出现的次数。由于在短文本中,词频通常都是1,因此TF在长文本中更加有用。
IDF(Inverse document Frequence,逆文本频率指数
在已有的所有文本中,统计某一词出现在了多少文本中,也就是文档频率(记为n,以及一共有多少文本(语料库规模,记为N
IDF的计算公式为

IDF=log(N/(n+1))

IDF的计算公式有如下几个特点

  • 所有词的语料库规模N都是一样的,因此文档频率n越小的词,IDF值越大。
  • 如果一个词的文档频率n为0,会得到无穷大的IDF值,因此分母中要有一个加1,起平滑作用。
  • 对于新词,文档频率n应该是0,但也可以默认复制为所有词的文档频率平均数、众数或中位数。

IDF值的本质与信息熵息息相关,如果一个词在所有文档中出现的频率很大,那么它在一个文档中带来的信息量就很小。
IDF是提前统计好的:利用TF-IDF方法提取关键词,有一个必要的资源,就是提前根据词典计算的IDF值,尤其是对于短文本,TF值不生效,几乎就是依赖IDF排序。
TF*IDF
计算出TF值和IDF值后,将两个值相乘就能得到每一个词的权重。

根据权重筛选关键词有如下几种方式

  • 保留K个权重最高的关键词
  • 计算权重均值,保留均值之上的关键词
  • 设定权重阈值,保留阈值之上的关键词
  • 针对特定场景的过滤规则,如:仅提取动词和名词。

1.1.2 TextRank

TextRank的思想与PageRank类似,可以概括为以下几点

  • 文本中设定一个窗口宽度,比如K个词,统计窗口内词与词的共现关系,将其看成无向图
  • 所有词初始化的重要性都是1
  • 每个节点把自己的权重平均分配给和自己有连接的其他节点
  • 每个节点将所有其他节点分配给自己的权重求和,作为自己的新权重
  • 以上两步反复迭代,知道所有的节点权重收敛为止。

那些有共现关系的词,都会互相支持对方成为关键词。

常规的抽取标签方法,得到的标签都是稀疏的,而且为了覆盖广泛,往往会引入大量的同义或者近义标签。Embedding可以解决这个问题。

Embedding是一个数学概念,也叫作嵌入。嵌入表达可以挖掘出字面意思之下的语义信息,并且用有限的维度表达出来
通过学习得到每个词低维度的稠密向量,有了这个向量就可以计算词之间的距离,从而实现标签的归一化,提高标签库的经济性。

比如某个词有100个语义,于是这个词可以用一个100维的向量表达,向量中各个维度值的大小代表了词包含的各个语义的量。

学习Embedding向量也叫作表示学习,常见方法有Word2Vec、GloVe、FastText。

其中FastText是Facebook开源工具,还可用于做文本分类。

图文信息流APP的资讯内容需要被自动分类到不同的频道中,从而得到最粗粒度的结构化信息,也可被推荐系统用来在冷启动时探索用户兴趣。
短文本分类方面最经典的算法是SVM,现在最常用的工具是FastText。
FastText是一个工具,它可以做两件事——学习词语的Embedding向量以及做文本分类,尤其是句子分类。
句子分类的场景就是给句子打标签,一个句子输出多个标签。

命名实体,是文本中具有特定意义的实体。例如地名、电影名、书籍名等,是一类非常有价值的标签。将这些描述客观实体的词,从非结构化的文本中识别出来, 有助于构建高质量的标签库。

命名实体识别(NER,Named-Entity Recognition)在NLP技术中是非常成熟的技术方向,通常被认为是一种序列标注问题,和分词、词性标注属于同一类问题。
所谓序列标注问题,就是从左到右遍历一个序列中的每个元素,一边遍历一边对每一个元素分类,分类的符号因序列标注问题的不同而不同。序列标注不是一个简单的分类问题,因为通常情况下预测某个元素的标签时会依赖前一个元素。
序列标注问题经典的模型是HMM(Hidden Markov Medel,隐马尔可夫模型)和CRF(Conditional Random Field,条件随机场;也可使用比较实用的词典法。

文本聚类如何用在挖掘标签库上呢

  1. 对全量文本聚类,得到每一个类的中心
  2. 将新的文本向最近的类中心靠拢,并归于某个聚类
  3. 给每个类赋予一个独一无二的ID,也可以从该类中找出最能代表该类的主题词来作为类别标签。

文本聚类一般选择主题模型或者隐语义模型(LSI,Latent Semantic Index)。以LDA(Latent Dirichlet Allocation,潜在狄利克雷分布)为代表的主题模型能更准确地抓住主题,并且能够得到软聚类效果,也就是说可以让一条文本属于多个类簇。

  • 标签覆盖面:能覆盖的用户/物品越多越好
  • 标签健康度:好的标签库,其标签覆盖分布熵要高,熵越高分布越均匀
  • 标签经济型:标签之间的相似性越小越好。

前文讲解了如何将用户端和物品端文本结构化,从而得到标签、关键词、Embedding向量等。接下来看看如何把物品的结构化信息传递给用户。

我们把用户是否消费物品看成一个分类问题。用户用实际行动帮我们标注了若干数据,那么挑选出他实际感兴趣的特性就变成了特征选择问题
最常用的是卡方检验信息增益两种方法这两种方法都是有监督学习,基本思想如下

  • 把物品的结构化内容看成文档
  • 把用户对物品的行为看成类别
  • 每个用户访问过的物品就是一个文本集合
  • 在这个文本集合上使用特征选择算法选出每个用户关心的东西。

卡方检验与信息增益的不同之处在于:前者针对每个分类单独筛选出一套标签出来,后者则是全局统一筛选。

  • 类别为Cj的文本中,出现词Wi的文本数A;
  • 类别为Cj的文本中,没有出现词Wi的文本数C;
  • 其他类别中,出现词Wi的文本数B;
  • 其他类别中,没有出现词Wi的文本数D;
  • N为全文本量,由于是比较卡方值的大小,N其对每个词都一样,计算时可以省略。

信息增益(IG,Information Gain)在数据挖掘的决策树分类算法中应用得最多,经典的决策树算法挑选分裂节点时,就要计算各个属性的信息增益,并且始终挑选信息增益最大的节点作为分裂点。
信息增益大的词可以作为关键词,计算步骤如下

  1. 统计全局文本的信息熵
  2. 统计每个词的条件熵,即知道了一个词后再统计文本的信息熵,只不过这里要分别计算包含词和不包含词两部分的信息熵,再按各自文本比例加权平均
  3. 每个词的信息增益 = 全文本信息熵 - 单个的条件熵

备注:要理解信息增益,必先理解信息熵。但对于大多数能看到这儿的同学,想必对于信息熵的概念早已耳熟能详。

对于基于内容的推荐系统,最简单的推荐算法当然是计算相似性
用户的画像内容表示为稀疏向量,同时内容端也有对应的稀疏向量,在两者之间计算余弦相似度,根据相似度对推荐物品排序。

如果再进一步,可以更好地利用内容中的结构化信息
直观上新闻的标题更重要,所以我们可以借鉴信息检索中的相关性计算方法来做推荐排序计算,即BM25F算法。

收集优化目标类行为的日志数据,将其转换成训练样本,然后训练预估模型。
每个样本由两部分组成

  • 特征变量可以包含用户端的画像内容、物品端的结构化内容,可选的有日志记录时的一些上下文场景信息,如时间、位置、设备。
  • 目标变量是用户行为,作为标注信息,包含“有反馈”和“无反馈”。

用这样的样本训练一个二分类器时,常用的模型师逻辑回归和梯度提升树,或二者的结合。在推荐匹配时,预估用户发生行为的概率,并按照概率排序。

基于内容的推荐系统一般是推荐系统的起步阶段,且会持续存在

  • 内容数据始终存在并蕴含了丰富的信息,不用太浪费
  • 产品冷启动阶段没有用户行为,别无选择
  • 新的物品要被推荐出去,首选内容推荐。
    以上就是本篇文章【三天搭建内容推荐系统——标签挖掘、画像搭建、算法推荐】的全部内容了,欢迎阅览 ! 文章地址:http://dfvalve.xrbh.cn/quote/6897.html 
     行业      资讯      企业新闻      行情      企业黄页      同类资讯      网站地图      返回首页 迅博思语资讯移动站 http://keant.xrbh.cn/ , 查看更多