如何从文本中构建用户画像

推荐阅读时间:8min~10min 文章内容:如何从文本中构建用户画像

一文告诉你什么是用户画像 介绍了到底什么是用户画像,了解了用户画像的本质是为了让机器去看之后,这里谈一谈如何从文本中构建用户画像。

对于一个早期的推荐系统来说,基于内容的推荐离不开为用户构建一个初级的画像,这种初级的画像一般叫做用户画像(User Profile)。文本数据是互联网产品中最常见的信息表达形式,具有数量多、处理快、存储小等特点。来简单看下如何从文本数据中构建用户画像。

通过文本数据构建用户画像步骤

要用物品和用户的文本信息构建出一个基础版本的用户画像,大致需要做这些事:

  1. 把所有非结构化的文本结构化,去粗取精,保留关键信息;
  2. 根据用户行为数据把物品的结构化结果传递给用户,与用户自己的结构化信息合并。

第一步最关键也最基础,其准确性、粒度、覆盖面都决定了用户画像的质量。第二步会把物品的文本分析结果,按照用户历史行为把物品画像( Item Profile )传递给用户。

结构化文本

我们收集到的文本信息,通常是用自然语言描述的,用行话说,就是“非结构化”的,但是计算机在处理时,只能使用结构化的数据索引,检索,然后向量化后再计算;所以分析文本,就是为了将非结构化的数据结构化。

对于和物品相关的文本信息,可以直接采用一些NLP(自然语言处理)算法来分析,常见的有以下几种:

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

来介绍几种常见的文本结构化算法

TF-IDF

TF-IDF(Term Frequency-Inverse Document Frequency, 词频-逆文件频率),它由两部分组成,TF(词频)和IDF(逆向文档词频)。

TF-IDF = TF * IDF

来解释下 TF 和 IDF 的计算过程。

现在要来计算词 i 的 TF 值,可以通过以下的公式得到:

公式的分子 n_i 表示词 i 在当前文档中出现的次数,分母表示将该文档中所有的词出现的次数求和。

公式中的分子 D 表示总文档数,d_i 表示包含词 i 的文档数,分母加 1 是为了避免某些词在不存在所有文档中导致分母为 0 。

TF-IDF 背后的思想直白来说就是:在一篇文档中反复出现的词会更重要,在所有文档中都出现的词更不重要。

一般在实际应用中,选取词时是有各种规则限制,比如:过滤掉停用词,或只选动词和名词。

TextRank

TextRank 是 PageRank 的衍生版,所以算法原理与 PageRank 很类似,简单来说下:

  • 把给定的文本按照完整句子进行分割生成候选词;
  • 设定一个窗口长度,比如 K 个词,统计窗口内的词和词的共现关系,将其看成无向图。图就是网络,由存在连接关系的节点构成,所谓无向图,就是节点之间的连接关系不考虑从谁出发,有关系就对了;
  • 所有词初始化的重要性都是 1;
  • 每个节点把自己的权重平均分配给“和自己有连接“的其他节点;
  • 每个节点将所有其他节点分给自己的权重求和,作为自己的新权重;
  • 如此反复迭代第 3、4 两步,直到所有的节点权重收敛为止。

内容分类

在门户网站平台会有自己的频道,每个频道可以看成是一个分类;在电商平台会有自己的品类,每个品类也可以看成是一个分类。

机器/深度学习中常用的分类算法有 SVM、FastText等。

实体识别

命名实体识别(也常常被简称为 NER,Named-Entity Recognition)在 NLP 技术中常常被认为是序列标注问题,和分词、词性标注属于同一类问题。

所谓序列标注问题,就是给你一个字符序列,从左往右遍历每个字符,一边遍历一边对每一个字符分类,分类的体系因序列标注问题不同而不同:

  • 分词问题:对每一个字符分类为“词开始”“词中间”“词结束”三类之一;
  • 词性标注:对每一个分好的词,分类为定义的词性集合的之一;
  • 实体识别:对每一个分好的词,识别为定义的命名实体集合之一;
  • 对于序列标注问题,通常的算法就是隐马尔科夫模型(HMM)或者条件随机场(CRF)。

聚类

机器学习中有很多传统的聚类算法,比如 k-means,如今在文本中主题模型慢慢取代了传统的聚类算法,通过主题模型,可以每个文本生成所属的主题。

最常见的主题模型当属 LDA 了,LDA 模型需要设定主题(topic)个数。如何选择呢,请看下面:

  1. 选取初始K值,得到初始模型,计算各topic之间的相似度
  2. 增加或减少K的值,重新训练得到模型,再次计算topic之间的相似度
  3. 重复第二步直到得到最优的K

当然了,如果没有充足的时间去做 topic 的选择,在推荐系统领域,只要计算资源够用,主题数可以尽量多一些。

另外,得到文本在各个主题上的分布之后,可以保留概率最大的前几个主题作为文本的主题。

词嵌入

词嵌入,也叫作 Word Embedding。前面说到的方案得到的结果都是标签,并且是非常稀疏的,通过词嵌入能够为每一个词学习得到一个稠密的词向量。

使用词向量可以完成:

  • 计算词与词之间的相似度,扩充标签数量
  • 将文档中所有的词的词向量累加得到该文档的稠密向量

训练词向量常用的工具有 Word2Vec。

标签选择

前面提到的都是将文本进行结构化,生成标签、主题、词向量等等,如何通过结构化后的文本构建用户画像呢?或者说如何将文本中的结构化信息传递给用户呢?

在我们将物品展现给用户之后,用户会消费一步物品,那么物品中的什么特性(标签)促使用户消费它的呢?

一种方法是把用户消费过的所有物品中的标签全部累加起来,这种方式比较粗暴,我们来看另外一种方法。

