陈泽宇,黄 勃,2
1.上海工程技术大学 电子电气工程学院,上海201620
2.江西省经济犯罪侦查与防控技术协同创新中心,南昌330000
互联网科技的发展带来了互联网数据爆炸式的增长,用户在浏览网页的同时会留下大量的行为数据,分析这些数据可以挖掘出用户基本的属性信息和潜在的兴趣偏好,给企业的经营方面提供了重大的帮助。搜索引擎是一个主流的网络平台,利用搜索引擎来构建用户画像对于营销的效果具有更加重要的价值,针对用户的查询词的短文本,传统的向量空间模型存在特征稀疏的问题,并且缺乏单词之间的语义联系。李雅坤[1]引入词向量构建了基于搜索引擎短文本的用户画像。词向量模型[2]通常使用一个向量来表示一个单词,无法解决一词多义和一义多词的情况。为了解决这样的问题,Reisinger 等[3]提出了多原型向量空间模型(multi-prototype vector space models),该模型将一个单词的上下文聚类为一组,然后为每一个类生成一个不同的词向量。然而,多原型向量空间模型[4-6]在生成词向量时也存在一些问题,它将同一个单词的不同上下文聚类为没有关联的两簇,但他们的语义可能是相同的。于是,张小川等[7]将文本向量与文本的主题分布相结合,得到语义表达更丰富的词向量,但该模型只是简单地将文本向量和文本的主题向量相连接,在主题信息的表达上还不够突出。本文提出一种更加强大的多原型向量空间模型,将目标单词和它所分配的主题共同放入神经网络中训练得到目标单词的主题词向量。
Word2vec 是谷歌公司提出的一种神经网络模型[8]。该模型利用多维的向量来表示单词,且词向量的每个维度都代表一个语义特征。word2vec 采用的模型有两种:CBOW和Skip-Gram。CBOW模型是通过目标单词的上下文来预测目标单词[9],而Skip-Gram 则通过目标单词来预测它的上下文[9]。其神经网络结构如图1和图2所示。
图1 CBOW模型
图2 Skip-Gram模型
输入层是One-Hot编码,每一个词用一个n 维的向量来表示,这个n 维向量只有一个位置是1,其余位置都是0。给定一个单词序列W={w1,w2,…,wN} ,该模型的目标是最大化平均对数概率[10]:
其中,c 表示目标单词的上下文,k 为上下文的大小。输出层是一个softmax回归[11],用来计算P(wi+c|wi)。
其中,vc表示目标单词上下文wc的词向量,vi表示目标单词wi的词向量。
通过训练得到的词向量可以计算单词之间的相似度sim(wi,wj)=vi⋅vj,将文本中每个单词的词向量进行相加再取平均可以得到这篇文本的文本向量。
隐狄列克雷分配(Latent Dirichlet Allocation,LDA)是一种无监督的模型,可用于识别文本中隐藏的主题信息[12]。该模型可以将文本表示为主题的概率分布,且每个主题由词的概率分布来表示[13],LDA模型如图3所示。
图3 LDA模型图
图3 中M 表示语料库中的文本数,T 表示主题数,α 是主题分布的超参数[14],β 为词分布的超参数[14],θ 是文本主题分布θ=Dirichlet(α)[15],φ 是主题词分布φ=Dirichlet(β)[15],N 是一篇文本中的词数,t 是词对应的主题,对于一篇短文本m,其中每个词对应的主题t=multi(θd),w 是词。
通过吉布斯抽样(Gibbs Sampling)[16]对主题变量t进行抽样,间接估算中θ 和φ,估算公式如下:
随机森林(Random Forest,RF)是一种集成学习算法,由多个决策树组成[17]。RF在决策树的构建过程中,从节点上所有特征中随机选取一部分特征,再从随机选择的部分特征中选择最优的特征作为决策树左右子树划分的标准,这使得模型的泛化能力得到了提高。一棵决策树代表一个弱分类器,通过n 次的迭代,获得n 个弱分类器,最终的分类结果由这n 个弱分类器的投票决定,票数多的一类即为这个样本的类别。
RF的算法:
输入:样本集D={d1,d2,…,dm},决策树个数n。
输出:最终的强分类器。
(1)对训练集进行m 次随机采样(Bootstrap)[16],获得n 个包含m 个训练样本的采样集。
(2)从所有特征中随机选取一部分特征,再从中选择最优特征作为节点建立决策树。
(3)重复步骤(1)、(2)n 次,直到建立n 棵决策树。
本文针对用户的搜索记录,利用基于主题词改进的词向量模型来构建用户画像,使用随机森林(RF)对用户的基本属性进行分类,具体的模型框架如图4所示。
图4 用户画像模型框架图
为了构建能表达一个单词在不同语义下的词向量,将主题融入到词向量中,获得目标单词w 在主题t 下的主题词向量,基于主题词改进的词向量模型所使用的神经网络模型为Skip-Gram 模型。首先通过LDA 模型获取文本对应主题的概率矩阵和主题对应词的概率矩阵,给目标单词w 分配潜在的主题t ∈T ,将目标单词表示为单词-主题对<w,t >。然后对短文本中的每一个单词进行One-Hot 编码,再为其对应的主题生成主题编码[P1,P2,…,PT],其中Pi表示目标单词分配给第i 个主题的概率,将单词编码和主题编码相连接共同作为skipgram模型的输入。基于主题词改进的词向量模型如图5所示。
对于单词主题对<w,t >该模型需要最大化平均对数概率:
输出层也是softmax 回归[11],用来计算P(<wi+c,ti+c>|<wi,ti>)。
图5 基于主题词改进的词向量模型
根据主题词向量vt,可以获得一些单词在不同主题下最相近的词,因此主题词向量可以更好的表达单词在不同上下文中的语义信息。例如“栽培”,在word2vec模型中获得的相似词有“种植、造就”等;基于主题词改进的词向量模型在主题为“农业”时获得的相似词有“栽种、种植”等,在主题为“教育”时获得的相似值有“造就、培养”等。
用户可以通过网络搜索到自己想要了解的信息,这些信息可以侧面反映出用户的基本属性和爱好,例如:年龄较小的人会更多的搜索与动画片和游戏相关的信息;女性会更加关注化妆品和流量明星。所以可以通过分析这些搜索文本来对用户的属性标签进行刻画。
本文利用基于主题词改进的词向量模型来构建用户画像,为了提取用户特征,传统的词向量模型通过对文本中每个词的词向量直接相加再取平均来表示用户特征,这样不能体现出不同单词的重要程度。因此,通过对文本中每个词的主题词向量进行加权求和表示用户特征:
其中,ωk是词wk∈W 在文本中的权重,权重值用单词w 的TF-IDF[10]值。若文本中某个单词的TF-IDF 值越大,经过加权求和后得到的向量能体现出该单词的重要程度,在用户特征的表达上也会更加突出。当用户特征提取之后,使用随机森林(RF)分别对三个属性标签进行分类。
基于主题词改进的词向量模型的用户画像算法:
输入:用户查询词数据集。
输出:用户基本属性的分类结果。
(1)用LDA模型为每个单词分配一定数量的主题。
(2)用基于主题词改进的词向量模型为文本中的单词生成主题词向量。
(3)计算每个单词的TF-IDF 值,再将TF-IDF 值归一化。
(4)利用公式(7)对主题词向量进行加权求和得到用户特征。
(5)将用户特征用随机森林算法分别对三个属性标签进行分类。
本文采用Python3.7 进行实验,操作系统为Windows 10,CPU 为CoreTMi7。实验数据集来源于中国计算机学会(CCF)组织的大数据竞赛。实验数据包括10万条,提供用户的基本属性标签和一个月内的上网搜索词。部分数据集如表1所示。
表1 实验数据集
表中ID 为加密后的用户编号;年龄属性分为6 类,由1~6 表示,0 表示未知;性别属性分为2 类,由1~2 表示,0 表示未知;学历属性分为6 类,由1~6 表示,0 表示未知。
将本文使用的方式与只使用词向量模型和使用LDA 主题模型与词向量相结合的方法相比较,三种模型都使用随机森林分类器对用户的基本属性进行分类。其中LDA 主题模型与词向量相结合的方法,采用向量连接的方式,该模型先使用词向量模型训练得到单词的词向量,将文本中每个单词的词向量进行相加再取平均得到这篇文本的文本向量,然后使用LDA 主题模型中的文本主题矩阵得到一篇文本所对应的主题概率,得到这篇文本的主题向量t={t1,t2,…,tT},最后将文本向量与主题向量连接在一起,形成语义表达更丰富的词向量。
其中,⊕为连接运算符,w 表示文本对应的词向量,t表示文本对应的主题向量
将三种不同模型的查准率P、查全率R 和F1 值[17]作为模型的评价,实验结果取自五次五折交叉验证后的平均值。分类结果的混淆矩阵如表2所示,分别计算性别、年龄、学历属性的分类精确率、召回率和F1 值。实验结果如表3及图6、7所示。
表2 混淆矩阵
表3 不同算法的分类性能
图6 不同算法的F1 值对比
图7 不同算法的实验结果对比
从上述实验结果中可以看出,本文方法的平均分类准确率比Word2vec 模型至少提高了2%,比Word2vec+LDA模型至少提高了1%;平均召回率比Word2vec模型至少提高了1.8%,比Word2vec+LDA 模型至少提高了1.1%;F1 值比Word2vec 模型至少提高了1.9%,比Word2vec+LDA模型至少提高了1%。其中在年龄属性上发挥的效果最好,比Word2vec模型至少提高了2.9%,比Word2vec+LDA 模型至少提高了1.4%。单独使用Word2vec 模型的分类结果并不是很好,使用Word2vec和LDA相结合的模型虽然分类的精度要高于单独使用word2vec模型,但仍低于本文提出的方法。因为传统的word2vec对于每个单词只能生成一个词向量,而本文的方法可以针对单词不同的主题生成不同的词向量,使得单词的表达更加的灵活。
本文研究了关于构建基于搜索引擎的用户画像的相关问题,相比于只利用目标单词的词向量,基于主题词改进的词向量模型还使用了目标单词的主题向量,用主题词向量将代表这个主题下单词的整体语义,更好地表达了用户的特征。实验结果表明,主题词向量在处理基于用户搜索词的用户画像上达到了更好的效果。但还存在一些不足之处,在网民中,年龄大的人群普遍比年龄小的人群少,学历高的人群也普遍比学历低的人群少,数据存在严重的不平衡,因此,需要寻找一个数据平衡的方法来进一步提高用户画像的分类精度。