1. 引言
随着社交网络和微博网站的迅速发展,用户兴趣挖掘以及建模在最近几年一直关注的研究课题。然而,现在的研究工作主要存在两大问题,一是它们只专注于用户的显性信息和社交网络结构来预测用户兴趣,而忽略了用户个性化信息是推断用户兴趣话题的重要来源的这一事实。二是它们使用词袋模型来表示用户的内容信息,该模型忽略了发表内容的时间顺序,因此预测的兴趣信息可能包含用户不再感兴趣的过时主题内容。微博作为一个比较流行的社交网络平台,成千上万的用户已习惯在微博平台上发表个人动态信息、个人评论信息和关注转发一些热点话题,从中可以获取、分享和传播自己感兴趣的话题信息。用户每天在微博上产生大量的微博数据,由用户产生的这些微博数据背后隐藏着巨大的商业应用价值,而如何能准确有效地从这些信息中分析并挖掘出用户兴趣,提高用户兴趣建模质量,对用户的个性化信息服务和价值利用有着十分重要的意义。
微博因其传播性、交互性和即时性等特点,在一定程度上充分反映出用户的兴趣偏好。为了充分挖掘出高质量的用户兴趣,研究者们综合考虑微博文本特点,提出了一系列的用户兴趣挖掘方法。其中最常见一种方法是根据用户所发表的微博内容以及关注点,分析并构建用户兴趣模型。文献 [1] 通过分析用户行为信息特征,结合用户自身因素来研究用户兴趣的变化过程,提取用户行为信息背后所隐藏的兴趣倾向,紧接着使用主题模型提取主题,构建用户兴趣模型。文献 [2] 为了提升用户兴趣模型的质量,在LDA主题模型的基础上进行改进,对微博内容等相关数据进行全面综合性的分析,获取兴趣主题。文献 [3] 根据LDA主题模型分析并挖掘用户兴趣特征,从而构建出用户感兴趣的主题。文献 [4] 使用改进的LDA主题模型检测微博热点话题信息,根据此热点抽取出用户兴趣特征。文献 [5] 综合分析微博信息传播方式和转发预测方法,基于结合用户兴趣特征的算法构建在线信息共享预测模型,并以新浪微博数据为例对预测模型进行测试。文献 [6] 基于社交媒体短文本的特征改进了词袋模型,提出了利用特征之间的语义关系的语义表示模型,微博用户从中提取感兴趣话题的方法。
但传统的用户兴趣建模方法已无法满足当前需求,在大规模的数据上其时效性表现较差。因此本文引入词向量模型和主题模型,提出一种基于BERT模型和LDA主题模型的用户兴趣模型构建方法(记为BERT_LDA)。BERT是谷歌提出的预训练语言模型,其突出优点不仅在于它能够生成词向量,而且能够有效处理多义词的问题,对具有深度语义信息的文本进行分析。LDA主题模型建立了文档–主题–词的三层概率结构,对于挖掘稀疏性较高的短文本数据中隐语义具有很好的效果。首先将预处理后的数据集通过LDA主题模型进行训练,提取文本主题信息;其次,使用BERT模型训练输入对应文本的词汇,对每个词进行向量化,生成主题词向量;再次,使用相似度函数计算文本向量与主题向量之间的相似度来描述每个文本的主题信息;最后,使用K-means聚类算法将用户文档集划分为几个相似的类别,进一步提取用户感兴趣的主题。通过实验对比其他模型可知,融合BERT模型和LDA主题模型的聚类方法获得较好的效果。
2. 相关工作
2.1. BERT模型
BERT (Bidirectional Encoder Representations from Transformers) [7] 模型是一种与之前自然语言表示模型不同的新模型,它主要是基于双向多层的转换编码器实现的,是通过各个层中上下文信息相互联合调节的形式实现深度双向表示 [8]。具体的结构图如图1所示。
以前的向量模型(如Word2Vec和Glove)具有明显的缺点,即无法有效处理单词的多义现象。选择BERT语言模型的突出优点不仅在于它能够生成词向量,而且能够有效处理多义词的问题。BERT模型的输入部分是将两个句子序列连接起来,并用符号将每个句子的开头和结尾进行标记。BERT模型对每个单词实行了三种不同的嵌入操作(即词的位置、Word2Vec、整个句子)。将这三种嵌入结果向量进行拼接,就可以获取到BERT词向量 [9]。其输出词向量的方式如图2所示。
从下图可以看出,特殊标签[CLS]和[SEP]分别添加到序列的第一个和最后一个位置,此类标签在句子或非句子对任务上的最终输出,会被视作整个句子或句子对特征表示。对于此类型以外的其他操作,即使该标签参与了序列编码,也会被最终输出结果舍弃掉。

