APP下载

融合Sentence-BERT和LDA的评论文本主题识别

2023-04-25阮光册黄韵莹

现代情报 2023年5期
关键词:模型

阮光册 黄韵莹

关键词: Sentence-BERT; LDA 模型; 评论文本; 主题识别

DOI:10.3969 / j.issn.1008-0821.2023.05.005

〔中图分类号〕TP393 〔文献标识码〕A 〔文章编号〕1008-0821 (2023) 05-0046-08

随着信息技术的广泛应用和移动智能终端的普及, 社交媒体逐渐成为互联网用户发表观点和意见的主要平台, 海量的、多样化的用户评论数据也成为人们获取信息的重要渠道。在线评论数据包含了用户的观点和态度, 通过对这些数据的主题挖掘,可以有效地实现信息整合, 并能够为企业和网站提供用户最真实的感受, 具有重要的情报价值。然而, 如何从海量的评论数据中快速挖掘用户感兴趣的信息, 挖掘用户评论中隐含的主题, 不仅是企业需要完善的重要技术, 也是情报学领域一直关注的热点问题。因而, 面向评论文本的语义分析和主题挖掘具有重要的应用价值和研究意义。

目前, 主题模型被广泛应用于文本主题识别的研究, 该方法可以将文本数据转换为潜在的低维特征表示, 在无需标注信息的情况下, 挖掘文本的主题信息。然而, 由于评论文本具有上下文信息不足、噪声多、文本规范性不高等特征, 使得评论文本在文档层面的詞语共现时存在稀疏性较高的问题, 因此, 简单地将主题模型应用于评论文本主题识别的应用效果不佳。解决评论文本内容稀疏性问题常用的方法是将短文本整合为长的伪文本, 然而这种方法对数据集本身的依赖程度比较高[1] , 使得该策略无法推广到一般形式的文本。在评论文本实践应用方面, 重构经典的LDA 主题模型, 使其适用于用户评论处理, 也是一种常见的方式。虽然重构的模型具有一定的通用性, 但这一策略以传统主题模型的概率计算为基础, 仍然存在对评论文本语义描述不充分、无法有效捕获评论文本中词之间的相关性以及学习到的主题语义连贯性不强等问题。

为此, 本文将Sentence-BERT 与LDA 相结合,利用Sentence-BERT 的孪生网络结构, 获取评论文本句子层面的向量特征, 采用LDA 主题模型, 利用词袋模型, 识别评论文本词语层面的主题向量,随后将句子嵌入向量与概率主题分布向量连接, 并采用K-means 算法对向量空间进行聚类, 并从聚类中提取评论文本的主题信息。通过与目前常用的文本分析模型的对比, 验证了本文方法的有效性。

1相关研究

评论文本主题识别是指对社交媒体平台产生的大量用户生成内容, 利用文本挖掘技术识别隐藏在其中的热点话题[2] 。研究认为, 评论文本的主题识别其本质是一个“聚类” 问题, 主题为聚类后产生的簇, 通过对这些簇进行分析, 可获得评论文本中的潜在主题[3] 。有学者通过实验, 对比了K-Means、谱聚类等18 种聚类算法在评论文本数据上进行主题识别, 并分析了不同算法的性能, 结果表明, 通过选择合适的聚类方法, 可以有效地提取评论文本中的主题信息[4] 。

评论文本主题识别最基本的方法是直接在文本向量空间模型上进行聚类, 其主要思想是对文本进行向量化处理, 如采用TF-IDF 方法, 进而实现文本的聚类[5] 。采用该种方法进行评论文本主题识别的核心思想仍然是关键词匹配, 使用文本中的关键字或关键词来表示主题[6] , 这使得该种方法获取的主题在语义描述效果方面往往并不理想, 且容易产生向量空间的高维性。为解决这一问题, 研究者提出了LSI(Latent Semantic Indexing)模型[7] , 该模型可通过奇异值分解(Singular Value Decomposition,SVD)的方法, 将高维文档向量降维, 并将其映射到较小维度空间上, 解决评论文本在主题识别时的维度灾难问题。然而, LSI 在处理评论文本时, 仍然无法解决多义词的问题, 同时在使用SVD 进行分解时, 算法的开销比较大, 限制了该方法的使用。

