基于BERT的端到端旅游评论意见挖掘方法

2021-09-28 10:11蔡玉舒詹瑾瑜
计算机技术与发展 2021年9期
关键词:类别意见分类

蔡玉舒,曹 扬,江 维,詹瑾瑜,李 响,杨 瑞

(1.电子科技大学 信息与软件工程学院,四川 成都 610054;2.中电科大数据研究院有限公司,贵州 贵阳 550022;3.提升政府治理能力大数据应用技术国家工程实验室,贵州 贵阳 550022)

0 引 言

以“强通用性、强交互性、高集智性和高增值性”为特征的数字时代的来临,正在激活文化和旅游资源,为文旅产业发展注入新活力。数字技术在文旅产业的应用,正在赋能公共服务与行业监管,形成新服务与新监管,让智能化管理成为可能。

利用文旅产业运行的各类数据,行政管理部门更容易识别差别化个性化的公共服务需求,有助于提升对文旅产业的公共服务效率,同时也为管理部门的监管提供了技术支撑[1]。分散于各大旅游网站的游客评论包含了丰富的具有情感倾向的观点表达,可以为相关人员提供参考依据。

网站的游客评论数量庞大,可以借助自然语言处理技术进行信息挖掘。方面级情感分析(aspect-based sentiment analysis,ABSA)是细粒度意见挖掘的一种有效方法。ABSA旨在确定评论对特定方面(包括方面词语和描述类别)的意见(包括意见词语和情感极性)[2-4]。例如在评论“峨眉山金顶上的景色不错,但这价格真心贵”中,“景色”是方面词,描述的类别是风景,“不错”是描述方面词的意见词,涉及的情感极性是正向(如图1所示)。ABSA包含了许多子任务,现有的研究大部分集中在给定方面词的前提下确定对应的情感极性(aspect-based sentiment classification,ABSC)[5-7],但实际应用中问题会稍微复杂一些,主要体现在两个方面:一是在实际情况中,由于标注成本比较高,事先给定的方面词往往无法通过人工标注提供。之前的研究试图借助自动化的方法,使用流水线的模式先抽取方面词之后再进行情感分析,但会引入错误传播的问题;二是对爬取的游客评论进行分析后发现,中文的口语表达中有省略方面词的现象,例如评论“方便快捷,及时到位”中包含了对网络购票的积极评价,但并没有明确给出方面词。在文中的数据集中,只包含意见词而方面词缺失的情况约占总数的1/5。如果只对方面词进行抽取和情感分析,将会遗漏掉有效评价信息。

图1 旅游评论意见挖掘示例图

研究者们提出了一些融合词语抽取和分类的多任务方法,试图解决第一个问题。早期的工作[8-9]尝试验证抽取和分类两个任务之间的关系,并提出更为集成的解决方案,但这些方案的效果并没有优于流水线模型。Li[10]重新检查了任务,提出了基于两层堆叠LSTM的序列标注模型,其中利用一种简单的门机制来保持标签之间的情感一致性。实验结果证明了两个子任务的相关性,但效果不足以投入到实际应用中。此后序列标注的方式就成为了融合任务的基本解决思路。BERT提出之后,率先在ABSC领域取得了很好的效果。Li等人[11]随后提出了基于BERT的序列标注模型,希望用端到端的序列标注方式解决抽取和分类的融合任务,并为之后的基于BERT的融合任务研究提供基线。他们利用BERT作为嵌入层获得句子表示,并在之上构建了不同的简单解码网络进行了对比实验,结果证明了BERT的有效性。但该研究依然以抽取方面词为基础,并没有考虑在实际的中文评论中方面词缺失的情况。同时,在ABSA序列标注的问题中,如何保持情感一致性也是解码部分的一个挑战。指针网络最初的设计是简化了attention机制,将输出序列对应到输入序列,从而可以适应输入序列长度的变化[12]。后续应用在机器阅读理解任务(MRC)中的主要方式为设计两个输出长度为l的分类器分别预测开始位置和结束位置,其中l表示句子的长度。对于ABSA任务来说,指针网络这种直接预测词语边界的方法,可以解决之前融合任务中情感一致性的问题[10]。