我们可以将用户有没有消费展现的物品看成一个分类问题,那么挑选用户实际感兴趣的特性(标签)就变为了特征选择问题。

如何使用特征选择方法来挑选用户实际感兴趣的特性呢:

  1. 将物品的结构化内容看成一个特征列表
  2. 将用户对物品的消费情况看成目标类别
  3. 使用特征选择算法筛选出用户关心的特征

选择特征时,从以下两个角度考虑问题:

  1. 特征是否发散:如果一个特征不发散,例如方差接近于0,也就是说样本在这个特征上基本上没有差异,这个特征对于样本的区分并没有什么用。
  2. 特征与目标的相关性:这点比较显见,与目标相关性高的特征,应当优选选择。除方差法外,本文介绍的其他方法均从相关性考虑。

常见的特征选择的方法有:方差选择法、相关系数法、卡方检验、互信息法。

方差选择法

使用方差选择法,先要计算各个特征的方差,然后根据阈值,选择方差大于阈值的特征。

相关系数法

使用相关系数法,先要计算各个特征对目标值的 pearson 值。

其中,x_i 表示每个特征列表中的每个元素,x拔 表示每个特征列表的平均值;y_i 表示目标列表每个元素, y拔 表示目标列表的平均值。

卡方检验

卡方检验本质上在检验“词和某个类别 C 相互独立”这个假设是否成立,和这个假设偏离越大,就越说明这个词和类别 C 关联越强。

计算一个词 Wi 和一个类别 Cj 的卡方值,需要统计a/b/c/d四个值,这四个值解释如下:

卡方检验

属于类别Cj

不属于类别Cj

总计

包含词 Wi

a

b

a+b

不包含词 Wi

c

d

c+d

总计

a+c

b+d

n=a+b+c+d

卡方(x^2)的计算公式如下:

根据上面公式可以计算出每个词和每个类别的卡方值。

简单说明下:

  1. 每个词和每个类别的卡方值都要计算,只有对其中一个类别有帮助的词都应该留下。
  2. 由于卡方值比较的是大小,公式中的 n 可以不参与计算,因为 n = a+b+c+d,即总文档数。
  3. 某个词与某个类别的卡方值越大,意味着偏离“词和类别相互独立”的假设越远,即该词与该类别相关性越强。

总结

用户画像在推荐系统中的作用是非常重要的,如何从文本中构建用户画像信息呢?简单来说就是两部分:结构化文本信息和筛选部分特征信息。

相关推荐:

点击这里领取BAT面试题 ==》:BAT机器学习/深度学习面试300题

作者:无邪,个人博客:脑洞大开,专注于机器学习研究。

原文发布于微信公众号 - 脑洞科技栈(naodong-open)

原文发表时间:2018-04-02

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

编辑于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏机器学习算法工程师

机器学习该如何入门

引言   可能你对这个名字叫“机器学习”的家伙不是特别的了解,但是相信用过iPhone的同学都知道iPhone的语音助手Siri,它能帮你打电话,查看天气等等;...

36211
来自专栏PPV课数据科学社区

三张图读懂机器学习 :基本概念、五大流派与九种常见算法

机器学习正在进步,我们似乎正在不断接近我们心中的人工智能目标。语音识别、图像检测、机器翻译、风格迁移等技术已经在我们的实际生活中开始得到了应用,但机器学习的发展...

3995
来自专栏AI科技评论

斯坦福AI实验室又一力作:深度学习还能进一步扩展 | CVPR2016最佳学生论文详解

结构递归神经网络: 时空领域图像中的深度学习 联合编译:陈圳、章敏、李尊 摘要 虽然相当适合用来进行序列建模,但深度递归神经网络体系结构缺乏直观的高阶时空架构。...

3336
来自专栏达观数据

技术干货 | 细说YouTube推荐系统的变迁

作者简介 郝俊禹:达观数据高级工程师,曾获美国大学生数学建模竞赛二等奖,目前参与达观数据推荐系统研发,负责酷6,wifi万能钥匙和视频看看等项目。 ---- ?...

5194
来自专栏AI研习社

BAT资深算法工程师Deep Learning读书分享

「Deep Learning」是机器学习领域的重磅书籍,不管你有没有入手开始阅读,AI 研习社都希望给大家提供一个共同讨论、共同提高的机会。我们请来了曾在百度和...

36810
来自专栏大数据挖掘DT机器学习

Tensorflow的CNNs模型实战:根据短文本对企业分类

2017年4月17号AI100发布了为期一个月的文本分类练习赛 http://competition.ai100.com.cn/html/game_det.h...

3918
来自专栏量子位

十个生成模型(GANs)的最佳案例和原理 | 代码+论文

王小新 编译 原文作者:Sumeet Agrawal 量子位 出品 | 公众号 QbitAI 生成对抗网络(GANs)是一种能“教会”计算机胜任人类工作的有趣方...

5796
来自专栏黄成甲

数据挖掘算法及相关应用

我们生活在信息爆炸的时代,每时每刻都在产生海量的数椐。我们在微博、微信、社交网站、门户网站、移动终端等众多的设备商产生的海量数据,面临着无法处理数据的困境。例如...

1212
来自专栏鸿的学习笔记

关于机器学习应该知道的事(上)

这是一篇翻译,为了能有效率的读下去,特地分成两篇。因为只是作为我个人学习的记录,所以没有考虑到微信排版之类的。内容才是王道。

862
来自专栏机器之心

ACL 2017 杰出论文公布,国内四篇论文入选(附解读)

机器之心报道 参与:PaperWeekly、机器之心 国际计算语言学协会 (ACL,The Association for Computational Lin...

3997

扫码关注云+社区