为解决评论文本中存在的一词多义的问题, 学者们开始使用经典的LDA 主题模型进行评论文本的主题识别[8] 。有学者采用LDA 模型, 对新浪微博的热门微博数据进行分类并挖掘主题信息[9] ;电商在线评论领域, 学者运用LDA 模型, 对生鲜电商行业用户评论进行分析, 挖掘出影响用户满意度的关键因素, 如包装、新鲜度、物流运输等[10] ;旅游在线评论领域, 学者将LDA 模型与主题社会网络和主题情感分析方法相结合, 对用户评论文本进行跨平台比较, 分析携程和小猪短租平台用户评论的主题信息和主题网络的异同之处[11] ; 也有学者使用LDA 进行建模, 分析在线融资项目评论主题的演化过程, 同时分析了评论主题的演化模式[12] 。然而, 由于LDA 主题模型一般以Dirichlet过程和词袋模型为基础, 并假设词语之间是相互独立的, 因此, 采用LDA 主题模型对评论文本进行主题计算, 往往缺乏对词语之间的语义关联信息的考虑, 缺乏对评论文本潜在主题关联性的挖掘。

为解决评论文本的词语间的语义关系问题, 有学者在传统LDA 模型的基础上加入共词网络分析,通过分析词汇在不同文档间的共现情况, 构建词汇社交网络, 在不损失信息的前提下, 降低了词汇矩阵稀疏性, 并获得了较好的主题识别效果[13] 。考虑到评论文本普遍字数较少, 为了使LDA 主题模型能更好地获取评论句子级别的词共现关联, 学者们对LDA 模型进行了改进。在这些改进模型中,BTM(Biterm Topic Model, 简称BTM)模型[14] 和词共现网络主题(WNTM)[15] 模型最具有代表性, 这两个模型与LDA 模型一样, 都采用Gibbs 采样来发现词汇共现网络中的潜在相似词群, 通过构建“语料库—主题” 矩阵来进行评论文本的主题提取。这些研究针对评论文本应用场景对现有LDA 模型进行改进, 不需要借助外部数据, 使得评论文本主题识别的效果有所提升。虽然, 这些模型具有较强的通用性, 可以改善用户评论文本主题识别的效果[16-17] , 但这些方法均以词袋模型为基础, 仍然存在文本语义描述不充分的问题。

为更好地捕获评论文本主题的语义信息, 学者们开始尝试利用词嵌入[18] 技术来约束主题学习,使得具有相似语义的单词倾向于分布在相同的主题中。文献[19]提出了一种基于词嵌入的主题模型,将文档中的单词替换为有意义的词嵌入, 主题被建模为词嵌入上的多元高斯分布, 并且在连续高斯主题之间学习主题相关性。由于神经网络算法在文本特征提取方面具有显著的优势, 有学者利用Word2vec模型对用户评论特征词进行提取[20] , 并识别用户在线评论主题特征[21] 。也有学者利用BERT[22] 预训练模型, 将句法特征与BERT 词嵌入模型融入到深度学习网络中, 实现细粒度的商品评价主题特征分析[23] 。然而, 将词嵌入结合到评论文本的生成过程中, 增加了模型的复杂性, 在评论文本中词共现信息较为稀疏的情况下, 其方法结构相较传统主题模型通常更加复杂。

随着深度学习的研究不断深入, 一些学者开始将深度学习模型与LDA 主题模型相结合, 实现评论文本的主题识别。深度学习的方法通过对词语向量化, 使词语之间的紧密程度得到增强, 将LDA主题模型与深度学习模型相结合, 在文本语义分析上取得了较好效果。文献[24]将LDA 对主题建模的全局表示与Word2vec 对上下文词语关系的局部性相结合提出Topic2vec 模型, 通过实验, 在性能上优于传统的LDA 模型, 主题的语义性也更强。此外, 文献[25]以Word2vec 为基础, 结合LDA 模型, 提出了Lda2vec 的词向量模型。文献[26] 将LDA 模型与Bi-LSTM 模型相结合, 挖掘在线MOOC评论中主题的情感信息。近年来, 随着BERT 等深度学习模型在文本语义分析上取得了较好效果, 出现一些将BERT 与LDA 相结合完成文本主题识别研究。如有学者为实现主题细粒度的舆情情感演化仿真, 将LDA 主题模型与BERT 模型深度融合, 优化主题向量助力文本主题聚类[27] , 也有学者提出一种融合BERT 和LDATextRank 的关键词提取方法, 分析了慕课网用户评论的主题信息[28] 。

