作者简介:莱灵图髯客,携程高级算法工程师,主要负责自然语言处理领域相关工作,对半监督学习、自然语言生成、实体识别、文本分类及检索等领域有浓厚兴趣。

一、背景介绍

伴随信息时代的快速发展,消费者的消费观念趋于理性、客观,对产品本身的质量要求也越来越高。在用户难以直接接触到产品的情况下,能否第一时间让用户对目标产品有快速、深入的了解,已经成为产品推荐的关键。因此,优质、多样、精简、信息含量高的内容素材,对提高产品吸引力至关重要。

就旅行场景而言,通过给景酒打上不同维度的标签,既有利于平台通过用户偏好更加合理地推荐相应产品,也能帮助用户对景酒有更快速的了解。同时,我们在景酒标签的基础上,进行更加深刻的内容挖掘,结合标签相关的、内容优质的推荐理由,大幅度加深用户对产品特色的了解,帮助客户快速挑选出最心仪的产品,提升用户体验。

而这部分的内容挖掘的核心就在于基于主题的推荐理由自动抽取,需要从主题相关和优质两个维度进行内容的建模,从而实现内容的快速抽取和挖掘,部分样例如表1。

表1 推荐理由样例

POI标签推荐理由SkyBridge HQ天会(原凌空SOHO)热门网红一座仿佛外星球城堡般的建筑群,优美的流线型,几个单体之间有机连接构成仿佛生命体一样,不折不扣的网红打卡地。取景地这里是很多热门电视剧如《何以笙箫默》、《大好时光》的取景地。赏夜景夜晚是凌空最美的时刻,灯光,喷泉,吸引众多的摄影爱好者来这拍摄,留下最好的瞬间。落日白天光芒万丈,高端大气,傍晚落日余晖,有种站在舞台中央即将落幕之感。

基于主题的推荐理由自动抽取,在建模的过程中面对的问题主要包括如下三点:

  1. 标签数量较多、标签种类不固定。目前已有的标签数量在百级别,同时随着热点的持续挖掘,需要支持更多的细粒度标签;
  2. 业务数据质量参差不齐。由于业务数据主要来源于用户评论、旅拍文章,因此数据内容、质量差异较大,并且存在大量噪音,对模型的拟合、泛化能力要求较高;
  3. 有监督数据获取难度较高。由于内容素材的主题相关程度、内容优质程度难以量化、评估具有主观性,因此从海量参差不齐的数据中获取质量稳定、数量相当的有监督数据难度较大;

本文基于上述问题,从流程框架,模型选择,数据增强,模型优化四个角度进行了详细的描述。通过引入预处理流程,基于情感模型/质量模型等机制进行内容等级的初步筛选,基于无监督语义模型进行主题维度的初筛,通过这些前置模块,提升整体数据的质量。同时,在模型的选择维度,对比了分类模型和匹配模型的特性,从模型的泛化和快速扩充的能力角度,阐述了匹配模型的优势。在基于匹配模型的基础上,详细介绍了如何快速有效地进行数据的自动获取。最后,从迁移学习和主题优化维度介绍了在相对小样本和存在歧义性的时候模型优化和训练的trick。

二、流程框架

由于用户数据基数大、复杂性高、质量参差不齐的特性,我们将整体框架分为了召回、粗排、精排3个模块,同时结合多种数据筛选策略,以保证最终的筛选效果,如图2所示。

图2 推荐理由抽取框架图

召回模块通过标签关键词对用户数据进行定向召回,并利用情感分类模型、质量模块,词法分析等维度对召回内容进行筛选,从而在海量数据中初步打捞情感正向、可能存在主题相关和具有信息含量的文本。这里的质量模型主要对一些旅游不相关的内容进行了建模,如明显的广告文案。在词法维度中,则考虑了停用词/名词/形容词/动词等维度的占比。

粗排模块基于无监督匹配的方法对召回文本做进一步的语义筛选,将候选集中与标签相关度较低的部分剔除,在降低匹配模型运算的时间成本的同时,还可以通过对开放域数据分布设限,减少后续主题匹配模型的排序压力。

精排模块的核心是主题匹配模型,在该主题模型中,会从内容优质角度以及主题相关性角度进行建模。在此基础上,结合荣誉度模型,句长等维度进行加权融合。这样可以满足不同业务场景对于推荐理由在字数或者表达推荐性上的个性化要求。其中,荣誉度模型,是对具有网红打卡等推荐性维度内容的建模,相对于一般的情感模型,在内容的推荐上具有更大的优势。