Figure 2. BERT model output representation
图2. BERT模型输出表示
2.2. LDA主题模型
主题模型是挖掘文本中潜在主题的一种模型训练方法,主题的获取过程是根据文本中词汇的出现次数计算其概率,从概率中选择主题。LDA (Latent Dirichlet Allocation,隐含狄利克雷分布)是当前常用的一种主题获取模型,它是Blei [10] 为了提升用户兴趣主题质量而提出的。
假设语料库由D篇文本组成,第m个文本有Nm个单词,这些文本一共涉及K个主题。LDA主题模型在预测训练集之外中的文本和主题词的分布占有很大的优势。其基本思想是:随机选择一些主题组成一个文本,并且一个词的概率分布就表示主题。LDA主题模型将主题分布参数视为统一的隐藏K维随机变量,为了抑制隐藏K维随机变量而引入一个超参数。作为一种混合概率模型,LDA主题模型使用单词之间的共现关系,来最大程度地提高单词在文本中查找聚类的概率。尽管LDA主题模型可以让文本中有多个主题出现,但它为了避免文本中包含太多的主题,就通过狄利克雷分布限制主题的占比 [11],如图3所示。

Figure 3. Schematic diagram of the LDA model
图3. LDA模型示意图
在LDA概率模型中,
为文本m的“文本–主题”概率分布矩阵;
为主题k的“主题–词”概率分布矩阵;
和
是超参数;
、
为文本m中第n个词的主题;T为主题个数,N为文本集合D中词的个数。
从LDA主题模型被提出以来,越来越多的研究者在原来的基础上,根据实际应用需求做出LDA算法改进及应用 [12]。LDA主题模型存在的主要缺陷是须事先设定主题个数。对于用户不太了解的一些数据,就很难指定准确的主题个数。如果指定的主题数与实际数存在很大差距的话,LDA主题模型的性能就会受到影响,对LDA主题模型的使用也会受到制约。另外,当LDA主题模型获得文本隐藏主题的语义信息时,它也会忽略文本的词汇语义信息,其性能在一定程度上会下降。
3. 方法流程及关键技术
3.1. 方法流程
用户模型构建方法的基本流程如图4所示,主要包括4个方面:首先,对语料库进行预处理,该步骤主要针对文本中存在的特殊标点字符、表情符号、语气词、介词和没有任何意思的词等杂乱数据进行清理和停用词处理,去除存在重复的数据。对于存在缺失的完整数据进行删除或补充,删除字数较少的微博。采取常用的工具包jieba分词 处理语料库,将得到的文本作为词向量的输入数据。其次,通过使用BERT模型训练相应文本的词汇,得到词向量表示;使用LDA主题模型,对输入的对应文本的词进行训练,获得每个文本的潜在主题,并构建主题–词矩阵。再次,将训练好的词向量映射生成每一个主题向量和文本向量,并结合余弦相似度计算每个向量之间的相似度,来描述每一篇文本的主题信息。最后,利用K-means聚类对相关性较强的主题词信息进行聚类,进一步提取用户兴趣主题。