综上所述, 现有的评论文本主题识别, 将LDA主题模型与深度学习模型相结合, 成为一种新的技术应用方向, 这些方法借助神经网络提取文本的局部特征, 來提升主题的语义相关性。但考虑到评论文本的特殊性, 有时一句话即代表一个主题信息,因此, 将评论文本作为一个整体语料库进行主题识别, 容易造成主题的语义连贯性不强的问题。目前, 已经有研究将词向量转换为文本向量[29] , 并采用无监督算法将文本的段落向量化, 实现从不同长度的文本中学习固定长度的特征, 并在评论文本的主题识别中获得较好的效果。但该方法需要消耗较大的计算成本, 而且评论文本的生成比较随意,制约了段落划分的准确性。

为此, 本文在LDA 模型的基础之上, 结合Sentence-BERT句子嵌入向量, 提出一种面向评论短文本的主题识别框架, 基于对评论文本的句子和主题的向量化连接, 探索评论文本中词义相关关系。模型在保持LDA 模型优越性的同时, 加入了文本句子层面的语义相关性信息, 约束主题的生成, 能更好地理解不同语境下评论文本的语义特征, 提高主题的连贯性及细粒度划分的精准度。

2实验设计与理论基础

2.1实验设计

对评论文本进行主题分析, 面临的第一个问题是将文本这种非结构化数据转化为向量型的结构化数据[30] 。

目前, 基于词频信息的词袋模型(Bag -of -Word, BOW)[31] 是一种经典的文本向量化处理的方法。基于词袋的文本表示方法将语料库中的词向量处理后进行向量累加, 作为整篇文本的向量表示[32] 。LDA 主题模型[33] 是经典的基于词袋模型进行文本表示的方法, 模型假设文本中的词之间是相互独立的, 通过文档层面的词语共现实现语料库的主题挖掘。

由于评论文本普遍字数较少, 一条评论通常只包含几个词和少量特征信息, 缺乏充足的词共现和上下文共享信息, 在很多情况下, 用户评论文本的一句话就可能代表一个主题信息。加之由于网络用户的差异巨大, 使得评论文本往往存在表达不标准和字符缺失等问题, 使得采用简单的文本分词和词袋模型进行评论文本主题识别, 无法有效地抽取到有意义的语言特征。因此, 本文采用由Reimers N等[34] 在2019 年提出的句子向量计算模型Sentence-BERT(简称SBERT), 通过生成句子的Embedding向量, 将评论文本以句子的形式映射到一个向量空间中, 随后与LDA 主题模型获得的文本主题向量进行串联, 建立评论文本向量。最后采用聚类方法, 提取类簇的主题信息, 完成评论文本的主题识别。具体流程如图1 所示。

本研究所提出的架构由4 个主要部分组成: 首先, 对评论文本进行预处理, 包括文本数据清洗、去除停用词以及分词操作; 其次, 文本的向量化处理, 采用LDA 主题模型对评论文本语料库进行概率主题计算, 同时引入SBERT 模型, 对评论文本进行句子嵌入向量计算; 第三步, 向量连接, 构建编码器, 对输入向量数据在潜在空间实现串联, 重构数据; 最后, 使用K-means 聚类方法, 从聚类中提取评论文本的主题词。

2.2融合SBERT 和LDA 的文本向量化

2.2.1基于LDA 的文本概率主题

主题的识别是指从文本中获取对整篇文本而言具有总结性的关键词汇。目前, 潜在狄利克雷分布(Latent Dirichlet Allocation, LDA)是机器学习领域对文档建模的主要方式, 用来挖掘文本的潜在主题, 被广泛应用到文本主题识别的应用中。该模型是一种贝叶斯概率模型, 采用概率推断算法处理文本, 模型产生词、主题和文档3 层概率, 通过主题将词和文档进行连接[35] 。主题模型在主题识别过程中基于词袋(Bag of Words)的假设, 并通过概率计算, 将词分配给一个主题。

2.2.2基于SBERT 的句子嵌入向量

SBERT 是由普适知识处理实驗室在2019 年提出的句子向量计算模型[34] , 模型是针对BERT 作为句子表征效果太差而做出的一种改进, 主要解决BERT 模型不适合文本聚类等非监督的自然语言处理任务。SBERT 通过句子向量化的处理, 使得文本的向量化表达能够承载更多的语义信息。

