莱灵图髯客,携程高级算法工程师,主要负责天然语言处理领域相关工做,对半监督学习、天然语言生成、实体识别、文本分类及检索等领域有浓厚兴趣。微信
伴随信息时代的快速发展,消费者的消费观念趋于理性、客观,对产品自己的质量要求也愈来愈高。在用户难以直接接触到产品的状况下,可否第一时间让用户对目标产品有快速、深刻的了解,已经成为产品推荐的关键。所以,优质、多样、精简、信息含量高的内容素材,对提升产品吸引力相当重要。
就旅行场景而言,经过给景酒打上不一样维度的标签,既有利于平台经过用户偏好更加合理地推荐相应产品,也能帮助用户对景酒有更快速的了解。同时,咱们在景酒标签的基础上,进行更加深入的内容挖掘,结合标签相关的、内容优质的推荐理由,大幅度加深用户对产品特点的了解,帮助客户快速挑选出最心仪的产品,提高用户体验。
而这部分的内容挖掘的核心就在于基于主题的推荐理由自动抽取,须要从主题相关和优质两个维度进行内容的建模,从而实现内容的快速抽取和挖掘,部分样例如表1。
|
|
|
|
|
一座仿佛外星球城堡般的建筑群,优美的流线型,几个单体之间有机链接构成仿佛生命体同样,彻彻底底的网红打卡地。
|
|
这里是不少热门电视剧如《何以笙箫默》、《大好时光》的取景地。
|
|
夜晚是凌空最美的时刻,灯光,喷泉,吸引众多的摄影爱好者来这拍摄,留下最好的瞬间。
|
|
白天光芒万丈,高端大气,傍晚落日余晖,有种站在舞台中央即将落幕之感。
|
基于主题的推荐理由自动抽取,在建模的过程当中面对的问题主要包括以下三点:
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%,做为加强数据在可容许的偏差范围内。

基于数据回译的加强是指利用机器翻译技术将有监督数据进行多轮翻译,并把最终翻译回中文的结果加入到训练集中进行训练。回译能够在保持文本语义基本不变的前提下,增长文本句式、用词的多样性,从而防止模型(尤为是交互式匹配模型)对某种单一句式、词语产生过拟合。该方法对翻译质量有较高要求,而且不免会引入部分噪音数据,所以应该在可接受的偏差范围内,加入适量回译数据协同训练,本项目中回译数据与有监督数据比例约为1:3。
经过对重要标签的数据加强,相比baseline模型,加强后的模型在各标签测试集上的F1值平均提高约10.5%。
当数据集较少时,另外一种可以较好提升模型泛化性、下降任务学习难度的方法就是为模型引入先验知识。
|
|
|
这里和颐和园、拙政园、狮子林并称中国四大古典园林,园内假山流水十分美丽,日落也不错
|
|
|
这座建筑由贝聿铭设计,独到地结合了中国特点古典园林风格和现代设计理念,同时顶楼也被评为××最美日落观赏地之一
|
经过对业务场景的分析发现,因为标签数量较多、覆盖面较广,一条文本常常会涉及到多个主题,以表2为例,表中两条文本都涉及到了古典园林、落日两个主题,在古典园林的主题下,两条文本都是关于古典园林的优质推荐理由,匹配模型输出应为1;在落日的主题下,前者只是对落日顺带一提,后者则有对其落日的客观、积极评价,此时模型指望输出为0。
由此能够看出,两条文本是否匹配并不绝对,而是与假定的主题有关,直接对文本是否类似进行建模并不合理,所以,咱们考虑在进行文本匹配时加入主题特征,以此下降任务的学习难度以及“困惑”度。其次,咱们经过卡方检验加入与匹配结果强相关的文本特征,例如主题关键词所在短句窗口内的字符个数、文本是否知足荣誉度模式等,加入这些在有限样本下难以直接被模型捕捉的特征,一样能够下降模型的学习难度。

