作为一家生活服务在线电子商务平台,美团致力于通过科技链接消费者和商户,努力为消费者提供品质生活。到店餐饮(简称到餐)作为美团的核心业务之一,是满足用户堂食消费需求、赋能餐饮商户在线运营的重要平台,在服务百万级别的餐饮商户和亿级别C端用户的过程中,积累了海量的用户评论信息(User Generated Content, UGC),包含了用户到店消费体验之后的真情实感,如果能够有效提取其中的关键的情感极性、观点表达,不仅可以辅助更多用户做出消费决策,同时也可以帮助商户收集经营状况的用户反馈信息。
近年来,大规模预训练模型(BERT)、提示学习(Prompt)等NLP技术飞速发展。文本分类、序列标注、文本生成各类自然语言处理任务的应用效果得到显著提升,情感分析便是其中最常见的应用形式之一。它的任务目标在于通过NLP技术手段对输入文本进行分析、处理、归纳、推理,给出文本情感极性判定的结果。
按照情感极性判定粒度,可以细分为篇章/整句粒度情感分析、细粒度情感分析(ABSA, Aspect-based Sentiment Analysis)[1]。一般而言,细粒度情感分析的任务目标主要围绕属性(Aspect Term)、观点(Opinion Term)、情感(Sentiment Polarity)三要素展开,可以拆分为属性抽取、观点抽取以及属性-观点对的情感倾向判定三个级联任务[2-5]。例如,对于给定的用户评论“这家店环境不错,但服务很糟糕”,预期的输出结果为(环境,不错,正向)、(服务,糟糕,负向)。
到餐算法团队结合到餐业务供给侧、平台侧、需求侧的业务场景,为核心业务链路的智能化提供高效、优质的算法解决方案,通过算法能力辅助业务降本提效。本文结合到餐B/C端业务场景,探索细粒度情感分析技术在用户评价挖掘方向的应用实践。
秉承“帮大家吃得更好,生活更好”的使命,到餐面向消费者提供包括套餐、代金券、买单、预订等在内的丰富产品和服务,并通过黑珍珠餐厅指南、大众点评必吃榜等榜单,以及搜索、查询、评价等,帮助消费者更好地作出消费决策。同时,为商家提供一站式的营销服务,帮助餐饮商户沉淀口碑、获取用户、增加复购等,进而轻松管理餐厅。
随着餐饮连锁化加速、行业竞争格局激烈,商户管理宽幅和难度逐步加大,商户的经营要求更加精细,数据管理意识更加迫切。用户历史评论中蕴含着大量用户消费后的反馈,是情感分析的重要组成部分,不仅能够描述消费感受,同时也能反映出就餐环境的好坏。因此,做好情感分析有利于帮助餐饮门店提升服务质量,也能够更好地促进消费体验。
UGC评价分析,主要是从评论文本中挖掘出菜品、服务、食品安全(简称食安)等方面相关信息,获取用户在各个维度的细粒度情感,细致刻画商家的服务现状,如上图2所示。对于餐饮商户,菜品、服务、食安评价分析问题可以拆解如下:
其中问题2和3是典型的三元组抽取任务,即识别服务或食安方面的(属性,观点,情感)。对于问题1,在服务、食安评价问题的基础上,菜品评价需要识别评论中提及的菜品,相比业界四元组(属性,观点,属性类别,情感)[6]抽取任务,到餐场景下主要为 (菜品,属性,观点,情感)四元组的识别。
在美团内部,我们针对UGC评价分析问题,调研了相关工作成果,主要为基于MT-BERT预训练模型开发了多任务模型,试图解决情感分析中的ACSA (Aspect-Category Setiment Analysis) 问题以及(属性,观点,情感)三元组抽取问题,并实现了句子粒度的情感分类工具开发,同时开源了基于真实场景的中文属性级情感分析数据集ASAP[7-9]。但对于美团到餐业务来说,我们需要基于具体场景提出针对性的解决方案,如四元组抽取任务,不能直接复用其他团队的相关技术和工具,因此有必要建设服务于到餐业务场景的细粒度情感分析技术。
在业界,我们也调研了行业其他团队如腾讯、阿里在细粒度情感分析方面的相关研究。2019年腾讯AI Lab和阿里达摩院合作[3],提出了基于两个堆叠的LSTM和三个组件(边界引导、情感一致性和意见增强)的模型,将“BIOES”标注体系与情感正向(Positive)、中性(Neutral)、负向(Negative)结合形成统一标签,可以同时识别属性和情感。同年,阿里达摩院提出了BERT+E2E-ABSA模型结构,进一步解决属性和情感的联合抽取问题[10],同时提出(属性,观点,情感)[2]三元组抽取任务,并给出了两阶段解决框架,首先分别识别出属性(情感融合为统一标签)和观点,然后判断属性-观点是否配对。
自此,业界后续研究开始向三元组联合抽取展开[11-14]。2021年2月,华为云[6]提出(属性,观点,属性类别,情感)四元组抽取多任务模型,其中一个任务识别属性和观点,另一个任务识别属性类别和情感。2021年4月,腾讯[15]引入Aspect-Sentiment-Opinion Triplet Extraction (ASOTE)任务,提出了一个位置感知的BERT三阶段模型,解决了(属性,观点,情感)三元组抽取问题。
调研机构 | 行业 | 预训练模型 | 细粒度情感分析问题 | 阅读理解问题 | 三元组问题 | 四元组问题 | 联合抽取问题 |
---|---|---|---|---|---|---|---|
阿里达摩院[2,10] | 电子商务 | ✓ | ✓ | ✗ | ✓ | ✗ | ✓ |
华为云[6] | 云服务 | ✓ | ✓ | ✗ | ✗ | ✓ | ✓ |
腾讯[15] | 社交 | ✓ | ✓ | ✗ | ✓ | ✗ | ✗ |
美团到餐 | 本地生活 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
从学术界来看,更关注于如何更好地进行实体抽取、情感分类以及多任务的联合抽取,可能会忽略工业界落地更关注的计算时效性(如多维度标注与情感维度整合,增加计算、存储资源消耗,在有限资源下时长延迟)、效果准确性(如任务模块端到端开发,忽略业务的个性化,直接复用导致准确性降低)等方面要求,导致相关技术方法并不能直接应用于业务场景,需要进一步开发完善才能实现业务的落地。
如上表所示,针对以上调研,我们借鉴了美团搜索与NLP部在三元组细粒度情感分析方面的经验,拆解到餐四元组抽取问题,并结合学界最先进的阅读理解、注意力机制等方面的实体抽取、情感分类经验,设计开发了应用于到餐业务的细粒度情感分析解决方案。
如上文所述,菜品评价主要关注菜品、评价属性、菜品观点和观点情感,而服务、食安评价问题,主要关注服务或食安方面的评价属性、观点和情感。就细粒度情感分析任务而言,可以看出,前一个问题涉及四元组信息,而后两个问题仅涉及三元组信息。
由于三元组问题可以看作是四元组问题的子问题,不失一般性,下文将重点阐述四元组相关技术挑战。
问题3:如何同时对四元组抽取、识别,减少pipeline方法的错误累计影响?
减少pipeline方法的错误累计影响,典型的解决方案是提出同时处理信息抽取和分类任务,即多任务学习。传统的方法是直接尝试多任务学习的思路,但过程中忽略了实体间依赖的关系,甚至远程关联关系[2]。当前也在尝试直接将四元组转化成多任务学习过程,将来期望通过建立实体间pair或triplet关系,进行联合抽取、识别。
综上,对于问题1和问题2,我们会按照pipeline识别的结果,再利用策略进行抽取结果的优化;对于问题3,整合实体、关系及分类任务,进行联合学习,将有助于减少pipeline方法的错误累计影响。
如上文2.3的问题2所述,我们采用pipeline的方法,将四元组抽取问题拆解为三个任务,分为实体识别、观点抽取、观点类别和情感分类,如下图4所示:
自2018年BERT[16]出现以后,NER模型由传统的LSTM+CRF替换为BERT+CRF(或者BERT+LSTM+CRF),一度是业界NER任务的SOTA模型,近两年来NER任务主要从以下两个方面进行改进:
考虑到引入额外特征需要构建人工词典,以及转化问答任务形式依赖于人工模板,成本较高,因此采用BERT+CRF模型。
学习率调整,模型策略调优。在实验过程中,我们发现BERT+CRF相比简单的BERT+Softmax效果提升甚微,究其原因,由于预训练模型经过微调之后可以学习到具有明显区分度的特征,导致增加CRF层对实体识别结果几乎没有影响。然而,一个好的CRF转移矩阵显然对预测是有帮助的,可以为最后预测的标签添加约束来保证预测结果的合理性。进一步实验后发现,通过调整BERT和CRF层的学习率,如BERT使用较小的学习率而CRF层使用100倍于BERT的学习率 (即$e2/e1>100$,如图5所示),最终BERT+CRF的效果相比BERT+Softmax有了较明显的提升。此外,在传统NER模型LSTM+CRF基础上,我们也实验了BERT+LSTM+CRF,但效果居然有些许下降,而且预测时间也增加了,因此最终没有引入LSTM层。
观点抽取任务在业界也称为Target-oriented Opinion Words Extraction(TOWE),旨在从评论句子中抽取出给定目标对应的观点词。观点抽取也可以看作是一种NER任务,但若评论涉及多个实体和观点,如何准确抽取所有“实体-观点”关系是一个技术挑战。借鉴MRC(Machine Reading Comprehension)任务的思想,通过构建合理的Query引入先验知识,辅助观点抽取。
QA任务形式,观点抽取建模。如图6所示,模型整体由预训练层和输出层两部分组成。输出层我们使用了常规QA任务输出,包括开始标签(Start Label)和结束标签(End Label),但需要人工设计Quey。参考论文[20]经验,以图3为例,实验发现Query设计为“找出鲜虾馅饺子口味、口感、分量、食材、卖相、价格、卫生以及整体评价”效果最好,可能融入了观点描述信息,更加有助于观点抽取。考虑到QA任务天然有类别不平衡的问题,因此损失函数引入针对类别不平衡的Focal Loss,用于提升观点抽取模型的效果。由于观点抽取也可以看作是NER任务,故我们尝试将输出层设计为CRF层,但实验效果并不理想,可能由于观点语句长度不一且比较个性化,影响模型识别。另一方面,考虑到Google中文预训练模型BERT是以字粒度为切分,没有考虑到传统NLP中的中文分词,在预训练层我们将BERT模型替换为哈工大开源的中文预训练模型,如BERT-wwm-ext、RoBERTa-wwm等,最终模型效果取得进一步提升。
观点类别和情感分类可以看作两个分类任务,其中菜品评价四元组任务的观点类别包含口感、口味、分量、食材、卖相、价格、卫生、菜品整体等8个标签,而情感包含正向、中性、负向、未提及等4个标签,都是业务预定义好的。考虑到用户评论提及某个菜品的观点可能涉及多个维度,若每个维度单独建模,需要构建多个模型,较复杂且维护困难。结合ATAE-LSTM[22]和NLP中心[7-9]情感分析的经验和到餐业务特点,模型整体结构设计为多任务多分类学习框架。
多任务多分类模型,联合建模观点类别和情感。如图7所示,模型整体分为两个部分,分别为BERT共享层和Attention独享层,其中BERT共享层学习观点Embedding表示,Attention独享层学习观点在各个观点类别的情感倾向。考虑到评论中各部分会聚焦不同的观点维度,通过引入Attention结构,使得模型更加关注特定维度相关的文本信息,进而提升整体效果。
pipeline方法的优点是将目标问题拆分为多个子模块问题,对子模块分别优化,通过后处理能在一定程度上解决实体间多对多关系的问题。然而,pipeline方法也会存在一些致命缺陷,主要包括:
参考业界情感分析联合学习现状,主要为(属性,观点,情感)三元组联合抽取。结合到餐业务场景特点(如挑战2.3的问题2所述),整体设计为两阶段模型,第一阶段为对菜品实体、观点和情感联合训练,第二阶段为对观点进行分类,进而得到四元组识别的结果。
目前在学术界,三元组(属性,观点,情感)联合抽取的方法主要包括序列标注方法[11]、QA方法[5,12]、生成式方法[13,14]等。结合菜品分析场景和pipeline方法中观点抽取模块的经验,我们采取了QA式的联合抽取方法,主要参考模型Dual-MRC[5]。
Dual-MRC模型的改进,三元组联合抽取建模。在模型设计过程中,由于Dual-MRC模型分类情感倾向是对某个属性的整体评价,即一个属性只对应一个情感。然而,在到餐业务场景中,新增了菜品实体的识别,同时UGC评论中存在对同一个菜品实体包含不同观点及情感倾向。如图3所示,“味道特别好”表达了对“鲜虾饺子”正向情感,而“有点贵”显然表达了负面情感。因此,我们对Dual-MRC模型进行了改造,将观点和情感标签整合成统一标签。如图8所示,到餐Dual-MRC整体结构基于双塔BERT模型,通过引入两个Query,左边负责抽取菜品实体,右边负责抽取观点和观点情感,从而实现三元组联合抽取。
模型结构说明:
在此基础上,我们也探索了四元组联合抽取的可能,具体操作为对右边Query2进行改造,如“找出鲜虾馅饺子口味评价”,对于每个观点类别都需要构建Query进行预测,从而实现四元组联合抽取。但考虑计算量级较大且耗时较长,最终将观点类别另做预测。
观点类别分类,显然是一个文本分类问题,通常做法是基于BERT分类,取[CLS]位置的Embedding,接一个全连接层和Softmax层即可。在到餐业务场景中,主要面临少样本问题,参考业界NLP少样本解决方法,以基于对比学习的R-drop[23]方法和基于Prompt[24]的第四范式为代表。我们在BERT模型结构基础上,分别实验了Prompt模板方法(如图9所示)和R-drop数据增强(如图10所示)。其中,Prompt模板主要借鉴P-tuning[25]的思想,采取自动化构建模板的方式,基于MLM任务解决问题。
图9中[u1]~[u6]代表BERT词表里边的[unused1]~[unused6],即使用未出现的Token构建模板,Token数目为超参数。实验结果发现,基于BERT的预训练模型,结合P-tuning或R-drop结构,分类效果都能得到一定的提升,且P-tuning的效果略优于R-drop,后续还会持续探索少样本解决方法。
利用到餐的UGC标注数据,对于四元组识别进行了整体效果测评,最终以整体四元组的精确率和召回率计算F1值作为性能评估指标。如图11所示,采用经典的BERT+CRF模型进行实体抽取,在到餐评论标注数据仅达到0.61的F1,经过学习率等调参(Baseline Tuning)优化之后,F1值提升2.61%。如上文所述,在观点抽取模块中,将序列标注问题转化成问答(QA)问题后,采用BERT+MRC模型,F1显著提升至0.64,提升了5.9%,表明问题转化获得较大收益。此外,采用哈工大中文预训练BERT仍取得一定幅度的提升,F1提升至0.65。注意,图11中的模型迭代表示四元组问题中重点优化模块的模型,最终评测四元组整体效果来进行对比分析。
品牌仪表盘
品牌仪表盘作为旗舰店能力的重要环节,提供品牌层面的数据服务,助力生意增长。产品定位为头部餐饮品牌的数据中心,具备基础的数据披露能力,通过量化业务效果,指导商户经营决策。由于大客在平台沉淀了丰富的线上信息(大量的交易/流量/评论数据),可挖掘分析空间较大。应用细粒度情感分析技术从评论数据中挖掘菜品维度、服务维度、食品安全维度相关信息,量化商户经营表现,指导经营动作。关于菜品的用户反馈监控,品牌商户更关注菜品、口味、口感等维度的用户反馈。如上文所述模型迭代后,菜品情感、口味情感、口感情感识别准确率都得到一定的提升。
到餐商户菜品信息优化
随着到餐加强了菜品信息建设,主要包括在生产层面上,整合了商户各来源菜品数据,建设了商户菜品中心,并优化了C端菜品UGC上传功能,有效补充UGC菜品生产;在消费层面上,整合了商户通菜品和网友推荐菜菜品,并基于菜品信息的完善,优化了C端菜品信息的内容聚合及展示消费。同时配合到餐业务,持续通过评价信息生产建设赋能,更多的引导用户从评价生产层面进行商户菜品的描述介绍。主要针对到餐商户菜品关联的评价信息,进行信息联动与展示层面的优化,相比迭代前,有评价菜品覆盖率得到较大的提升。
开店宝评价管理
商家通过提供餐饮服务来获取用户,用户消费后通过评价给商家以反馈,促使商家去不断优化,提供更好的服务,从而获取更多的用户,达到正向循环。评价分析的意义在于建立起评价和餐饮服务之间的通道,实现评价对服务的正向促进循环。通过分析评价内容,帮助商家发现餐厅在菜品、服务、环境等方面,做得好和做得不好的地方,进而针对性的改善。相比迭代前,菜品、服务、环境维度关联评论数得到很大的提升。
经过近一年的建设,情感分析相关能力不但成功应用到到餐商户经营、供应链等业务,而且优化了多源菜品信息,辅助品牌商户进行用户反馈监控,提升商户服务能力。在联合学习探索上,目前主要将四元组问题转化为两阶段模型,如图11所示,F1值有所下降,仅达到0.63。究其原因,可能是在三元组联合抽取模型中,忽略了实体间的关系,尤其长程关系 (如上文2.4的问题3所述),导致性能不足预期。接下来,将进一步提升情感分析四元组抽取能力,挖掘UGC中用户的核心需求以及重要反馈。在技术方面,将持续进行模型迭代演进,主要涉及:
实验结果还有很大的改进空间,需要进一步探索模型优化方法,如优化预训练模型,使用MT-BERT等,以及在联合抽取中进一步引入实体间关系,来提升四元组抽取的性能。
主要通过改造Query实现四元组抽取,但是计算量级较大,需要探索模型结构优化,减少冗余的计算量,使其满足四元组联合抽取。
到餐场景涉及多个情感分析场景,需要建设灵活方便的通用框架,有助于快速支持业务,以及减少资源消耗。
未来,团队将持续优化应用技术,解决到餐业务场景中的情感分析需求。细粒度情感分析是具有挑战和前景的任务,到店餐饮算法团队将和各位读者共同持续探索和研究。
术语 | 解释 |
---|---|
ABSA | 细粒度情感分析,Aspect-based Sentiment Analysis |
NER | 命名实体识别,Named Entity Recognition |
TOWE | 面向目标的观点词抽取,Target-oriented Opinion Words Extraction |
MRC | 阅读理解,Machine Reading Comprehension |
MLM | 语言掩码模型,Masked Language Model |
BERT | 基于变换器的双向编码器表示,Bidirectional Encoder Representations from Transformers |
CRF | 条件随机场,Conditional Random Fields |
LSTM | 长短期记忆,Long Short-Term Memory |
R-drop | 基于dropout的正则策略,regularization strategy upon dropout |
储哲、王璐、润宇、马宁、建林、张琨、刘强,均来自美团到店事业群/平台技术部。
美团到店平台技术部的到餐业务数据策略组菜品知识图谱方向主要负责将菜品知识应用到到餐相关业务,使命是为到餐业务提供高效、优质、智能的应用算法解决方案。基于海量的到餐业务数据,应用前沿的实体抽取、关系挖掘、实体表征学习、细粒度情感分析、小样本学习、半监督学习等算法技术,为到餐业务提供算法能力支持。
业务数据策略组菜品知识图谱方向长期招聘自然语言处理算法专家/机器学习算法专家,感兴趣的同学可以将简历发送至[email protected]。