SBERT 采用了孪生网络(Siamese and TripletNetwork)来更新权重参数, 以达到生成的句子向量具有语义信息, 通过使用预训练的模型, SBERT模型能够获得在语义上有足够意义的篇章向量。SBERT 在BERT/ RoBERTa 的最后一层输出上增加了一个Pooling 操作, 从而生成一个固定大小的句子Embedding 向量[34] 。目前, 已有学者采用SBERT 与LDA 结合, 实现对咨询问题提示列表的构建[36] ,但应用于评论文本的主题识别方面, 国内的研究仍不多。

SBERT 采用3 种Pooling 策略, 即: CLS-poo?ling, 直接使用CLS 位置的输出向量代表整个句子的向量表示; Mean-pooling(MEAN 策略), 计算每个Token 输出向量的平均值代表句子向量; Maxpooling(MAX 策略), 以及取全部Token 输出向量各个维度的最大值代表句子向量。实验结果显示,在无监督环境下, 获得句子向量最好的方式是MEAN 策略[34] 。

2.2.3向量的连接

由上文可知, 利用LDA 模型, 本文获得了评论文本的概率主题向量, 借助SBERT 模型, 获得句子嵌入向量, 为了实现评论文本的主题挖掘, 需要将这两个向量连接起来。由于待连接的向量位于信息稀疏且相关的高维空间中, 因此, 本文使用编码器连接向量, 实现向量在低维潜在空间的表示。这里将包含句子向量和主题特征向量叠加后的向量定义为:

其中, Vs 为句子经过SBERT 模型后的向量表示。C 为句子的主题向量特征, 即通过LDA 模型获得的每个主题与评论文本d 中的句子S 的余弦距离获得,“;”为向量连接符号。

2.3模型的优势

LDA 主题模型在对评论文本进行主题计算时有其局限性。首先, 当文本较短时, 建模时缺少必要的文本信息, 主题识别的效果并不理想; 其次,评论文本往往存在一句话就是一个主题, 使得评论文本的主题存在不连贯的现象, 致使LDA 模型很难确定评论文本的主要主题; 最后, 评论的主题很大程度上需要通过上下文信息进行理解, 简单地采用篇章集的词共现, 无法准确有效地获得语义主题信息。

因此, 本文通过融入SBERT 的句向量, 将句子层面的上下文信息与主题特征融合, 能够充分结合上下文语义信息, 弥补LDA 主题模型的劣势, 通过语义聚类算法, 抽取重要的主题词作为评论文本的语义描述, 提高了评论文本主题识别的语义效果。

3实验过程及结论

3.1数据预处理

本文的实验数据选取携程网有关上海市迪士尼旅游的用户评论数据, 通过Python 编写爬虫软件,共获取9 095条评论文本, 评论数据的时间跨度为2020 年1 月—2022 年7 月。预处理环节, 首先剔除少于5 个字符的评论, 并删除重复使用单一词语的评论文本, 如“很好很好很好很好” 等, 获取有效评论8 891条评论文本; 然后使用停用词表剔除评论文本中高频无意义词汇; 最后采用Jieba 分词组件对文本进行分词处理, 获得评论文本语料库。预处理后, 语料库中评论文本的平均长度为8.47。

3.2基于SBERT 和LDA 评论文本向量化

本文载入经过评论文本fine-tune 操作的多语言模型distiluse-base-multilingual-cased-v1 包作为文档数据的预训练模型, 采用SBERT 对8 891条评论文本数据进行向量化处理, 最终得到8 891行?512 列的评论文本句向量化矩阵。

对于评论文本的主题嵌入向量, 本文采用LDA主题模型进行主题计算, 为获得最佳主题数,采用困惑度模型对最佳主题数进行计算。实验中, 采用Python 3.6 编写程序进行困惑度计算, 计算主题数选择由2~20, 通过计算, 最佳主题数选择, 具体如图3所示。从图3 中可见, 在主题数为14 时( 值为:195.80877), 曲线下降趋势放缓, 因此, 本文在实验中选择K=14 采用LDA 主题模型进行主题计算。

