6.3.2 博客作者属性识别方法
博客作者画像识别方法的基本思想是,首先利用文档向量和词频-逆文档频率生成博文的分布式集成表示,然后采用卷积神经网络识别匿名博文作者的用户画像。作者画像识别流程图包括四个步骤,如图6.4所示。第一,采集博客和对博客进行预处理,构建博客集合,包括这些博客作者的年龄、性别和教育程度。第二,基于文档向量Doc2vec和词频-逆文档频率TF-IDF构建文本表示,生成博文的分布式集成表示。第三,训练卷积神经网络构建分类模型。第四,训练卷积神经网络模型,识别匿名博文作者的用户画像,即识别博文作者的年龄、性别和教育程度。
本节生成博文向量的过程如下:首先,对于博文x,基于文档向量模型Doc2vec生成博文x的分布式表示向量u。其次,根据特征词的词频-逆文档频率TF-IDF值构建每篇博文的向量w。最后,融合向量u和向量w来生成博文的分布式集成表示。
图6.4 博客作者属性识别流程图
图6.5给出了博客作者属性识别的流程图。作者博客中的每篇博文均被视为一个文档。每一篇博文和博文中词语均对应于一个唯一的向量。图6.5中的矩阵B由不同博文的向量构成,其中矩阵B中的每一列表示一篇博文的向量。图6.5中的矩阵W由不同词语的向量构成,其中矩阵W中的每一列表示一个词语的向量。
图6.5 博客作者属性识别框架图
文档向量模型Doc2vec的核心思想是将词嵌入Word2vec扩展到文档嵌入,也就是词嵌入的扩展[117,118,119]。事实上,文档嵌入可以生成句子向量、段落向量或文档的向量。词嵌入旨在根据句子中词语的上下文构建词嵌入。换句话说,词嵌入的目标是根据句子中的上下文词语生成每个词语的向量。文档向量模型Doc2vec和词嵌入的区别在于前者中引入文档向量,旨在捕获文档的主题或当前上下文的缺失信息[117]。
本节使用文档向量模型Doc2vec和词频-逆文档频率TF-IDF生成博文的分布式集成向量的原因如下[117,118]。
a)文档向量模型Doc2vec采用无监督方法,能够为不同长度的博文生成向量表示。
b)博文的分布式表示能够捕获句子中词语之间的语义关联关系。
c)基于TF-IDF的博客表示能够突出带有作者个性特征的风格词语之间的差异。
d)由于文档向量模型Doc2vec基于未标记数据学习文档向量,因此,不需要对博客中的句子进行句法分析和语义分析。
当博文表示为分布式集成向量后,使用卷积神经网络CNN模型来预测博客作者的画像或特征。使用卷积神经网络模型的原因是:它具有良好的容错能力、自学习能力和局部感知能力,并且能够降低神经网络模型的复杂度[120,121]。
在输入层L1中,基于Doc2vec和TF-IDF构建了每篇博文的分布式集成向量表示。通过输入层,作者的博文被映射到一个mxn矩阵,其中m是每篇博文向量的维数,n是该作者的博文数目。图6.6中的L2层是一个卷积层。通过卷积层提取博文的高级抽象特征[120,121]。例如,根据博文的一个窗口,可以生成一个特征di,如公式(6.15)所示:
其中,vi:i+h-1是vi,vi+1,…,vi+h-1的链接,vi是第i个博文的向量,W和b是卷积核参数,f是非线性函数。进一步,通过在所有可能的博文窗口中进行卷积,构建公式(6.16)的特征图:
在池化层L3中,通过在特征图上执行最大池化操作,获得博文的鉴别特征vmax:
进一步,这些鉴别特征被输入全连接层L4。该全连接层包含dropout和softmax。最后,获得博文隶属于不同用户特征类别的概率分布。