在这样的背景之下,文中选择融合意见词抽取(opinion words extraction)和描述类别分类两个任务。通过抽取意见词而不是方面词来弥补方面词缺失导致的有效评价信息遗漏的问题,通过类别分类来弥补方面词缺失导致的描述目标不明确的问题,以形成完整的观点表达,并应用在实际的评论分析中。文中提出了一种基于BERT的端到端意见挖掘方法,对上述任务进行分析。首先使用预训练的BERT作为嵌入层获得编码后的句子表示,再使用指针网络预测句子中每个位置对应的标签。标签对应着是否处于意见词范围内,以及对应描述的类别,将类别描述和意见词拼接之后可以得到观点表达二元组。此外,由于旅游领域没有相关的数据集,爬取了携程、同城和途牛三个网站关于峨眉山和青城山的评论,并参照semEval-2014[2]对评论进行了筛选和手工标注。该数据集除了应用在本任务中,还可作为领域数据集参与ABSA其他子任务的研究。在构造的数据集上,文中提出的方法的准确率可达到81.9%,相比现有的序列标注经典方法,效果提升可达到2%。

1 系统模型

文中提供一种基于BERT的端到端意见挖掘方法,解决意见词抽取及分类的问题,系统的整体分析框架如图2所示。

图2 旅游评论序列标注模型

将输入的评论句表示为一个长度为L的token序列x={x1,x2,…,xL}。首先使用BERT作为嵌入层对输入token进行编码处理,得到输入token的上下文表示T={t1,t2,…,tL}∈RL×dimt,其中dimt是经过transformer处理后得到的表示向量的维度。其次将上下文表示输入到下游解码部分,文中使用指针网络构建下游解码网络,预测整个句子的标记序列y={y1,…,yt,…,yL}。其中yt的可能取值为{B,I,O}-{“景区”,“风景”,“票务”,“体验”,“消费”,“服务”,“旅游团”}。其中,“-”之前的字母集中,B代表当前字处于意见词的开头,I代表了当前字在意见词中,O代表了不为意见词。“-”之后为描述类别的集合,是根据标注经验给定的7个预定义类别。

2 基于BERT的端到端旅游评论意见挖掘方法

2.1 编 码

文中采取了端到端的方法对输入的旅游评论文本进行处理。其中编码的部分是将输入的中文句token转换为可计算的向量形式上下文表示,用以进行之后的计算。这里采用了预训练的BERT模型来编码输入评论的上下文信息。BERT[13]是一个基于多层双向Transformer的语言表示模型,相比于传统的word2vec编码了更多的上下文和句子信息,以此增强了表示的能力。首先在输入的部分,每个单词叠加了三部分的embedding,单词embedding、句子embedding以及位置embedding。之后引入多层Transformer对token进行优化,具体的计算方式如下:

Hl=Trans(Hl-1)

(1)

其中,H表示句子经第l层transformer处理之后的表示结果,最后一层的表示计算结果将作为下游任务的输入。

2.2 解 码

得到BERT层计算的句子表示之后,文中设计了指针网络为下游任务解决方法。此外,文中将提出的方法与经典序列标注任务所用解码方式条件随机场(CRF)进行对比,在此也做了简述。

2.2.1 指针网络

(1)开始结束位置预测。

由于文中的标注任务涉及到多分类的情况,所以选择使用两个n分类的分类器分别预测开始位置和结束位置,其中n表示类别的数量。

Pstart=softmax(WS·H)∈Rl×n

(2)

Pend=tanh(We·(H:WS·H))∈Rl×n

(3)

其中,WS为计算开始位置的参数矩阵,We为计算结束位置的参数矩阵,H为BERT层输出的句子表示。

(2)位置匹配。

在一个句子X中可能存在多个意见词,这就意味着可能有多个start和end标记,这就涉及到一个位置匹配的问题。因为意见词抽取实际上不存在命名实体识别(NER)中的实体嵌套的情况,所以匹配开始结束位置时使用最近匹配的方式就可以完成。

