苗 宇,金醒男,杜永萍
(北京工业大学 信息学部,北京 100124)
互联网的高速发展给人们的生活和工作带来了巨大的改变,但互联网数据的高速增长也带来了一系列的负面问题,如“数据爆炸”、“信息冗余”等等。用户往往在互联网的数据浪潮中无法迅速精准地获得自己所需要的信息,同时互联网商家面对海量用户也很难精准投放自身的服务与产品,进而造成资源的浪费。用户画像(user profile)的核心是将用户的具体信息抽象成标签,从而为用户提供有针对性的服务[1]。基于用户画像的应用包括个性化推荐、活动营销、兴趣偏好等方面[2]。
传统用户画像的构建过程实际上是用户兴趣行为标签化的过程,目前,构建画像的方法主要分为基于统计和基于模型两种形式。
•基于统计的用户建模。
此方法主要通过数学方法对各类数据的数量或各类数据相对于整体的占比进行量化,并针对这些量化值对用户进行分析,进而挖掘出能够代表用户兴趣偏好的特征。刘海鸥等[3]从时间间隔分布、活跃性与幂指数分布等指标对用户行为特征进行分析,从而发现在线社交用户发布信息的行为特点。王洋等[4]通过收集用户浏览行为日志及爬虫数据,利用大数据平台对用户网络浏览行为数据进行处理。
基于统计的方法进行建模虽易于实现,但该方法不能对文本、图片、音频等非结构化数据进行分析处理,进而构建更加全面且细致的用户画像。因此,对于非结构化数据的深度挖掘日益重要[5-6]。
•基于模型的用户建模。
随着数据挖掘、机器学习、深度学习技术的出现,对于用户的研究得到迅速发展,兼顾结构化与非结构化数据,使得用户画像更加全面与细致。何娟[7]利用向量空间模型将文本内容表示成向量,通过计算余弦距离得到文本间的相似度数值后利用聚类算法构建用户画像。李恒超[8]通过使用卷积神经网络模型和Doc2Vec浅层神经网络模型来分别提取查询词之间的语义关联,构建了用户画像的二级融合模型算法框架。费鹏等[9]提出了一种用于构建用户画像的多视角融合框架,此框架首先利用双通道对不同特性的用户分别建模预测,提出了基于双层Xgboost的融合模型。
虽然随着人工智能大数据技术的蓬勃发展,机器学习及神经网络的算法已经在用户画像生成领域广泛使用,但现实的用户数据是多元且丰富的,单方面的特征工程无法较为全面地提取用户文本的特征,因此该文对用户元数据进行多角度特征提取及融合,以期实现较高准确率的用户属性预测。
目前,对于用户画像生成的方法缺乏对用户元数据的多层次特征提取,该文利用关键词提取、循环神经网络及注意力机制等相关技术,从多角度学习用户的深层特征。
TF-IDF(term frequency-inverse document frequency)是一种用于信息检索与文本挖掘的统计方法,可用于评估某个字词对于一个文档的重要程度,其重要性同它在文档中出现的次数成正比,且同它在全部文档构成的语料库中出现的频率成反比[10]。
循环神经网络是一种特殊的神经网络结构。区别于全连接网络单独处理一个个的输入,且前一个输入与后一个输入是完全没有关系,循环神经网络可以很好地处理序列信息,其隐层的值不仅仅取决于当前时刻的输入,还取决于上一时刻隐层的值,即上一时刻的隐藏层是可以影响当前时刻的隐藏层。这一特征使得循环神经网络具备可以处理前后有关联的序列信息的优势。GRU(gate recurrent unit)是循环神经网络的一种,是为了解决长期记忆和反向传播的梯度问题而提出的。同时相比于循环神经网络的另一个变体LSTM(long-short term memory,长短时记忆网络)而言,GRU使用的参数较少,并且实验效果不分伯仲,因此该文选择GRU可以很大程度上提高训练效率[11]。
注意力机制在处理文本数据的过程中,通过模拟人类的阅读习惯,将注意力分配到不同的词和句。例如视觉系统在阅读文本中会倾向于关注辅助判断的部分信息,并忽略掉不相关的部分内容。体现在实际的应用中,输入的某些部分可能会比其他部分对决策更有帮助,即将文本序列中的词汇分配以不同的权重,表示不同的词汇对结果具备不同的影响力[12]。通过使算法更集中于处理那些对文档类别判定影响较大的词汇上,以提升分类精度。
结合TF-IDF算法、循环神经网络和注意力机制,该文提出一种基于Multi-Aspect的融合网络用户画像生成模型,如图1所示。
(1)用户关键词提取模块。每个用户在互联网搜索引擎输入的内容大相径庭,其搜索内容与用户属性的差别,用户当时的需求,以及用户的喜好与困惑相关,故提取用户搜索内容中相较其他用户差异较大的文本作为此用户的关键词,可以在一定程度上帮助实现用户特征分类。
此模型在用户文本预处理阶段着重考虑每个用户搜索文本中相较于其他用户具有较明显个人特征的关键词。模块将每个用户的搜索文本看作独立的文档,将文本经分词和去停用词后计算每个词汇的TF-IDF值,TF-IDF的主要思想即为如果某个单词在一篇文章中出现的频率高,同时在其他文章中很少出现,则认为此词具有较好的类别区分能力,适合用来分类。提取关键词期间忽略原始文本的词序,将搜索词按计算出的TF-IDF值进行排序,供之后的模块选择相应的关键词数目进行特征提取处理。
(2)文本编码模块。将用户搜索文本经分词和去停用词之后,得到一个个单独的搜索词,由于用户的搜索内容千差万别,经分词后得到的词表数目庞大,使用词袋模型进行表示过于稀疏,且无法表示词语之间的内在联系,故使用词向量模型生成各搜索词较稠密的分布式向量表示。
(3)TOP 2关键词的特征提取。使用提取关键词模块得到的每个用户搜索词TF-IDF值排名前两位的词,将其看作此用户文档最关键的标签词汇,同时考虑到用户的搜索数据具备因果和时序关系,由于每个人对感兴趣方面的内容通常是会产生连锁搜索的现象,比如对某件事的关心,通常会先问“是什么”,接下来问“为什么”,然后问“怎么做”,因此模块取排名前两位的关键词在原始用户搜索文本中前后特定长度的周围词汇拼接成左右子句后经由双向循环神经网络进行特征提取。
图1 基于Multi-Aspect的融合网络用户画像生成模型
(4)TOP N关键词的特征提取。除提取TOP 2关键词及其周围词汇拼接成的子句特征外,进一步提取关键词提取模块中得到的排名前N个搜索词的特征。此模块忽略用户的原始搜索顺序,利用每个用户搜索文档中TF-IDF值排名前N的搜索词,将每个搜索词的向量表示求和取平均,得到TOP N关键词的向量表示。
(5)全文档特征提取。通过之前的步骤得到基于TOP 2子句和TOP N关键词的用户文档特征后,为避免基于关键词的特征提取造成的信息丢失,本模块使用用户的全部搜索文档按原始顺序输入循环神经网络进行特征提取,但为避免搜索文本中较通用的无意义文本影响真正关键内容的提取,在此模块中引入注意力机制,对重要性不同的文本分配以不同的权重,以此提高对用户搜索数据中关键内容的关注度。
为达到神经网络可以处理文本等非结构化数据的目的,需将文本进行向量化表示。该文采用预训练的Word2vec词向量[13],为经分词和去停用词后的用户搜索文本生成词分布式表示,即通过映射关系为数据集上的每个单词生成所需的词嵌入。对于给定的输入数据:
x=[w1,w2,…,wn]
(1)
(2)
用户在互联网搜索引擎搜索的内容与用户自身属性(如年龄、性别和学历等)以及使用网络进行搜索时的需求密切相关,故提取用户搜索内容中的关键信息作为此用户的关键词,可以在一定程度上帮助实现用户特征分类。
该文将每个用户的所有搜索数据作为一个用户文档,通过分别计算每个用户文档经分词的各个搜索词的TF-IDF值,获得每个用户搜索内容的关键词。
考虑到用户某段时间内较关注的内容,将所有用户搜索词中TF-IDF值最大的两个单词作为特殊关键词keyword1, keyword2,记其在原始搜索文档中的位置为i和j,以此对用户全部搜索文档进行拆分。考虑到同一段时间内用户搜索内容之间的关联性,分别取每个关键词的前N个词与后N个词,拆分得到的两个子句Sleft和Sright:
Sleft=[wi-N,…,wi-1,keyword1,…,wi+N]
Sright=[wj-N,…,wj-1,keyword2,wj+N]
(3)
相较其他类型的神经网络模型,循环神经网络可以很好地处理前后输入之间有一定关联的序列信息,而双向循环神经网络通过从两个方向输入文本信息,实现基于上下文的特征提取[14]。故该文采用双向循环神经神经网络结合包含关键词的语句提取文本特征。
由于需要对用户的性别、学历及年龄等静态属性进行描述,故用户的关注点提取很重要,如搜索词中包含“宝宝”、“剖宫产”、“先天性”等词眼的用户是女性、中青年等类别的概率就会较大,故采用双向门控循环单元(bidirectional gated recurrent unit,BiGRU)进行特征提取,对包含了关键词的两个子句Sleft、Sright分别生成融入了上下文语义信息的特征表示Hleft和Hright:
(4)
鉴于基于Top 2关键词的特征提取会忽略到用户的其他关注点,此模块将经关键词提取模块计算后得到的TF-IDF值Top N的词作为关键词,得到每个关键词经编码模块得到的分布式表示ei,由于各Top N关键词的位置大概率不相邻或前后颠倒,故无需使用循环神经网络提取词序信息,最终的Top N关键词向量表示由各关键词的向量表示求和取平均得到:
(5)
该模块使用全部用户搜索词输入循环神经网络结合注意力机制进行特征提取。若将每个用户的全部搜索词看作一个文档,从人类阅读习惯的角度进行思考,人们在阅读时不会将注意力平均到每个词汇。故只简单快速地将文档的全部单词的向量表示求和取平均作为文档的向量表示,忽略了文档中某些词汇对文本表示的贡献。为避免这一问题,该文使用了注意力算法对每个搜索词经循环神经网络的输出分配权重。
将文本经GRU后的输出向量Ci作为输入传入多层感知机中,使用tanh函数进行激活后得到向量ui:
ui=tanh(WwCi+bw)
(6)
每个单词对应的权重αi为向量uw与每个ui相乘后取softmax操作:
(7)
得到每个单词的重要性权重αi后,对经GRU后的每个单词的输入进行加权,得到此用户搜索文档的向量表示:
(8)
将基于Top 2关键词特征提取、Top N关键词特征提取及全文档特征提取模块得到的文本表示分别经一维最大池化层进行降维后拼接,得到最终的文本表示后经由softmax层进行分类。该文选用的评价指标为分类准确率,不同于评价二分类的指标精确率,它可以应用于多分类,主要指分类正确的样本占总样本个数的比例,是针对所有样本的统计量,其计算公式为:
(9)
该文使用的数据集来自中国计算机学会(CCF)组织的大数据竞赛《大数据精准营销中搜狗用户画像挖掘》,包含一个月内用户在搜索引擎中的历史查询词与用户的静态人口属性标签(包括性别、年龄、学历)共10万条。其中Education和Age属性共有7种类别,Gender属性有male、female和unknown共3种属性类别。
使用该模型结构对用户属性标签进行分类预测。将全部数据的80%作为训练集,另外20%作为测试集。为保证训练效果,各标签数据在训练数据和测试数据中分布一致。
词嵌入使用300维的预训练的Word2vec向量进行初始化,GRU和BiGRU隐藏层和输出层大小设为150维,全连接层的维数为128和64。在训练的过程中,使用Adam(adaptive moment estimation)算法进行优化,设置初始学习率为1e-3,批次大小为120。
为验证该模型的有效性,选择如下基线模型进行比较:
(1)SVM+Trigram模型,使用sklearn工具包调用传统机器学习模型SVM[15-16]进行分类,选用默认参数,Trigram的字典大小为165万。
(2)CNN[17]文本分类模型:首先使用Word2vec训练得到原数据集的词向量,然后使用训练后的词向量初始化嵌入层,取句子的截断长度为1 000,长度不足的使用0补齐,之后设置卷积核大小分别为2、3、4,将得到的特征图经最大池化处理后,进行0.5的dropout,最后拼接维度为150的全连接层后进行分类。
(3)Fasttext模型:同样使用Word2vec训练原数据集的词向量,将每个用户的搜索词汇看作一个文档,将每个经分词后的词向量求和取平均得到文档的向量表示,分别经128维和64维的全连接层后进行分类[18]。
(4)LSTM文本分类模型[19]:得到原数据集的词向量后输入LSTM网络,隐藏层的维度设为150维,将最终的隐藏层输出拼接128维全连接层进行分类。
使用以上提出的各对比模型与该文提出的Multi-Aspect模型分别对数据集样本的三个属性标签进行预测,其中各属性值均为多分类。实验结果如表1所示,可以看出与各基线模型相比,该文提出的模型在各类标签的预测中均取得了较优的准确率。
表1 各对比模型在不同属性标签上的预测准确率 %
由以上实验结果可以看出,该文提出的模型较Fasttext模型提升更为明显,Fasttext模型的全连接层分类虽简洁高效,但未能考虑到实际应用场景的文本特征,故分类效果稍差,尤其是在标签类别较多的情况下。
用户画像的构建属于分类任务,各特征之间没有过多的非线性关系[20],使得Trigram-svm模型在标签类别较少的情况下表现优于其他深度学习模型。CNN模型在处理用户搜索文本的语义特征方面优势不足,主要由于用户搜索文本大多较口语化,同样一句话会出现不同的表达方式,故CNN模型提取出的高阶特征不明显,分类效果不佳。
该文在特征提取子模块中使用到了循环神经网络,分别基于关键词子句和关键词平均向量从多角度利用循环神经网络进行特征提取,因此分类效果优于单一的LSTM模型,同时结合基于全文档词向量及对不同词汇分配不同权重的注意力机制进行特征融合后分类,得到了较优的准确率,验证了多角度特征提取的有效性。同时对Gender属性的分类准确率优于Education和Age属性,证明实验模型在对分类标签数目较少的属性上表现较优。
为了验证该文提出的模型在多角度提取用户搜索文本特征方面的优势,观察各模块在预测用户属性准确率方面的作用,进行了如下的消融实验验证,如表2所示。
表2 消融实验结果 %
实验通过分别去掉基于Top 2关键词的特征提取模块、基于Top N关键词的特征提取模块和全文档特征提取模块进行分类,由实验结果可知,每个模块均为提升最终的模型预测准确率做出了贡献,即结合实际应用场景对用户数据进行多角度的深度特征提取是有助于标签预测的。
其中,去掉基于Top N关键词的特征提取模块对最终标签预测的准确率影响较小,可能的原因是此模块取用户文档的Top N关键词的词向量进行加权平均,未如其他子模块使用深度神经网络进行特征提取,故此模块对最终的预测结果影响较小;而基于全文档的特征提取模块对模型预测准确率提升更为有效,由此可知由于用户自身属性的限定,搜索偏好在较短的时间内较为固定,使用全文档文本结合GRU网络和注意力机制进行特征提取,可以很好地考虑到用户文档的全局特征和局部特征,对用户标签预测的准确率提升大有帮助。
该文还对其他变量进行了实验验证,例如基于TOP N关键词提取文本特征的模块中,调整所取的关键词的数量进行实验,发现关键词数目在50以上再继续增加至200的过程中,对实验结果的影响甚微,说明同一用户的兴趣点也是广泛多元的,且不可避免地出现大众均会感兴趣的一些内容,故增加关键词数目进行求和取平均的特征提取方式未能提升分类准确率。
为了最大化挖掘大数据时代获取的海量用户数据的价值,准确预测用户属性,构建精准的用户画像,为下游的营销推广任务提供依据,首先从原始用户搜索文本着手,提出了一种基于Multi-Aspect的融合网络用户画像生成方法。此方法利用不同的特征提取模块,结合用户文本获取场景,从用户偏好内容、用词习惯、搜索时序等方面考虑,从不同的层面分别进行特征提取,最终将各子模块提取的文本特征融合后进行分类,经实验验证准确率均优于基础模型,并通过消融实验证明,各个子模块均为特征提取,提升模型分类准确率做出了贡献。
由于用户具备多个属性,用户画像应该同时考虑到多属性之间的关联,该任务本质是个多标签分类问题,各属性之间不是完全独立的,因此下一步将尝试使用多标签预测的方法改进模型,每次不只单一考虑某一个用户属性,同时用户不仅具备各种静态属性,现实中的用户是立体且多元的,将静态属性和用户行为等动态属性相结合可以帮助实现更丰富更准确的用户画像。