在分别获得句向量和主题向量后, 需将这两个向量连接起来。本文使用自动编码器来学习连接向量, 将SBERT产生的句子嵌入向量, 与LDA模型产生的概率主题向量连接, 实现将两组向量串联在低维潜在空间上。

3.3评论文本主题识别

SBERT 句向量与LDA 主题嵌入向量连接后,得到具有浓缩信息的低维表示。为了更好地识别主题, 需要对连接后的向量矩阵进行聚类操作, 并从聚类中获得上下文主题信息。为获得更好的语义关联聚类, 本文实验中采用K-means 聚类算法。Kmeans算法根据最近邻原则将数据点分配到距离最近的中心点上, 可以得到局部最优解。由于该方法在文本聚类时高效、简单、快速, 且适合于大数据聚类, 这使得在很多针对上下文信息聚类的NLP任务中K-means 成为聚类操作的首选。采用Kmeans聚类时, 算法需要确定参数K。上文获得的SBERT+LDA 连接在潜在空间上表示的向量, 数据的分布依据LDA 主题建模中的主题数量, 由此可见,K-means 算法中的聚类簇的数量K 与LDA 的主题数形成了一个逻辑上的联系, 因此, 在实验中, 将评论语料库聚合成14 个类簇。

3.4实验结果

本文对获得的14 个类簇, 通过采用t-SNE降维算法, 将数据降到2 维呈现, 如图4 所示。

从图4 中可以看出, 识别出的14 个类簇在空间上分布明确, 说明本文在主题聚类时, 类簇内具有较高的一致性, 模型的聚类效果颇佳。

表1 显示了基于SBERT-LDA 方法获得的14个类簇的主题信息。

从表1 中可以看出, 有关迪士尼旅游的用户评论, 主要围绕游园感受、迪士尼小镇、乐园项目、迪士尼酒店和周边交通几个主题展开。其中, 迪士尼小镇的评论最多, “景色优美” “购物” “休闲”“步行街” 反映了迪士尼小镇购物餐饮娱乐的特征; 游园感受主题的评论是第二大主题, “好玩”“童话世界” “挺不错” “梦幻世界” “老少皆宜”等主题词, 反映了游客对迪士尼乐园的总体感受;乐园项目是第三大主题, “花车游行” “烟花” “海盗项目” 是评论中提及率较高的主题词。其他的主题虽然占比不高, 但也从不同视角反映了游客对迪士尼旅游的印象。

3.5实验对比

为验证本文方法的有效性, 分别选取目前常用的评论文本主题识别方法进行对比, 其中主题一致性(Coherence) 采用Gensim 包的CoherenceModel,使用‘u_mass 的方法计算获得。具体结果如表2所示。

从表2中可见, 本文方法在主题一致性Coher?ence 指标最高, 值为-2.53965, 是所有方法中值最高的, 比BERT 模型高出0.5 个百分点, 说明本文方法在主题效果上优于其他方法。值得注意的是, Lda2vec 模型的主题一致性达到-2.79112, 说明LDA 与词嵌入的融合是有效的。

4结束语

为了解決评论文本主题识别时语义描述不充分、无法有效捕获评论文本中词之间的相关性以及学习到的主题语义连贯性不强等问题。本文将SBERT 句嵌入模型与LDA 概率主题模型相融合, 通过编码器实现句嵌入向量与概率主题向量串联, 并采用Kmeans聚类算法对向量空间聚类, 获取类簇的核心词, 实现评论文本主题识别。通过对比实验, 本文方法在主题一致性方面优于目前常用的方法。

本文方法可以有效地挖掘评论文本中具有语义信息的主题词。此外, SBERT预训练模型可以通过fine-tune的方法进行微调, 将会获得更好的句嵌入结果, 进一步提升文本主题识别的效果, 因此, 模型的可移植性比较强。同时也需注意, 文本将LDA 与SBERT 模型相融合, 客观上增加了主题识别过程的复杂性, 通过对比, 本文方法的耗时要高于单独使用LDA 和BERT的情况,但模型整体时间效率要优于BTM 模型。

猜你喜欢

模型
一半模型
一种去中心化的域名服务本地化模型
适用于BDS-3 PPP的随机模型
提炼模型 突破难点
函数模型及应用
p150Glued在帕金森病模型中的表达及分布
函数模型及应用
重要模型『一线三等角』
重尾非线性自回归模型自加权M-估计的渐近分布
3D打印中的模型分割与打包