为了在预训练模型中引入预设的先验知识,本项目尝试了两类方案:即在Input层中引入(如图4中方案1)或在Task层中引入(如图4中方案二、3)。在Input层中引入先验的方式具体指,将先验知识在输入层与两段文本分别进行拼接、并代替原文本做为预训练模型的输入,则模型输出即为强化了主题与其余先验知识的语义特征的交互结果;方案2中则是首先将先验知识经过嵌入矩阵转化为稠密向量,并将该向量做为query、将文本的语义交互结果做为Key和Value,构建一个Attention网络。
该方法假设预训练模型抽取的是文本之间的通用类似特征,所以使用Attention网络对通用类似特征进行定向提取,将更多注意力给予主题相关的维度、对主题无关的特征维度稀疏化,从而获得一个与先验知识关联紧密的语义类似度表征;方案3与方案2相似,都是在Task层中利用先验知识对交互结果施加影响,不一样之处在于方案3中将Attention网络替换为了稠密向量与交互结果构建而成的类似度矩阵,用以表明交互结果在各个主题维度下的类似度结果。
相比之下,方案1的计算开销最小,方案3其次,方案2因为要引入注意力机制所以复杂度较高,但通过实践验证效果也相对更好,能够将各标签测试集的F1值提高约2%。
基于相关任务间知识可迁移的假设,迁移学习一般指将另外一数据集或任务下训练获得的模型做为当前任务初始模型的作法[1],因为在大多数业务场景下监督数据有限、数据标注所需时间与人力成本较高,所以预训练模型与迁移学习相结合的方式已经成为比较主流的baseline构建方式。
从初始参数的角度来看,预训练模型通过大量无监督数据训练以后,可以提供一个更好的初始位置,下降下游任务训练时间、提升模型学习效果;从模型的特征提取能力来看,预训练模型可以从文本中提取语义、词性、句法等高阶特征,从而能够快速适应各类复杂的下游任务[2]。
根据论文研究以及本项目的实践结果发现,预训练模型在进行下游任务微调时存在微调结果波动较大的问题(在小数据集下尤其明显)。引发该现象的缘由被解耦为两个关键因素:下游任务层初始化时带来的随机性和训练时的batch顺序带来的随机性[3]。因为batch顺序带来的随机性的可探究性较差,且数据集增减、下游任务变化时结论不可迁移。所以,下降微调不稳定性的突破点在于减弱初始参数的影响:
1)选取合适的初始化随机数种子:如图5,经过在不一样随机数种子下对多个公开测试集进行多轮实验发现,使用的随机数种子不一样时,模型微调结果的倾向也有所不一样,即总存在一些“优质”随机数种子(best WI),使模型微调结果的平均分数更高,存在部分“劣质”随机数种子(worst WI),使模型微调结果的平均分数较差。不一样的种子意味着不一样的参数初始位置,好的初始位置抵达最优势所需的训练时长更少,所以优质的随机数种子是小样本学习的关键,对模型持久优化、迭代也相当重要。
该论文中指出,当模型使用截断正态分布初始化方法且seed=12时,可以在二分类中取得广泛较好的微调结果。因为本项目的下游任务层与二分类任务的任务层类似,所以使用了与论文中相同的初始化方法。经实践验证,该初始化方式的确可以取得较为稳定、良好的微调结果。若是下游任务层与本项目不一样,能够经过屡次实验寻找一个可以使模型微调结果广泛较好的种子。

2)使用更加标准的Adam算法:目前对预训练模型进行下游任务微调时,使用的最广泛的优化器是BERT自带的BERTAdam算法。该算法是标准Adam算法的变种,由图6能够看出,相比标准Adam算法缺乏了误差校验的步骤,所以对学习率有较大影响(尤为是微调早期),也被认为是预训练模型微调结果波动较大的主要因素之一[4]。
在使用BERTAdam进行预训练时,因为训练集足够大、迭代步数足够多,BERTAdam与标准Adam的学习率会逐渐趋向一致,所以缺乏误差校验所带来的负面影响微乎其微;可是当使用BERTAdam进行下游任务微调时,若是微调数据集较少,学习率差距较为显著,会使微调结果产生较大波动。本项目中使用了标准Adam和BERTAdam分别对模型进行了训练,使用标准Adam的微调结果比BERTAdam的微调结果要高5~10%左右。

3)使用Layer-wise学习率:因为下游任务层在初始化时所使用的是随机参数,所以相比预训练层,任务层须要更加充分的训练才能收敛。若是在微调时使用的学习率较小,容易致使任务层欠拟合,扩大参数初始值对微调结果的影响。若是使用的学习率较大,又容易致使预训练模型的特征抽取模块产生过拟合,所以能够考虑对任务层、预训练层使用不一样大小的学习率进行迭代。此外,对于预训练模型内部,底层网络一般抽取的是文本的通用特征,顶层网络则更倾向于抽取任务相关的特征,因此顶层网络相比较之下须要的训练时间也更长。
综合以上结论,可使用自上而下逐层衰减的学习率进行训练,以缓解模型欠拟合、过拟合的问题,该方法在小数据集或任务层复杂度较高的状况下可以起到较好的效果[5-6]。
咱们经过主题推荐理由自动抽取框架和流程,在总体上约束内容抽取的基本质量,经过匹配模型更好地支持多样化的标签维度,而且经过数据加强、迁移学习、先验增强等方式,在监督数据有限的状况下,对文本的标签相关度、内容优质程度进行了有效充分的建模。
同时,本项目中仍存在一些问题须要作进一步优化,首先能够向模型引入体系化的标签先验知识,根据刻画内容的不一样,标签集合也能够分为多个类似标签簇甚至层级标签,例如古迹和古典园林、皇宫等标签之间的优质推荐理由类似性更高,和江河湖、森林等标签的推荐理由类似性较低,这种标签之间的类似相关性经过one-hot没法表示,所以能够考虑利用图网络引入更加高级的先验知识;其次,可使用公开数据集先进行task的微调,强化预训练模型对文本匹配任务的理解,最后再进行数据集的微调,该方法也被部分场景下证明有较好的效果。
本文分享自微信公众号 - 一线码农聊技术(dotnetfly)。
若有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一块儿分享。