三、模型选择

由于我们需要支持的标签种类较多,并且也需要快速的去扩充和支持更多新标签。在此同时,各个标签对应的训练数据的分布差异也较大,难以控制和平衡。因此我们基于匹配模型进行建模。

对于一般的分类问题,标签数量多、不固定以及数据数量少、不平衡的问题会极大提高分类模型的学习难度:多分类任务在训练时一般使用hard target的交叉熵作为目标函数,尤其在小样本情况下,这种非1即0的训练模式非常容易导致模型对训练集产生over-fitting或over-confident,即模型为了”强行”区分某些相近类别之间的训练样本,将类别无关的关键词或模式误学习为区分类别的关键因素,该现象在标签数量越多时越为明显。

其次,标签体系会随着数据挖掘的进行不断优化、完善,如果使用分类模型,当标签体系增加时,分类模型都需要添加相应类别的数据并重新训练。最后,标签数量多与训练数据少、样本分布不平衡等因素相互作用,导致各标签训练集稀疏,对模型训练带来较大困难,即便借助上下采样进行数据均衡,也很难在较大量标签的情况下取得一个普遍好的分类效果。

对于匹配模型而言,该方法是对文本语义进行建模,进行输入文本语义之间的pairwise度量,对标签样本分布不均匀问题的鲁棒性相对更高,并且需要新增标签时也具备一定的可扩展性,不需要重新训练模型,只要选定合适的标准Query就可以有较好的泛化效果。

文本匹配是一种用于度量文本之间相似性/相关性的NLP技术,也是自然语言理解的核心问题之一,目前已经在信息检索、问答匹配、对话系统等场景中得到了广泛应用。

匹配模型可以分为表示型、交互型。表示型模型使用参数共享的编码器对两个输入文本分别、独立进行语义特征抽取,通过余弦距离、欧式距离等方式对两个文本的相似度进行度量,其优点是模型复杂度相对较低,并且文本可以通过表示模型对文本特征进行预处理和持久化保存,能够极大降低匹配的时间成本,该种类代表模型包括DSSM、CDSSM, MV-LSTM, ARC-I, CNTN, CA-RNN,MultiGranCNN等。交互式模型则在对文本进行向量化表示之后,直接利用卷积、注意力网络等方式对文本的局部相似特征进行抽取,相比表示型模型,交互式方法更容易捕捉两个文本之间的相似特征,代表模型有ARC-II、MatchPyramid、DeepMatch、ESIM、ABCNN、BIMPM等。

因此,我们这边选择基于交互式的匹配模型进行建模。在建模的过程中,需要同时从主题相关和内容优质性两个维度进行建模。正样例的选择,则是同一主题下优质推荐理由的pairwise组合,而负样例则包括两种模式,一是优质推荐理由与同主题下劣质推荐理由的组合,二是不同主题下优质推荐理由组合。通过对正负样本组合的选择和采样来强化主题匹配模型中内容优质性和主题相关性的信息。

四、数据增强

对于主题匹配模型的训练样本,我们要求具有优质性和主题相关性。一个好的主题相关的推荐理由,需要整句围绕相关主题,提供相关的丰富详细的描述。而在一般的UGC数据中,这种优质的表达占比相对较少,一般用户会围绕多个主题点简单的进行描述。在不同业务场景下,呈现的数据分布也是差异较大,如景点类较酒店类,在UGC内容的表达上,相对丰富和详尽。训练数据是模型的基本,它的质量决定了最终效果,我们对于训练数据则具有更高的要求。

对于较多的标签维度,我们如何快速的获取到一定量级的优质数据成为重中之重的事情。因此,在监督数据有限的情况下,我们通过数据增强技术,引入一定数量的、误差在可容忍范围内的无监督数据充当有监督数据,并加入到训练数据中,从而有效提高模型效果。主要从基于规则和基于回译两个维度进行了数据增强。

基于规则的数据增强包括通用数据的增强和欠拟合数据增强。在进行通用数据增强时,应重点关注真实场景中出现频次较高、训练数据占比较低的标签,其次关注测试集表现较差、训练样本占比过低的标签,通过引入一定量内容优质、主题相关的增强数据,缓解标签分布失衡的问题、提高模型在增强标签上的学习及泛化效果。

