导读:本文是“数据拾光者”专栏的第三十二篇文章,这个系列将介绍在广告行业中自然语言处理和推荐系统实践。本篇主要是学习美团技术团队分享的《美团搜索中NER技术的探索与实践》学习笔记,对于想了解美团搜索NER技术实践的小伙伴可能有所帮助。
摘要:本篇主要是学习美团技术团队分享的《美团搜索中NER技术的探索与实践》学习笔记。首先介绍了背景,包括NER任务定义、美团搜索场景下的NER以及美团搜索NER任务面临的挑战;然后重点介绍了美团基于实体词典匹配 模型在线预测框架。通过实体词典匹配可以解决头部搜索NER匹配问题,而长尾复杂的搜索则通过模型在线预测解决。对于想了解美团搜索NER技术实践的小伙伴可能有所帮助。
郑重声明,本篇主要是学习美团技术团队发表的文章《美团搜索中NER技术的探索与实践》。因为上一篇《广告行业中那些趣事系列31:关键词提取技术攻略以及BERT实践》介绍了关键词提取技术以及BERT实践,关键词提取属于一种NER任务。美团的技术沉淀在业界是很有名的,通过学习美团NER技术实践对于我们线上实际业务的开展非常有帮助。这篇文章总体看了不下五遍,属于精读的文章。小伙伴们可以直接去拜读原文,非常精彩。这里更多的是根据自己的思考和理解将原文整理成更容易理解的方式进行表达(至少对于我是更容易理解的方式),类似一种学习笔记的表现形式。很多小伙伴看到干货文章更多的是收藏 关注,然后就不了了之,成为“收藏党”。而我更推荐精读N遍,同时进行延伸查阅更多知识,最后以一种便于理解的方式整理出来,形成文章将知识固化。如果再能将固化的知识通过PPT等形式分享出来,那么理解的就更加深刻。
下面主要按照如下思维导图进行学习分享:
01
背景
1.1 NER任务定义
命名实体识别(Named Entity Recognition,简称NER)是指识别文本中具有特定意义的实体,主要包括人名、地名、机构名、专有名词等。作为NLP领域四大任务(分类、生成、序列标注和句子对标注)之一,应用场景非常广泛,需要重点研究。
1.2 美团搜索场景下的NER
在美团搜索场景下,NER主要应用于搜索召回、用户意图识别、实体链接等环节。本篇主要讲美团搜索召回任务中的NER技术实践。在O2O搜索中,对商家POI的描述主要包括商家名称、地址、品类等相关性较弱的文本域。如果实际搜索中通过全部文本域命中的方式进行召回,那么可能产生大量的错误召回。下面通过举例说明:如果用户搜索了“海底捞”,如果采用全部文本域命中的方式,也就是说只要商家名称、地址或者品类等包含“海底捞”那么就会被召回。我们希望召回品类为“海底捞”的商家,但是实际情况是有些商家可能本身和海底捞没啥关系,但是在“地址”文本域中标记为“海底捞附近多少米”,作用是将海底捞作为一个参照物帮助用户更好的定位商家地址。这种情况下召回的商家并不是用户想要的。
针对这个问题美团提出了一种“结构化召回”的策略,让特定的查询只在特定的文本域做倒排检索,通过这种方式提升召回商家的相关性。当用户搜索“海底捞”时会基于NER先识别为商家,然后在商家的文本域内进行检索,这样就会过滤掉地址中包含“海底捞”但是本身没啥关系的商家,从而提升召回率。下面是基于NER结构化召回示例图:
图1 基于NER结构化召回示例
1.3 美团搜索NER任务面临的挑战
实际业务场景中美团搜索NER任务会面临以下挑战:
- 新增实体数量庞大且增速较快:美团本地生活服务领域发展迅速,出现很多新店、新商品、新服务品类等;
- 用户搜索非标准化难以识别:用户query往往包括很多非标准表达、简称和热词,这使得NER任务完成高准确率和高覆盖率相对较难;
- 领域相关性强:搜索中的实体识别与业务供给高度相关,仅通过通用语义无法准确识别,还需要加入业务相关知识进行辅助判断。比如之前有家有点黄的店名“叫X了X个X鸡”,仅从通用语义角度理解属于低俗内容,但是在美团业务中这是一个商家实体网红炸鸡品牌;
- 性能要求高:线上搜索业务实时性要求非常高,否则会影响用户搜索体验。NER作为DQU的基础模块,需要在毫秒级时间内完成。当前深度学习模型盛行,尤其像BERT这类模型效果很好,但是这类模型也存在预测耗时长的问题,如何优化模型性能,提升NER线上预测速度也是面临的重要挑战。
总结下来就是美团搜索NER任务面临新增实体数量庞大并且增速快、用户搜索非标准化难以识别、领域相关性强以及性能要求高的挑战。下面会详细介绍美团搜索团队如何应对这些挑战。
02
技术选型:实体词典匹配 模型在线预测
针对美团搜索NER任务面临的挑战,美团主要构建了“实体词典匹配 模型预测”技术框架。(这个架构其实和我们搜索召回任务的行业词包 在线分类架构很相似,我们采用的是头部query构建行业词包,中长尾使用蒸馏模型构建线上分类)。至于为什么使用这种架构,下面通过三个问题进行详细说明:
2.1 为什么需要实体词典匹配
构建实体词典匹配主要有以下四个原因:
- 一是搜索中用户查询的头部流量通常较短、表达形式简单,且集中在商户、品类、地址等三类实体搜索,通过实体词典匹配可以使得这部分搜索准确率达到90%以上;
- 二是NER领域相关。离线通过挖掘业务数据资源获取业务实体词典,在线进行词典匹配时可以提升识别结果的领域相关性;
- 三是新业务接入更加灵活,只需提供业务相关的实体词就可完成新业务场景下的实体识别;
- 四是实体词典匹配可以提升下游任务的响应速度,因为词典匹配速度很快,所以基本不存在性能问题。
2.2 有了实体词典匹配为什么还要模型在线预测
在实体词典匹配的基础上还需要模型在线预测主要有以下两方面的原因:
- 一是随着搜索体量的不断增大,中长尾搜索流量更加复杂化,仅使用实体词典匹配很容易出现OOV (Out Of Vocabulary)问题,实体词典已经无法满足日益多样化的用户需求,而模型预测具备泛化能力,可作为词典匹配的有效补充。(这种做法有点类似我们行业词表 在线分类的方式,行业词表解决头部query-tag的匹配问题,在线分类解决中长尾query-tag的匹配问题);
- 二是实体词典匹配无法解决歧义问题,比如用户搜索“黄鹤楼美食”,“黄鹤楼”在实体词典中同时是武汉的景点、北京的商家、香烟产品,词典匹配不具备消歧能力,如果单纯通过实体词典匹配这三种类型都会输出,而模型预测可结合上下文,通过后面的”美食”会将实体词典匹配的香烟产品过滤掉,进一步提升匹配的准确率。
2.3 实体词典匹配、模型预测两路结果是怎么合并输出的
美团搜索团队采用训练好的CRF权重网络作为打分器分别对实体词典匹配和模型预测两路输出的NER路径进行打分。合并输出的规则是无法匹配词典或词典匹配打分明显低于模型预测时,采用模型预测的结果,其他情况仍然采用词典匹配结果。相当于是词典匹配为主 模型预测为辅的套路。后面会重点介绍实体词典匹配和模型预测的细节。下图是美团搜索NER实体词典匹配和模型在线预测合并流程:
图2 实体词典匹配和模型在线预测合并流程
03
详解实体词典匹配
3.1 实体词典匹配现状
传统的NER技术仅能处理通用领域既定既有的实体,而无法应对垂直领域特有的实体类型。在美团搜索场景下,通过对商家POI结构化信息、商户评论数据、搜索日志等独有数据进行离线挖掘,可以很好地解决领域实体识别问题。经过离线实体库不断的丰富完善累积后,在线使用轻量级的词库匹配实体识别方式简单、高效、可控,可以很好地覆盖头部和腰部流量。目前,基于实体词典库的在线NER识别率可以达到92%。实体词典匹配主要分成离线挖掘和在线匹配两部分,下面会分别进行详细说明。
3.2 离线挖掘实体词典
美团具有丰富多样的结构化数据,通过对领域内结构化数据的加工处理可以获得高精度的初始实体库。例如:从商户基础信息中可以获取商户名、类目、地址、售卖商品或服务等类型实体;从猫X眼X文X娱数据中,可以获取电影、电视剧、艺人等类型实体。上述结构化数据比较容易处理,比较复杂的是非结构化数据挖掘领域实体。用户搜索的实体名往往夹杂很多非标准化表达,与业务定义的标准实体名之间存在差异,如何从非标准表达中挖掘领域实体变得尤为重要。
现有的新词挖掘技术主要分为无监督学习、有监督学习和远程监督学习。无监督学习将高频序列作为候选集,并通过计算紧密度和自由度指标进行筛选。这种方法虽然可以产生充分的候选集合,但是仅通过特征阈值过滤无法有效地平衡精确率与召回率,实际应用中通常挑选较高的阈值保证精度而牺牲召回;有监督学习通常涉及复杂的语法分析模型或深度网络模型,且依赖领域专家设计复杂规则或大量的人工标记数据;远程监督学习通过开源知识库生成少量的标记数据,可以一定程度上缓解人力标注成本高的问题。然而小样本量的标记数据仅能学习简单的统计模型,无法训练具有高泛化能力的复杂模型。
美团搜索的离线实体挖掘是多数据源多方法的。数据源主要包括结构化的商家信息库、百科词条,半结构化的搜索日志,以及非结构化的用户评论(UGC)等。使用的挖掘方法主要包括规则、传统机器学习模型、深度学习模型等。结构化数据以及半结构化数据的挖掘相对简单,比较复杂的是对非结构化的UGC数据进行挖掘。UGC作为一种非结构化文本,蕴含了大量非标准表达实体名。下图是针对UGC的垂直领域新词自动挖掘流程:
图3 UGC垂直领域新词自动挖掘流程
- Step1:候选序列挖掘。因为高频出现的序列一般是潜在新词的有效候选,所以将高频出现的序列作为初始候选数据集;
- Step2:基于远程监督词库优化候选集合。将领域累积的实体词典作为远程监督词库,把Step1中候选序列与实体词典的交集作为训练正样本。经过分析发现上百万的高频序列中仅10%左右的候选是真正的新词。非交集的部分采用负采样的方式获得训练负样本。得到的训练集主要用于构建一个候选短语是否有效的二分类器,通过模型打分来评估候选短语的有效性。因为训练集中负样本混杂了少量正样本,所以为了降低负例对短语评估质量得分的影响,通过集成多个弱分类器减少误差。经过分类器预测后将得分超过一定阈值的集合作为正样本,其他作为负样本。至于候选短语是否可用主要从以下四个维度进行衡量:
- 频率:有意义的新词在语料中应当满足一定的频率,该指标由Step1计算得到。
- 紧密度:主要用于评估新短语中连续元素的共现强度,包括T分布检验、皮尔森卡方检验、逐点互信息、似然比等指标。
- 信息度:新词应具有真实意义,指代某个新的实体或概念,该特征主要考虑了词组在语料中的逆文档频率、词性分布以及停用词分布。
- 完整性:新词应当在给定的上下文环境中作为整体解释存在,因此需要同时考虑词组的子集短语以及超集短语的紧密度,从而衡量词组的完整性。
- Step3: 基于深度语义网络的短语质量评估。经过Step2可以得到大量有标记的候选短语数据,接下来会基于BERT深度语义网络来构建短语质量打分器。为了进一步提升训练数据的质量,利用搜索日志数据对Step2中生成的大规模正负例池数据进行远程指导,将有大量搜索记录的词条作为有意义的关键词。将正例池与搜索日志重合的部分作为模型正样本,而将负例池减去搜索日志集合的部分作为模型负样本,进而提升训练数据的可靠性和多样性。此外,采用Bootstrapping方式,初次得到短语质量分后,重新根据已有短语质量分以及远程语料搜索日志更新训练样本,迭代训练提升短语质量打分器效果,有效减少了伪正例和伪负例。
3.3 词典在线匹配
3.3.1初始词典在线匹配方案以及存在的问题
初始词典在线匹配方法直接针对Query做双向最大匹配获得成分识别候选集合,再基于实体搜索量PV筛选出最终结果。这种策略存在以下几个问题:
- 当Query包含实体词库未覆盖实体时,基于字符的最大匹配算法易引起切分错误。这里先补充点业务知识,“海坨山”是北京市延庆区的一处景点,“海坨山谷”是张家口海坨房地产开发有限公司开发的一处山景地产,两者从字面上非常像,但实体意义完全不同。当用户搜索词“海坨山谷”,因为海坨山谷属于小众并且新增的实体词,所以在词库中是不存在的。词库仅能匹配到“海坨山”,因此出现“海坨山/谷”的错误切分;
- 粒度不可控。例如对搜索词“星巴克咖啡”的切分结果取决于词库对“星巴克”、“咖啡”以及“星巴克咖啡”的覆盖;
- 节点权重定义不合理。例如直接基于实体搜索量作为实体节点权重,当用户搜索“信阳菜馆”时,“信阳菜/馆”的得分可能大于“信阳/菜馆”,因为信阳菜的名气大于信阳菜馆,所以对应的搜索量也更大。
3.3.2 两阶段修复策略
为了解决上述问题,实体词典在线匹配前引入CRF分词模型,针对垂直领域美团搜索制定分词准则,人工标注语料并训练CRF分词模型。针对模型分词错误问题,设计两阶段修复策略:
- 结合模型分词Term和基于领域字典匹配Term,根据动态规划求解Term序列权重和的最优解;
- 基于Pattern正则表达式的强修复规则。最后,输出基于实体库匹配的成分识别结果。
下面举例说明,在百度搜索输入“富春江浙西”,然后返回的搜索结果会匹配到“富春江浙西桐庐餐厅”。下面是搜索示例:
图4 百度搜索NER示例
对应到美团搜索NER任务中,通过两阶段修复策略可以根据“富春江浙西”输出实体库匹配的成分识别结果“富春江浙西桐庐餐厅”。下面是词典在线匹配两阶段修复流程:
图5 词典在线匹配两阶段修复流程
04
详解模型在线预测
4.1 在线预测模型演进流程
前面也说了对于头部query来说主要使用实体词典匹配的方法就可以使在线NER识别率达到92%,对于那些长尾并且比较复杂的query主要使用模型在线预测。美团搜索NER在线预测模型演进流程如下图所示:
图6 在线预测模型演进流程
从上图可以看出,2018年以前主要使用传统序列标注模型CRF,2018年使用业界主流方式构建LSTM CRF模型,这个在上一篇文章《广告行业中那些趣事系列31:关键词提取技术攻略以及BERT实践》也说过LSTM CRF模型天然适配序列标注任务,自从2015年LSTM CRF出世因为模型本身和任务匹配度非常高基本成为主流;2019年随着BERT大火主要将BERT进行蒸馏构建在线预测模型;2020年完成BERT上线,这块主要解决了BERT性能问题;目前正在探索的模型是BERT LR,利用知识增强以及弱监督BERT-NER。
4.2 模型在线预测主要面临的问题
在实践探索中模型在线预测主要遇到以下三个问题:
- 性能要求高:NER作为基础模块,模型预测需要在毫秒级时间内完成,而目前基于深度学习的模型基本上都存在计算量大、预测时间较长的问题。NLP场景中目前主流模型是BERT这种预训练 微调两阶段模型,虽然效果不错,但是模型本身非常大,对于线上化非常不友好。
- 领域强相关:搜索中的实体类型与业务供给高度相关,只考虑通用语义很难保证模型识别的准确性。
- 标注数据缺乏:NER标注任务相对较难,需给出实体边界切分、实体类型信息,标注过程费时费力,大规模标注数据难以获取。
针对性能要求高的问题,我们的线上模型在升级为BERT时进行了一系列的性能调优;针对NER领域相关问题,我们提出了融合搜索日志特征、实体词典信息的知识增强NER方法;针对训练数据难以获取的问题,我们提出一种弱监督的NER方法。下面我们详细介绍下这些技术点。
4.3 在线预测模型性能优化
BERT是典型的预训练 微调两阶段模型,因为效果好和应用范围广所以是目前NLP领域最火的模型之一。美团搜索在线预测模型也是基于BERT构建,但是BERT这类预训练模型本身非常大,所以在线推理耗时较长,很难在毫秒级响应。关于BERT的详细讲解请小伙伴们参考我之前写过的一篇文章《广告行业中那些趣事系列3:NLP中的巨星BERT》。
将BERT应用于在线预测主要面临预测速度慢的问题。针对这个问题主要从模型蒸馏、预测加速两个方面进行了探索,分阶段上线了BERT蒸馏模型、BERT Softmax、BERT CRF模型。
4.3.1 模型蒸馏
美团技术团队尝试了对BERT模型进行剪裁和蒸馏两种方式,实验结果证明剪裁对于NER这种复杂NLP任务精度损失严重,而模型蒸馏是可行的。模型蒸馏用简单的话来说就是用简单模型来学习复杂模型,使得这个简单模型的效果可以匹配复杂模型,并且模型上线时预测速度也很快。我们团队之前用模型蒸馏主要是让TextCNN去学习BERT模型做文本分类任务,取得了不错的线上效果。关于模型蒸馏的详细讲解小伙伴们可以参考我之前写过的一篇文章《广告行业中那些趣事系列21:从理论到实战BERT知识蒸馏》。
美团技术团队构建IDCNN-CRF作为简单模型去学习复杂模型BERT,在没有明显精度损失的前提下,蒸馏模型的在线预测速度有数十倍的提升。
4.3.2 预测加速
BERT在线预测速度比较慢还有个原因是存在大量小算子以及Attention计算量的问题。针对这个问题主要使用以下三种方法加速模型预测:
- 算子融合:通过降低Kernel Launch次数和提高小算子访存效率来减少BERT中小算子的耗时开销。这里调研了Faster Transformer的实现。平均时延上,有1.4x~2x左右加速比;TP999上,有2.1x~3x左右的加速比。该方法适合标准的BERT模型。开源版本的Faster Transformer工程质量较低,易用性和稳定性上存在较多问题,无法直接应用,我们基于NV开源的Faster Transformer进行了二次开发,主要在稳定性和易用性进行了改进。易用性方面,支持自动转换,支持Dynamic Batch,支持Auto Tuning;稳定性方面,修复内存泄漏和线程安全问题;
- Batching:Batching的原理主要是将多次请求合并到一个Batch进行推理,降低Kernel Launch次数、充分利用多个GPU SM,从而提高整体吞吐。在max_batch_size设置为4的情况下,原生BERT模型,可以在将平均Latency控制在6ms以内,最高吞吐可达1300 QPS。该方法十分适合美团搜索场景下的BERT模型优化,原因是搜索有明显的高低峰期,可提升高峰期模型的吞吐量;
- 混合精度:混合精度指的是FP32和FP16混合的方式,使用混合精度可以加速BERT训练和预测过程并且减少显存开销,同时兼顾FP32的稳定性和FP16的速度。在模型计算过程中使用FP16加速计算过程,模型训练过程中权重会存储成FP32格式,参数更新时采用FP32类型。利用FP32 Master-weights在FP32数据类型下进行参数更新,可有效避免溢出。混合精度在基本不影响效果的基础上,模型训练和预测速度都有一定的提升。
除了上述模型蒸馏和预测加速提升在线模型预测性能之外,对于搜索日志中pv较高的query可以将预测结果以词典方式上传到缓存,进一步减少模型在线预测的QPS压力。
4.4 基于知识增强NER解决领域相关问题
如何将特定领域的外部知识作为辅助信息嵌入到语言模型中,一直是近些年的研究热点。K-BERT、ERNIE等模型探索了知识图谱与BERT的结合方法,为我们提供了很好的借鉴。美团搜索中的NER是领域相关的,实体类型的判定与业务供给高度相关。因此,我们也探索了如何将供给POI信息、用户点击、领域实体词库等外部知识融入到NER模型中。
4.4.1 融合搜索日志特征的Lattice-LSTM
在O2O垂直搜索领域,大量的实体由商家自定义(如商家名、团单名等),实体信息隐藏在供给POI的属性中,单使用传统的语义方式识别效果差。Lattice-LSTM针对中文实体识别,通过增加词向量的输入,丰富语义信息。借鉴这个思路,结合搜索用户行为,挖掘Query 中潜在短语,这些短语蕴含了POI属性信息,然后将这些隐藏的信息嵌入到模型中,在一定程度上解决领域新词发现问题。与原始Lattice-LSTM方法对比,识别准确率千分位提升5个点。下面是融合搜索日志特征的模型训练和预测流程图:
图7 融合搜索日志特征的模型训练和预测流程
4.4.2 融合实体词典的两阶段NER
我们考虑将领域词典知识融合到模型中,提出了两阶段的NER识别方法。该方法是将NER任务拆分成实体边界识别和实体标签识别两个子任务。相较于传统的端到端的NER方法,这种方法的优势是实体切分可以跨领域复用。另外,在实体标签识别阶段可以充分使用已积累的实体数据和实体链接等技术提高标签识别准确率,缺点是会存在错误传播的问题。
在第一阶段,让BERT模型专注于实体边界的确定,而第二阶段将实体词典带来的信息增益融入到实体分类模型中。第二阶段的实体分类可以单独对每个实体进行预测,但这种做法会丢失实体上下文信息,我们的处理方法是:将实体词典用作训练数据训练一个IDCNN分类模型,该模型对第一阶段输出的切分结果进行编码,并将编码信息加入到第二阶段的标签识别模型中,联合上下文词汇完成解码。基于Benchmark标注数据进行评估,该模型相比于BERT-NER在Query粒度的准确率上获得了1%的提升。这里我们使用IDCNN主要是考虑到模型性能问题,大家可视使用场景替换成BERT或其他分类模型。
图8 融合实体词典的两阶段NER流程图
4.5 基于弱监督NER解决训练数据难获取问题
针对标注数据难获取问题,我们提出了一种弱监督方案,该方案包含两个流程,分别是弱监督标注数据生成、模型训练。下面详细描述下这两个流程。
图9 弱监督标注数据生成流程
- Step1:弱监督标注样本生成
- 初版模型:利用已标注的小批量数据集训练实体识别模型,这里使用的是最新的BERT模型,得到初版模型ModelA。
- 词典数据预测:实体识别模块目前沉淀下百万量级的高质量实体数据作为词典,数据格式为实体文本、实体类型、属性信息。用上一步得到的ModelA预测改词典数据输出实体识别结果。
- 预测结果校正:实体词典中实体精度较高,理论上来讲模型预测的结果给出的实体类型至少有一个应该是实体词典中给出的该实体类型,否则说明模型对于这类输入的识别效果并不好,需要针对性地补充样本,我们对这类输入的模型结果进行校正后得到标注文本。校正方法我们尝试了两种,分别是整体校正和部分校正,整体校正是指整个输入校正为词典实体类型,部分校正是指对模型切分出的单个Term 进行类型校正。
举个例子来说明,“兄弟烧烤个性diy”词典中给出的实体类型为商家,模型预测结果为修饰词 菜品 品类,没有Term属于商家类型,模型预测结果和词典有差异,这时候我们需要对模型输出标签进行校正。校正候选就是三种,分别是“商家 菜品 品类”、“修饰词 商家 品类”、“修饰词 菜品 商家”。我们选择最接近于模型预测的一种,这样选择的理论意义在于模型已经收敛到预测分布最接近于真实分布,我们只需要在预测分布上进行微调,而不是大幅度改变这个分布。那从校正候选中如何选出最接近于模型预测的一种呢?我们使用的方法是计算校正候选在该模型下的概率得分,然后与模型当前预测结果(当前模型认为的最优结果)计算概率比,概率比计算公式如公式2所示,概率比最大的那个就是最终得到的校正候选,也就是最终得到的弱监督标注样本。在“兄弟烧烤个性diy”这个例子中,“商家 菜品 品类”这个校正候选与模型输出的“修饰词 菜品 品类”概率比最大,将得到“兄弟/商家 烧烤/菜品 个性diy/品类”标注数据。
图10 预测结果修正举例
- Step2:弱监督模型训练
弱监督模型训练方法包括两种:一是将生成的弱监督样本和标注样本进行混合不区分重新进行模型训练;二是在标注样本训练生成的ModelA基础上,用弱监督样本进行Fine-tuning训练。这两种方式我们都进行了尝试。从实验结果来看,Fine-tuning效果更好。
05
总结和思考
本篇主要是学习美团技术团队分享的《美团搜索中NER技术的探索与实践》学习笔记。首先介绍了背景,包括NER任务定义、美团搜索场景下的NER以及美团搜索NER任务面临的挑战;然后重点介绍了美团基于实体词典匹配 模型在线预测框架。通过实体词典匹配可以解决头部搜索NER匹配问题,而长尾复杂的搜索则通过模型在线预测解决。对于想了解美团搜索NER技术实践的小伙伴可能有所帮助。