Figure 4. Process of user interest model construction
图4. 用户兴趣模型构建方法流程
3.2. BERT模型的词向量表示
为了获得更好的词向量表示,Google提出的BERT预训练语言模型充分利用了词的上下文信息,可以更好地解决多义词的问题。为了在单词的左侧和右侧融合上下文信息,BERT模型使用双向Transformer技术作为编码器。在模型学习过程中,将在两个方向上学习句子,以学习单词的上下文信息,从而可以更好地在不同的上下文中反映相同的单词。BERT模型使用Attention机制计算句子中每个单词和其他单词之间的相关信息 [13]。Word2Vec训练的词向量表示不能很好的表示出单词的上下文信息。BERT生成的单词表示由单词周围的单词动态表示。因此,BERT模型在训练词向量方面较Word2Vec占有优势。本文亦使用Google提供的BERT模型以及中文预训练模型对文本进行向量化处理。
3.3. 主题相关度计算
假设给定一组文本
,是由N个词
组成,通过LDA主题模型训练输出潜在主题
。通过BERT模型训练文本X,并向量化每个词,生成不变长度的向量
,主题词是从主题
中前h个词进行选取,用来生成主题向量。计算每个词占主题的权重 [14]:
(1)
其中,
表示第i个主题词中第j个词的概率。
计算主题词向量
,即将每个词向量和它的权重的结果进行线性加权:
(2)
计算文本向量
:
(3)
其中,c表示文本中词的个数。
对于向量
和
,其余弦相似度为:
(4)
由于余弦夹角值范围在[−1, 1],所以需要将其归一化到[0, 1],即:
(5)
3.4. 基于K-means聚类算法的用户兴趣主题提取
通过对文本集中所有文本对应的主题描述聚类成k个簇(cluster),将用户兴趣的提取问题转化为对主题词描述的聚类问题。K-means聚类算法如算法1所示:
4. 实验结果及分析
4.1. 实验语料与实验环境
为验证本章方法BERT_LDA的有效性,本节使用开源的用户新浪微博的数据集来作为实验数据,进一步验证用户兴趣建模方法的有效性。微博用户的数据包括初始微博,评论转发数,以及用户的基本资料和标签等信息。通过数据预处理筛选后,采用5043名用户的115,736条微博信息作为实验数据集,随机选取100名用户的10,245条微博信息作为测试集。在进行建模前,有必要对数据进行分词、去除停用词等数据预处理操作。
本文采用Pycharm & Python编码工具和具有丰富的API数值计算库的机器学习框架进行模型代码的编写,该框架被广泛地应用到各种平台上进行数值计算。本章实验的软硬件环境设置如表1所示:

Table 1. Experimental environment settings
表1. 实验环境设置
4.2. 实验结果分析
4.2.1. 评价指标
用户兴趣模型构建方法采用的指标评估方法是F值(F-score)、召回率(Recall)和准确率(Precision)。在分类中,实例通常会被分成正类(Positive)和负类(Negative),它会以下列四种形式出现:
1) 真正类(True Positive, TP)是指原来样本为正类时,被预测为正类。
2) 假负类(False Negative, FN)是指原样本为正类时,被预测为负类。
3) 假正类(False Positive, FP)是指原样本为负类时,被预测为正类。
4) 真负类(True Negative, TN)是指原样本为负类时,被预测为负类。
具体公式如下所示:
1) 准确率
准确率表示预测出正确的正样本数与总预测正样本中的实际个数之比,记为P,其计算公式如(6)所示:
(6)
2) 召回率
召回率表示计算模型中预测出正确的样本与所有预测样本之比,记为R,其计算公式如(7)所示:
(7)
3) F值
F值是对模型的综合评价指标的体现,根据准确率和召回率进行计算所得。F的计算公式如(8)所示:
(8)
4.2.2. 结果分析
为了验证BERT_LDA方法的有效性,分别使用本章提出的BERT_LDA方法与基于向量空间模型(VSM)的用户兴趣建模方法 [15] 和基于LDA主题模型的用户兴趣发现方法 [16] 进行实验对比。主题数K均设置成50,
,先验参数
根据主题数K进行确认,本章使用数据集中的所有文本来训练LDA和BERT来提取潜在主题和词向量,实验结果见图5所示。