(3)训练和测试。

模型构建的过程中,开始位置的预测结果参与了结束位置的预测,因而在最后加入了layer normalization以降低拟合的难度。两阶段的预测在训练过程中会产生两个loss,分别是预测开始位置时的Lstart和预测结束位置时的Lend。最小化的总体训练目标函数如下:

(4)

其中,α,β∈[0,1],为控制loss贡献的超参数。这两个loss以端到端的方式联合训练。测试时依据分类和抽取是否均一致作为评价标准来计算准确度和召回率。

2.2.2 条件随机场

条件随机场是序列标注任务中常用的解码器,经常在NER等序列标注任务中结合神经网络使用[14-15]。文中在BERT层之上引入一层条件随机场(CRF)完成序列标注的任务。

(1)CRF。

CRF通过引入之前步骤的标注结果进行标签约束,同样改善了之前的模型中无法保证分类一致性的问题。

(5)

其中,s表示计算的得分,对这个分数进行softmax得到标注序列的概率值;MA是随机初始化的转移矩阵,MP是从BERT得到的句子表示线性转换而来的发射矩阵。

(2)训练与测试。

训练时计算CRF层的loss,并进行优化即可。测试时同样依据的是分类和抽取是否均一致作为评价标准,实现了对比<类别,开始位置,结束位置>三元组的计算方法,在计算F1-score时采用的是micro-f1。

3 实验分析

3.1 实验设置

本实验的硬件环境:CPU为Intel i7 9700K,内存为16G RDD4,显卡为两块Nvidia RTX 2080ti,运行环境为Linux操作系统(Ubuntu 16.04.6)。软件编程语言为python。

本实验使用的预训练模型是哈工大开源的中文预训练BERT模型“Chinese-bert-wwm”,其中transformer的层数为L=12,隐藏层维度为768,学习率为2e-6,batch size为8。

3.2 数据集构建

3.2.1 数据采集

本实验中使用的景区评论数据均来自旅游网站的公开评论。通过爬虫采集来自三个旅游网站对于峨眉山和青城山景区的公开评论,均发表于2019年。同时对爬取的原始评论进行了去重和筛选的操作,去除了无效的评论(如从携程网站爬取的评论中存在系统默认评论,“用户未点评,系统默认好评”,以及毫无含义的评论),并将评论长度限制在200个字之内。

3.2.2 数据标注方法

数据标注参考了英文数据集中SemEval-2014提供的标注方法,将标注分为方面词、意见词、情感分类以及类别四个维度。

关于方面词以及意见词的划分,由两位专业人员分别对所有的句子独立进行标注,再讨论并消除有分歧的地方。考虑到ABSA其他子任务的情况,标注方式为,以方面词为单位标记<方面词,意见词,类别,情感>四元组,同时提供词语(包含方面词和意见词)开始和结束位置标记。一个评论句中可能会有多组标记四元组。我们仅保留具有有效意见词的四元组,方面词缺失标记为“_”。

关于类别划分,根据标注经验总结出7个预定义的类别,分别是:景区、风景、票务、体验、消费、服务以及旅游团。其中“景区”这一类别包含了一些描述范围模糊以及较难分类的情况,和SemEval-2014中的Others接近。

3.2.3 数据集分析

标注完成的数据集共有1 746条独立的评论,共3 155个标记四元组。其中方面词缺失的四元组约占20%。情感极性以及类别标记情况如表1所示。

表1 数据标记分析

在整个细粒度情感分析的任务中,文中所解决的问题只是其中一个子任务。构造的标注数据集不仅可以用于当前任务,也可以用于探索ABSA的其他子任务,因而采取了更为完整的四元组标注方式,希望可以为之后的研究者提供中文语料。

3.3 模型性能评估

3.3.1 意见挖掘模型中分类任务评估与分析

由于在旅游领域中类别较多,为了进一步了解模型在分类上的学习情况,文中对比了同一模型在不同类别上的表现,结果如表2所示,可以看到同一模型在不同类别上的效果也存在差异。

