前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >如何从文本中构建用户画像

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

作者头像
abs_zero
修改2018-05-26 12:46:57
4.7K0
修改2018-05-26 12:46:57
举报
文章被收录于专栏:AI派

推荐阅读时间: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题

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

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2018-04-02,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 脑洞科技栈 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 通过文本数据构建用户画像步骤
  • 结构化文本
    • TF-IDF
      • TextRank
        • 内容分类
          • 实体识别
            • 聚类
              • 词嵌入
              • 标签选择
                • 方差选择法
                  • 相关系数法
                    • 卡方检验
                    • 总结
                    相关产品与服务
                    对象存储
                    对象存储(Cloud Object Storage,COS)是由腾讯云推出的无目录层次结构、无数据格式限制,可容纳海量数据且支持 HTTP/HTTPS 协议访问的分布式存储服务。腾讯云 COS 的存储桶空间无容量上限,无需分区管理,适用于 CDN 数据分发、数据万象处理或大数据计算与分析的数据湖等多种场景。
                    领券
                    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档