推荐阅读时间:8min~10min 文章内容:如何从文本中构建用户画像
一文告诉你什么是用户画像 介绍了到底什么是用户画像,了解了用户画像的本质是为了让机器去看之后,这里谈一谈如何从文本中构建用户画像。
对于一个早期的推荐系统来说,基于内容的推荐离不开为用户构建一个初级的画像,这种初级的画像一般叫做用户画像(User Profile)。文本数据是互联网产品中最常见的信息表达形式,具有数量多、处理快、存储小等特点。来简单看下如何从文本数据中构建用户画像。
要用物品和用户的文本信息构建出一个基础版本的用户画像,大致需要做这些事:
第一步最关键也最基础,其准确性、粒度、覆盖面都决定了用户画像的质量。第二步会把物品的文本分析结果,按照用户历史行为把物品画像( Item Profile )传递给用户。
我们收集到的文本信息,通常是用自然语言描述的,用行话说,就是“非结构化”的,但是计算机在处理时,只能使用结构化的数据索引,检索,然后向量化后再计算;所以分析文本,就是为了将非结构化的数据结构化。
对于和物品相关的文本信息,可以直接采用一些NLP(自然语言处理)算法来分析,常见的有以下几种:
来介绍几种常见的文本结构化算法
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 是 PageRank 的衍生版,所以算法原理与 PageRank 很类似,简单来说下:
在门户网站平台会有自己的频道,每个频道可以看成是一个分类;在电商平台会有自己的品类,每个品类也可以看成是一个分类。
机器/深度学习中常用的分类算法有 SVM、FastText等。
命名实体识别(也常常被简称为 NER,Named-Entity Recognition)在 NLP 技术中常常被认为是序列标注问题,和分词、词性标注属于同一类问题。
所谓序列标注问题,就是给你一个字符序列,从左往右遍历每个字符,一边遍历一边对每一个字符分类,分类的体系因序列标注问题不同而不同:
机器学习中有很多传统的聚类算法,比如 k-means,如今在文本中主题模型慢慢取代了传统的聚类算法,通过主题模型,可以每个文本生成所属的主题。
最常见的主题模型当属 LDA 了,LDA 模型需要设定主题(topic)个数。如何选择呢,请看下面:
当然了,如果没有充足的时间去做 topic 的选择,在推荐系统领域,只要计算资源够用,主题数可以尽量多一些。
另外,得到文本在各个主题上的分布之后,可以保留概率最大的前几个主题作为文本的主题。
词嵌入,也叫作 Word Embedding。前面说到的方案得到的结果都是标签,并且是非常稀疏的,通过词嵌入能够为每一个词学习得到一个稠密的词向量。
使用词向量可以完成:
训练词向量常用的工具有 Word2Vec。
前面提到的都是将文本进行结构化,生成标签、主题、词向量等等,如何通过结构化后的文本构建用户画像呢?或者说如何将文本中的结构化信息传递给用户呢?
在我们将物品展现给用户之后,用户会消费一步物品,那么物品中的什么特性(标签)促使用户消费它的呢?
一种方法是把用户消费过的所有物品中的标签全部累加起来,这种方式比较粗暴,我们来看另外一种方法。
我们可以将用户有没有消费展现的物品看成一个分类问题,那么挑选用户实际感兴趣的特性(标签)就变为了特征选择问题。
如何使用特征选择方法来挑选用户实际感兴趣的特性呢:
选择特征时,从以下两个角度考虑问题:
常见的特征选择的方法有:方差选择法、相关系数法、卡方检验、互信息法。
使用方差选择法,先要计算各个特征的方差,然后根据阈值,选择方差大于阈值的特征。
使用相关系数法,先要计算各个特征对目标值的 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)的计算公式如下:
根据上面公式可以计算出每个词和每个类别的卡方值。
简单说明下:
用户画像在推荐系统中的作用是非常重要的,如何从文本中构建用户画像信息呢?简单来说就是两部分:结构化文本信息和筛选部分特征信息。
相关推荐:
点击这里领取BAT面试题 ==》:BAT机器学习/深度学习面试300题
作者:无邪,个人博客:脑洞大开,专注于机器学习研究。