表2 模型在不同类别上的表现

模型在“消费”和“票务”两个类别上表现较好,得分较低的三个分类分别为“景区”、“旅游团”和“体验”。总体而言,标记数据数量越多,在模型上的效果越好。“服务”和“景区”两个类别比较特殊,“服务”类别的标记数量最少,但得分较高,“景区”类别的标记数量最多,反而得分比较低。观察了测试结果之后发现,“服务”类别虽然数量较少,但意见词和上下文语境相对比较集中。而“景区”的意见词和上下文语境较为分散,包含了无法准确分类的部分意见组合,特征相对其他类别并不明显,所以各项得分均处于低位。其中意见词和上下文语境特殊性的作用在其他类别的测试结果中也有所体现。

比如最频繁出现的意见词“好”和“棒”,由于指定性不强,会存在被错误分类成数据量更大的上下文类别的情况。但“体验”类别中“不虚此行”和“消费”类别中的“贵”这样比较特殊的意见词,抽取和分类的准确率都更高。

3.3.2 旅游评论意见挖掘模型评估与分析

本节将提出方法与现有方法相比较,使用准确率(precision)、召回率(recall)和F1-score指标评估模型性能。

如表3所示,在使用构建的旅游数据集的情况下,文中提出的基于BERT和指针网络的方法在测试集上准确率可达到81.9%,F1-score可达到79.6%。

表3 不同模型效果比较

设计了两组对比实验进行评估。首先将经典序列标注模型BiLSTM结合CRF作为基线,由图3可以看出,同样以CRF作为解码结构,即使在领域语料规模较小的情况下,使用BERT作为编码模块的效果依然要好于结构相对简单的BiLSTM。表现在最终的F1值上,以BERT为编码模块的模型得分高出将近0.3%,这证明了BERT作为编码模块相比word2vec与BiLSTM编码可以生成更有效的句子表示。

图3 旅游评论意见挖掘不同模型比较

在解码方式的对比上,本实验设计了序列标注任务中经典的解码方式CRF,与提出的指针网络进行对比。从图中可以看出,从实验最终的的效果来看,指针网络模型最终的F1得分要稍高于CRF,高出约1%。同时,在训练的过程中,观察最终不同类别各自的得分,CRF会出现由于训练数据不够充分,导致得分偏高的情况,而指针网络相比而言则要更加稳定。

由上述分析可知,文中提出的方法相比于经典序列标注方法,在解码上使用BERT生成了更为有效的句子表示。在编码上,以指针网络作为解码网络相比CRF,在准确率和F1-score上均有提升。

4 结束语

随着旅游类互联网产品的兴起,网络上产生了大量针对目的景点的主观评论,通过对评论进行意见挖掘可为旅游监管提供重要依据。在此背景下,文中结合方面级情感分析中意见词抽取和类别分类两个子任务,提出了基于BERT的端到端评论意见挖掘模型,得到<意见词,类别>二元组,以形成完整的观点表达,并应用于实际的评论分析中。和现有的序列标注模型相比,文中提出的模型具备更好的性能。此外,还构建了中文旅游评论数据集,供此后相关任务的研究。

目前该研究还有可以改进的地方。比如,由于方面级情感分析领域数据标记成本较高的原因,标记数据的数量往往非常少,文中提出的数据集规模也并不大,在这种情况下模型受数据约束的影响比较大。在实验中,BERT由于复杂度较高,在较小规模的领域数据集上,整体效果相比BiLSTM难以有很大的提升。利用已有的领域数据集进行知识迁移可能是一个比较有效的解决小数据量问题的思路。因此在未来的研究中,可考虑使用知识迁移的方法,解决方面级情感分析中领域数据缺少的问题。

猜你喜欢
类别意见分类
一起去图书馆吧
评“小创”,送好礼
没有反对意见
评“小创”,送好礼
简析基于概率预测的网络数学模型建构
按需分类
教你一招:数的分类
说说分类那些事
给塑料分分类吧
选相纸 打照片