去污|为看一看及搜一搜“去污”,AI怎么做到的?( 二 )


由于个别字的改变(作弊)导致表面语义的飘逸,很容易逃过色情检测。通过这类作弊case,我们可以进一步深挖搜索黑产所进行的一些seo作弊操作,由session发现作弊进而映射到uin,可以分析一批作弊用户及其作弊query。与黑产的对抗在低质识别工作中是永恒的话题,矛与盾的不断升级,不断试探;而借助已有的能力并进一步分析黑产用户的搜索模式,可以帮助我们建立起良性的循环和有效的对抗升级。
3. Query与点击doc的联动分析在实际业务中,由于query与网页标题语料的不同,文本长度上,query偏超短文本而网页标题偏短文本;同时二者的表述等也存在领域差异,因此在业务中是训练了各自的模型。那么与query改写分析类似的思路,结合已有模型的能力与用户行为进行样本分析和补充。这里利用搜索引擎已自带的query与结果的相关性加上用户点击这一强行为特征,尤其在色情领域上使得query与结果的相关性比大盘水平高出很多。那么通过query与点击title的各自模型的预测得分,就可以较快的将不足的一方进行补全优化,实现多模型的联动升级。
4. 评价指标在效果评价上,我们一般采用精度、召回与F1值作为主要的效果评价指标,这里的难点主要在于召回评价上。因为搜一搜场景问题数据的稀疏性和长尾性,采用大盘随机评测召回需要投入很多人力来获取一个置信度较高的结果,因此我们尽量采用多个维度来体现模型的效果。通过比较迭代模型前后的diff胜出率可以实现自身的比较;通过引入其他开放领域测试集辅助验证模型的泛化通用性。除此之外,我们的业务使用方还单独分析了一批业务测试集,对算法侧保持黑盒状态,用打比赛的方式来评价成绩也是一个不错的选择。
03 基于Bert的迁移学习改进在模型方面,可以说Bert(及其各种升级版)是目前在大多数NLP任务中效果最佳的模型。在GPU资源充足的情况下,我们也优先部署Bert提高业务效果,并在Bert的基础上结合业务特点进行一些模型创新。下面将从如何使用pivot词改良Bert的预训练过程和如何利用业务中天然的多任务学习场景来提高模型最终效果这两点来展开介绍。
1. 基于可迁移Pivot词的Bert迁移学习目前对于Bert的应用来说,大多情况(简单用法)都是直接在少量的标注数据上去Finetune最后一层即可取得较好的效果。对于精细化的升级用法,会先在特定任务的语料上去精调预训练的语言模型,这样的好处是可以让模型更加适应当前任务的语言环境。而这一点在低俗色情问题上是非常匹配且需要的,因为一般Bert预训练语言模型的语料都是类似维基百科这种较正常标准的内容,缺少低俗色情里的很多低俗说法、黑话、作弊等内容(比如“干”“棒棒糖”等词),这就使得预训练得到的语言模型缺少对这些一词多义的理解,即基于上下文的语义理解,而这些的一词多义正是我们这一特定任务最需要的。
对于Bert的优化方向之一就是引入更多辅助任务以及外部知识,对下游的知识类任务或者包含NER相关的任务有直接的效果提升作用。与此思路类似的是,我们引入了pivot词的知识,学术界有不少迁移学习的工作是基于pivot词来提升不同领域之间的迁移效果,这在低俗色情问题上同样十分匹配,通过学习领域不变的pivot特征来桥接源领域和目标领域,从而使得在源域上训练的模型可以适配目标域。
我们的TPT(Transferable Pivot Transformer)模型分为两部分,pivot选择网络以及mask pivot的预训练语言模型网络(分别对应模型示意图的右半部分和左半部分)。在pivot选择部分,为了优化色情领域很多新词或作弊词的问题(例如“轮轩”“好庠”等),我们采用基于字的bi-gram和tri-gram,通过已有标注数据计算互信息MI获取到一批权重高的pivot词表。进一步为了使得pivot词更具可迁移性,我们通过训练pivot词的领域分类器来挑选出领域不可分(即可迁移)的最终pivot词表。
在预训练语言模型阶段,与传统bert的mask策略不同的是,我们加入了针对pivot词的mask策略,我们希望模型能更多的关注和学习到pivot词在不同上下文语境中的语义。因此在训练语言模型的过程中,我们对于pivot词大概率下进行mask,小概率下保持不变;同时bert原有的随机mask策略可继续使用,最终生成的即为适用于我们这一特定任务场景的预训练语言模型。我们这一idea的工作已发表在AAAI2020上,感兴趣的同学可以细看一下。Simultaneous Learning of Pivots and Representations for Cross-Domain Sentiment Classification
2. 基于Bert&知识蒸馏的多任务学习如前文所述,在搜一搜的低俗色情的任务场景中有query、搜狗网页、公众号文章、视频等多个数据领域,多个领域间均存在不同程度的领域差距,也因此每个领域都会训练生成对应的分类模型。与此同时,多个领域之间的任务目标又十分相似,很多知识是通用的,这十分适合多任务模型的应用。在之前看一看的工作中,我们也尝试了例如基于LSTM的多任务模型、领域迁移对抗模型等,在Bert兴起后,如当年Imagenet的进化路径,Bert可以作为一个优良的底层特征提取器,继续在Bert之上结合传统的多任务学习或者迁移学习的工作进一步提升效果。这里我们尝试了Google发表在ACL2019的工作BAM! Born-Again Multi-Task Networks for Natural Language Understanding,其将Bert与多任务学习、知识蒸馏巧妙地结合在一起。