Figure 5. Experimental results of different subject numbers
图5. 不同主题数的实验结果
图5展示了不同主题数对文本主题提取实验结果的影响,将BERT模型的向量维度设置为128,主题数分别设置范围是10到50。从图中可以得知,主题个数为15和20时其实验结果比其他情况较好,这是因为微博数据相对较为零散,过多的主题分类会引起细粒度过小。实验中通过选取不同的文档主题个数,获得最佳的实验效果,可以清楚地看出不同主题个数对F值等指标所带来的变化。根据实验的最佳状态,确定最佳的主题个数。从表中可以清楚地看出,F值随着不同主题个数的变化情况,发现在主题个数为15时,F值达到最高。
基于上述分析,为了进一步验证本章方法对主题提取的综合效果,选取主题个数为15,通过轮廓系数法确定聚簇数为18。对VSM、LDA和BERT_LDA进行聚类分析,如表2所示。
表2展示了VSM、LDA及BERT_LDA的实验对比结果,从表2可以看出,P、R和F均有一定的提升。实验对比结果中,我们可以发现,三种用户兴趣建模的方法在F值上的表现很稳定。对于仅是依赖TF (词频)和IDF (逆文档频率)进行词频计算,VSM模型性能较于LDA模型表现的极差,主要因为它们不能够对词项本身存在的语义信息作出很好的判断,用户兴趣主题信息提取性能降低,缺乏对文本上下文的有效信息考量,具有一定的局限性。以LDA为对比,本章方法在用户兴趣主题提取上有良好的表现,其模型结合提取方法较为稳定。
通过对三种方法实验结果的比较,从表2可以看出,本章方法相对VSM模型,可以更好地提取很多用户兴趣主题,F值有明显的提升。而相对于LDA主题模型,F值略高于LDA主题模型。基于VSM模型和基于LDA主题模型的用户兴趣建模方法并没有很好地解决语义间关联性低的问题,其效果不佳。而本章方法能够很好地挖掘文本中语义信息,弥补了基于LDA主题模型方法的不足,也从侧面证明本章方法的有效性,其可以作为一种用户兴趣建模的有效方法,进一步提升提取用户兴趣信息的准确性。
表3展示了前5个主题及概率分布最靠前的10个词语。

Table 3. Mining results of user interest topics
表3. 用户兴趣主题挖掘结果
从表3中可以很清楚地得到每个主题信息,例如,Topic5中包含的关键词为“公开课”、“补习班”、“教育”等,从中可以很明显地读出Topic5讨论的是家庭教育方面的问题。
用户对主题的感兴趣程度与主题的概率分布有关,概率越高,说明用户对此项主题越感兴趣。表4展示了部分用户所感兴趣的主题。
表4展示了主题概率分布,其中随机挑选8个用户,选取用户比较感兴趣的5个主题,表中的兴趣主题主要是由主题编号和主题的概率分布。从表中可以看出,用户2感兴趣的主题包括Topic3、Topic13、Topic20、Topic9和Topic46,根据这些信息可以对用户进行微博推荐,帮助用户更好地获取所需知识。
5. 结束语
本章提出了一种基于词向量和LDA主题模型的用户兴趣建模方法,在模型训练过程中,将LDA主题模型和BERT模型在处理上下文以及语义相关性上的优势,将其结合起来,从而能够较为有效地挖掘出用户兴趣偏好信息。实验结果表明,本章提出的建模方法的效果优于VSM和LDA主题模型,有效提高用户兴趣建模的性能。新浪微博等社交网络中包含大量结构化和非结构化数据,仅将用户发表信息作为研究是不够严谨。因此,接下来会引入知识图谱,结合用户行为信息和网络关系,全面地挖掘用户兴趣,实现个性化信息精准推荐。
基金项目
国家社会科学基金资助项目(19BXW110);福建省社会科学规划项目(FJ2017B073);广西科技师范学院科研基金项目(GXKS2022QN018)。
参考文献