一般而言,优质素材倾向于有更多的修饰词、荣誉度模式,因此如图3所示,我们结合句法分析、词性标注与模式匹配的方式对原始语料做内容质量筛选,同时利用主题关键词分布和无监督语义匹配进行主题相关度把控,从而获得质量较高的无监督数据加入训练数据中。欠拟合数据增强是指通过对开放数据集的预测结果进行分析,将模型学习效果较差的模式进行批量抽取、增强,以此强化模型对部分文本模式的识别、拒识别效果,但应注意增强数量不宜过多,否则容易导致模型对该类型的文本模式产生过拟合。

在超优选模块中我们复用了荣誉度匹配、词法分析、无监督语义匹配等召回、粗排模块中的组件,但是与第二节中的召回模块各个模型提供的融合功能不同,超优选模块是为了批量获得质量较高、无需人为校验的数据,应以精度优先,因此各模块的限制条件更高;而召回模块中,则是为了给精排模块初步提供一个受限候选集,故以召回优先,各模块限制条件相对较低。通过将优质数据源(如高质量旅拍文章、景点简介等)与超优选模块相结合,获得的增强数据经抽样校验后可用率约为93%,作为增强数据在可允许的误差范围内。

图3 数据增强框架图

基于数据回译的增强是指利用机器翻译技术将有监督数据进行多轮翻译,并把最终翻译回中文的结果加入到训练集中进行训练。回译可以在保持文本语义基本不变的前提下,增加文本句式、用词的多样性,从而防止模型(尤其是交互式匹配模型)对某种单一句式、词语产生过拟合。该方法对翻译质量有较高要求,并且难免会引入部分噪音数据,因此应该在可接受的误差范围内,加入适量回译数据协同训练,本项目中回译数据与有监督数据比例约为1:3。

通过对重要标签的数据增强,相比baseline模型,增强后的模型在各标签测试集上的F1值平均提升约10.5%。

五、模型优化

5.1 引入先验

当数据集较少时,另一种能够较好提高模型泛化性、降低任务学习难度的方法就是为模型引入先验知识。

表2 交叉主题范例

推荐理由古典园林落日这里和颐和园、拙政园、狮子林并称中国四大古典园林,园内假山流水十分美丽,日落也不错相似不相似这座建筑由贝聿铭设计,独到地结合了中国特色古典园林风格和现代设计理念,同时顶楼也被评为××最美日落观赏地之一

通过对业务场景的分析发现,由于标签数量较多、覆盖面较广,一条文本经常会涉及到多个主题,以表2为例,表中两条文本都涉及到了古典园林、落日两个主题,在古典园林的主题下,两条文本都是关于古典园林的优质推荐理由,匹配模型输出应为1;在落日的主题下,前者只是对落日顺带一提,后者则有对其落日的客观、积极评价,此时模型期望输出为0。

由此可以看出,两条文本是否匹配并不绝对,而是与假定的主题有关,直接对文本是否相似进行建模并不合理,因此,我们考虑在进行文本匹配时加入主题特征,以此降低任务的学习难度以及“困惑”度。其次,我们通过卡方检验加入与匹配结果强相关的文本特征,例如主题关键词所在短句窗口内的字符个数、文本是否满足荣誉度模式等,加入这些在有限样本下难以直接被模型捕捉的特征,同样可以降低模型的学习难度。

图4 模型框架图

为了在预训练模型中引入预设的先验知识,本项目尝试了两类方案:即在Input层中引入(如图4中方案1)或在Task层中引入(如图4中方案2、3)。在Input层中引入先验的方式具体指,将先验知识在输入层与两段文本分别进行拼接、并代替原文本作为预训练模型的输入,则模型输出即为强化了主题与其他先验知识的语义特征的交互结果;方案2中则是首先将先验知识通过嵌入矩阵转化为稠密向量,并将该向量作为query、将文本的语义交互结果作为Key和Value,构建一个Attention网络。

该方法假设预训练模型抽取的是文本之间的通用相似特征,因此使用Attention网络对通用相似特征进行定向提取,将更多注意力给予主题相关的维度、对主题无关的特征维度稀疏化,从而得到一个与先验知识关联紧密的语义相似度表征;方案3与方案2类似,都是在Task层中利用先验知识对交互结果施加影响,不同之处在于方案3中将Attention网络替换为了稠密向量与交互结果构建而成的相似度矩阵,用以代表交互结果在各个主题维度下的相似度结果。

相比之下,方案1的计算开销最小,方案3其次,方案2由于要引入注意力机制因此复杂度较高,但经过实践验证效果也相对更好,可以将各标签测试集的F1值提升约2%。

5.2 迁移学习

