从NLP说到用户画像

之前我在文章里写了一篇NLP的迷局,链接如下:

极客兔子:NLP的迷局​zhuanlan.zhihu.com

https://zhuanlan.zhihu.com/p/31654004

不过实际上根据这段时间的研究,迷局一定是要打引号的,因为世界是复杂的,迷茫和混沌中总是可以摸索出一定的规律及可能性。这就是一个复杂系统的最有意思的点,如果说NLP在舆情行业应用点有些迷茫的话,在用户画像领域简直就是如鱼得水。而我今天一激动,就决定把最近的感受整理一下。

本质来说,用户画像就是让计算机可以算出用户和一些数据维度的关联性,这些计算是通过用户行为数据计算的,用户行为数据很多情况下又是从文本中挖掘出来的,所以文本结构化就是很重要的初始步骤。而目前NLP的一种非常实际的用法就是文本数据的结构化提取。尤其是在海量网络数据的情况下,机器是无法直接识别杂乱的非结构化数据的,更不用提计算部分了。所以数据应用的第一步其实就是结构化。这里包括以下基本的NLP实现方法:

1, 关键词提取

通常提取后会作为标签或者基础数据,用于其他文本分析或者模型训练,常用TF-IDF和TextRank。

TF-IDF

TF是词频的意思,IDF是逆文档频率的意思,大体思路是某段文本中,反复出现的词权重高,在全部文本片段中都出现的词权重低。计算出TF和IDF两个值后(数学推导公式请自行查阅),两者相乘,就得到了词的权重,就可以按照权重值来筛选出关键词了。

TextRank

都说TextRank是PageRank的私生子,思想也是类似的。计算方法不说了,结果来说就是某些词之间是有关系的,尤其是一种共现关系,这种关系会让词之间相互支持,并且成为权重更高的关键词。

2, 实体识别

通常是提取人物(比如人名)、地理位置、著作(不管是文本还是多媒体)、历史事件、热点事件、特定称谓等等。一般实体识别也会叫做命名实体识别NER,专家也会在NLP领域里叫做序列标注的一部分,因为和分词、词性标注都属于一种类型。这里会有一些麻烦的问题,比如:

词的开始、中间、结束的定位方法;

词的词性如何标注;

对于已经分好的词,如何识别它属于哪个命名实体集合。

算法上来说,序列标注一般是基于词典方法(主要是实体识别部分)、条件随机场CRF和隐马尔科夫模型HMM。

虽然我不太清楚很具体的细节,看资料说spaCy比NLTK效率上好一些,这个有待更多专家的验证。

3, 文本聚类

如果在起始阶段,文本本身并没有分类体系,也没有模型的情况下,很多时候会采取无监督方法将文本聚类,类簇编号最后也会成为一种特别的分类,也可以应用到用户画像中。

大多数公司由于技术和资源问题,其实很难做好这些底层,目前常见的方法是训练LDA模型,开源训练工具包括Gensim、PLDA、lda、百度Familia等等。

4,主题模型

通过大量文本中(标注过或非标注过),学习文本主题方向,从而建立模型并预测文本可能的主题概率分布,一定程度上也是聚类思想的延伸。

5,Embedding(嵌入)

应用领域广,对词、文章都可以用,主要是为了挖掘出文本字面表达以外的引申含义,尤其是一些联想出来的意境和感觉,并且尝试通过向量化表达出来(主要还是为了将维度控制住,并不一定非要向量吧)。获得这些向量以后,可以做词和词之间相似度的计算了,也可以产生更好的语义聚类效果。

常见且名气很大的就是Word2Vec,而且由于其性能优势,即使是笔记本单机也可以快速抛出来几百万级别的规模。

6,文本分类

从PGC时代到UGC时代,内容产出已经完全达到海量了,而且在这个人人都是自媒体的时代,连我的知乎专栏也是我个人发声的渠道,所以内容爆炸的情况下,分类也面临了长文本和短文本两种不同的情况。大体上来说短文本困难和麻烦一些,常见算法是支持向量机SVM,Facebook开源的FastText是常见工具。

NLP部分我觉得说这么多就够了,因为产品层面其实目前还不用深入太多,尤其是具体数学推导等等。接下来说一下NLP在用户画像的应用点,我个人理解用户画像就是通过用户行为数据,建立用户和一些维度(可能是购买意向,也可能是某些倾向)的关联。

两个常见方法是卡方检验CHI、信息增益IG。主要目标是将用户和某些数据维度进行关联。最终根据用户画像可以分析出该用户的偏好、倾向、类型。

我个人的理解是卡方检验主要是针对每个用户行为通过筛选建立一套标签,信息增益则是对全局数据做统一的筛选建立标签体系。

上面这部分我聊得很少,主要原因是这部分太工程化和算法化了,作为产品汪很难说透。但是有一点很重要的是,通过NLP可以把文本数据结构化,结构化生成的不管是向量还是别的数据形式,又可以转化为计算机可以识别和计算的数据从而和用户自身相关联,最终形成用户描述数据,即User Profile。

其他的我需要继续深入学习,暂时先写这么多。

兔哥数据极客俱乐部QQ群:群号:462346024

知识星球付费群:https://t.zsxq.com/EI6YvVj

个人WordPress博客:www.geekerlee.com

知乎专栏:https://zhuanlan.zhihu.com/geekerlee

专题:https://www.jianshu.com/c/35e005b034ed

参考资料:

http://www.infoq.com/cn/news/2017/07/Baidu-open-NLP-Toolkit

https://blog.csdn.net/sinat_33761963/article/details/53945581

https://www.zybuluo.com/elibinary/note/914131

http://xutianming.github.io/blog/2013/09/14/chi-square-information-gain-and-mutual-information/

你可能感兴趣的:(从NLP说到用户画像)