基于相关任务间知识可迁移的假设,迁移学习通常指将另一数据集或任务下训练得到的模型作为当前任务初始模型的做法[1],由于在大多数业务场景下监督数据有限、数据标注所需时间与人力成本较高,因此预训练模型与迁移学习相结合的方式已经成为比较主流的baseline构建方式。

从初始参数的角度来看,预训练模型经过大量无监督数据训练之后,能够提供一个更好的初始位置,降低下游任务训练时间、提高模型学习效果;从模型的特征提取能力来看,预训练模型能够从文本中提取语义、词性、句法等高阶特征,从而可以快速适应各种复杂的下游任务[2]。

根据论文研究以及本项目的实践结果发现,预训练模型在进行下游任务微调时存在微调结果波动较大的问题(在小数据集下尤为明显)。引起该现象的原因被解耦为两个关键因素:下游任务层初始化时带来的随机性和训练时的batch顺序带来的随机性[3]。由于batch顺序带来的随机性的可探究性较差,且数据集增减、下游任务变化时结论不可迁移。因此,降低微调不稳定性的突破点在于减弱初始参数的影响:

  1. 选取合适的初始化随机数种子:如图5,通过在不同随机数种子下对多个公开测试集进行多轮实验发现,使用的随机数种子不同时,模型微调结果的倾向也有所不同,即总存在一些“优质”随机数种子(best WI),使模型微调结果的平均分数更高,存在部分“劣质”随机数种子(worst WI),使模型微调结果的平均分数较差。不同的种子意味着不同的参数初始位置,好的初始位置抵达最优点所需的训练时长更少,因此优质的随机数种子是小样本学习的关键,对模型持久优化、迭代也至关重要。

该论文中指出,当模型使用截断正态分布初始化方法且seed=12时,能够在二分类中取得普遍较好的微调结果。由于本项目的下游任务层与二分类任务的任务层相似,因此使用了与论文中相同的初始化方法。经实践验证,该初始化方式的确能够取得较为稳定、良好的微调结果。如果下游任务层与本项目不同,可以通过多次实验寻找一个能够使模型微调结果普遍较好的种子。

图5 随机数种子对微调结果的影响

  1. 使用更加标准的Adam算法:目前对预训练模型进行下游任务微调时,使用的最普遍的优化器是BERT自带的BERTAdam算法。该算法是标准Adam算法的变种,由图6可以看出,相比标准Adam算法缺少了偏差校验的步骤,因此对学习率有较大影响(尤其是微调早期),也被认为是预训练模型微调结果波动较大的主要因素之一[4]。

在使用BERTAdam进行预训练时,由于训练集足够大、迭代步数足够多,BERTAdam与标准Adam的学习率会逐渐趋向一致,因此缺少偏差校验所带来的负面影响微乎其微;但是当使用BERTAdam进行下游任务微调时,如果微调数据集较少,学习率差距较为显著,会使微调结果产生较大波动。本项目中使用了标准Adam和BERTAdam分别对模型进行了训练,使用标准Adam的微调结果比BERTAdam的微调结果要高5~10%左右。

图6 BERTAdam与Adam算法流程

  1. 使用Layer-wise学习率:由于下游任务层在初始化时所使用的是随机参数,因此相比预训练层,任务层需要更加充分的训练才能收敛。如果在微调时使用的学习率较小,容易导致任务层欠拟合,扩大参数初始值对微调结果的影响。如果使用的学习率较大,又容易导致预训练模型的特征抽取模块产生过拟合,因此可以考虑对任务层、预训练层使用不同大小的学习率进行迭代。此外,对于预训练模型内部,底层网络通常抽取的是文本的通用特征,顶层网络则更倾向于抽取任务相关的特征,所以顶层网络相比较之下需要的训练时间也更长。

综合以上结论,可以使用自上而下逐层衰减的学习率进行训练,以缓解模型欠拟合、过拟合的问题,该方法在小数据集或任务层复杂度较高的情况下能够起到较好的效果[5-6]。

六、总结

我们通过主题推荐理由自动抽取框架和流程,在整体上约束内容抽取的基本质量,通过匹配模型更好地支持多样化的标签维度,并且通过数据增强、迁移学习、先验加强等方式,在监督数据有限的情况下,对文本的标签相关度、内容优质程度进行了有效充分的建模。

同时,本项目中仍存在一些问题需要做进一步优化,首先可以向模型引入体系化的标签先验知识,根据刻画内容的不同,标签集合也可以分为多个相似标签簇甚至层级标签,例如古迹和古典园林、皇宫等标签之间的优