Ernie-SimCSE对比学习在内容反作弊上应用

作者 | ANTI

导读

AI技能在不同职业和事务被广泛的使用,本文介绍了反做弊团队在与spammer对立愈演愈烈的趋势下,不断探究前沿技能,将百度NLP预练习模型结合比照学习用于处理spam内容中知道发问群发推行做弊的技能计划。

本次共享,首要介绍了知道发问群发推行做弊的形态,分析传统反做弊计划在此形态下的优缺陷,比照了比照学习的数据增强和SimCSE两种办法,并共享了SimCSE论文中loss的缺陷,终究引进『ernie预练习模型 + SimCSE』的处理计划,处理了线上大面积推行做弊问题。

全文4845字,估计阅览时刻13分钟。

01 背景

百度作为最大的中文检索引擎,在满意正常用户检索需求的一起,招引了很多的黑产用户,以非正常手法提高查找结果排名,到达从中获益的目的。百度知道作为百度的重要子产品,也是全球最大互动问答社区,具有很高的hack价值,招引了一大批spammer的『喜爱』,spammer会不断试探反做弊系统的边界,不断寻觅突破点,一旦攻破,短时刻内就会爆发,降低用户体会,大大影响品牌美誉度。下面咱们选择发问推行类做弊为例给大家介绍下这类做弊的辨认算法:推行类做弊是社区最常见的做弊形式,被称为社区“牛皮藓”,该做弊具有范围广、团伙性强、变种多、改变快的特色。

知道的群发推行发问是不同用户推行相同实体,包括的类别包括练习类、医美类等,典型做弊如下:

Ernie-SimCSE对比学习在内容反作弊上应用

传统的反做弊手法通常包括单发问和用户两个纬度来辨认:

1.单发问辨认:经过挖掘做弊pattern、练习语义分类模型来辨认推行发问,优点是能够短时刻内一定程度快速操控线上问题。

2.用户辨认:用户纬度分为单一做弊用户辨认和做弊用户集体辨认,优点是能够在单发问基础上进一步对用户及其回答进行挖掘辨认。

传统的挖掘办法关于发问和用户的刻画是经过人工feature,存在泛化性差、简略被绕过的缺陷,不能应对内容变种多和快特色,而文本表明能够学习文本的稳定性表达,一起能够使用表达来刻画发问之间的类似性关系,因而,咱们引进了文本表明学习来处理该类问题。

02 文本表明&比照学习

2.1 文本表明

文本表明学习便是将一段文本映射到低纬向量空间,获取语句的语义表明,大致经历过四个阶段:

  • 阶段1:统计类型,此阶段比较典型的是使用TD-IDF抽取关键词,用关键词表明表征整个语句。

  • 阶段2:深度模型阶段,此阶段办法较多,自从glove、word2vec等词粒度的表明出现后,在此基础有比较多的魔改,从对语句中的词向量简略平均、到有偏平均SIF[1],后来引进CNN、LSTM等模型使用双塔、单塔办法进行学习语句表明,比较典型的几个作业有:

  • 微软在排序查找场景的DSSM[2],将word进行hash减少词汇个数,对word的表明进行平均得到语句原始表达,经过三层MLP获取语句表明。

  • 多伦多大学提出的Skip-Thought[3],是word2vec的skip-ngram在语句表达的延伸,输入三个语句,用中心一句话,猜测前后两句话。

  • IBM的Siam-CNN[4],提出了四种单塔、双塔不同的架构,使用pairwise loss作为丢失函数。

  • facebook的InferSent[5],在双塔的表明基础上,添加了充沛的交互。

  • 阶段3:Bert、Ernie等预练习大模型阶段,在此阶段比较基础典型的作业有:

  • 因为Bert经过SEP分割,使用CLS运用到匹配使命场景存在核算量过大的问题,Sentence-BERT[6]提出将语句拆开,每个语句独自过encoder,借鉴InferSent的表明交互,来学习语句表达。

  • 阶段4:20年在图像范畴兴起的比照学习引进到NLP。

2.2 比照学习

比照学习是一种模型架构,也是无监督学习的一种,最开端是使用到了CV范畴,经过对M图片进行数据增强得到N图片,将M和N图片输入encoder后得到表明Vm和Vn,假如两个表达相近则阐明encoder学习的作用比较好。

Ernie-SimCSE对比学习在内容反作弊上应用
Ernie-SimCSE对比学习在内容反作弊上应用
Ernie-SimCSE对比学习在内容反作弊上应用
Ernie-SimCSE对比学习在内容反作弊上应用

比方上面四张图片,关于有监督的分类使命来说,需要分辨出每张图片到底是孙悟空仍是猪八戒,练习数据需要详细标示出每一张图片的label。而关于无监督的比照学习来说,不需要区分图片是孙悟空仍是猪八戒,只需要学习的表明能够表达前两张图片是类似的,后两张图片是类似的即可,也便是『类似的东西表明越类似,不类似的东西越不类似』。

比照学习的一般练习进程:

1.经过数据增强的办法构造练习数据集,关于一条数据,数据集需要包含正例(类似的数据)和负例(不类似的数据)。

2.将正例和负例一起输入到encoder模型中。

3.最小化正例之间的距离,最大化负例之间的距离,进行参数更新。

因为比照学习的方针是『类似的东西表明越类似,不类似的东西越不类似』,其中心实质上是需要找到『类似』的数据也便是正例,和『不类似』的数据也便是负例。通常,上面进程中的正例构造办法是类似term替换、term随机删去、回译等办法,而负例的选取是随机的,一般是In-batch negtives。在练习进程中,一个数据量巨细为N的batch内,关于每个输入除了一对互为正例的数据,余下的N-2条都是负例。

2.3 SimCSE

SimCSE(Simple Contrastive Learning of Sentence Embeddings)[7]是EMNLP2021中的一项作业,其简略的思维,确有着较好的作用收成了学术和工业界的巨大关注。SimCSE之前的比照学习中的类似性获取是经过数据增强的办法完成的,也便是在样本中添加噪声获取的,妄图让模型从数据层面获取共性,而SimCSE从使用dropout从模型角度添加噪声,妄图获取更稳定的共性抽取模型。

Ernie-SimCSE对比学习在内容反作弊上应用

SimCSE提供了无监督(上图a)和有监督(上图b)两种架构,因为事务需要咱们只用了无监督办法,其根本思路是:

1.同一个batch内的数据两次输入模型。

2.因为有dropout机制存在,关于同一语句的两次输出是不同的,两次输出互为正例,其他为负例。

3.最小化方针函数,进行参数更新。

论文中,在一个batch中,样本i的丢失函数为比照学习的InfoNCE Loss[8]

Ernie-SimCSE对比学习在内容反作弊上应用

终究模型的作用在各个数据集上根本处于碾压的存在。

Ernie-SimCSE对比学习在内容反作弊上应用

03 使用

因为事务需求是当有新增发问时,获取前史类似发问簇,因而整个进程分为三个阶段:

step1:练习ernie-SimCSE,获取语句encoder,本阶段首要获取编码器用来获取语句的语义向量;

step2:构建语义索引库,本阶段首要是得到语义索引,用于检索类似向量;

step3:反做弊策略,将类似向量用于反做弊策略,用于辨认群发推行。

3.1 ernie-SimCSE

目前关于预练习模型的使用从『预练习』+『子使命finetune』的形式过渡为『预练习』+『范畴预练习』+『子使命finetune』,咱们选取的encoder模型为当时中文范畴最好的ernie模型,在ernie模型基础上添加SimCSE,练习进程为:

  1. 在预练习基础上添加查找Q-T匹配使命的练习,得到Ernie-Search,经过大规模点击日志构建Q-T图,咱们在这张图上经过随机游走采样出q-t-q-t序列S = [q0 , t1 , …, qN-1 , tN] ,然后在这个序列上执行针对序列 S 的遮盖词猜测完成预练习使命;

  2. 在Ernie-Search的基础上使用,独自使用知道发问数据进行进一步post-train,得到Ernie-Search-ZD;

  3. 在Ernie-Search-ZD,添加SimCSE比照学习,获取终究的模型Ernie-SearchCSE。

Ernie-SimCSE对比学习在内容反作弊上应用

3.2 问题及优化

论文中的丢失没有核算增强后的样本之间的丢失,原因可能是因为核算成本的考虑,咱们对丢失进行了改善,关于增强后的数据也归入负例的丢失核算:

Ernie-SimCSE对比学习在内容反作弊上应用

3.3 模型作用

为了观测模型的终究作用,咱们选取了之前的17个方针case,以及随机选取10个其它语句:

Ernie-SimCSE对比学习在内容反作弊上应用

由下方热力求能够看出,符合最初模型预期,前10个的类似性远大于后10个的类似性。关于发问『北京肋软骨隆鼻刘彦军做的怎么样?』检索索引库中语义最类似TOP 10获取疑似变形推行。

Ernie-SimCSE对比学习在内容反作弊上应用

Ernie-SimCSE对比学习在内容反作弊上应用

04 总结

语义索引在使用方面是一把双刃剑,一方面,相比传统的反做弊手法具有更好的泛化性能,另一方面,随着数据量的添加,索引库也会添加,存在核算杂乱的问题。NLP范畴目前已经处于相对成熟的阶段,在大模型预练习学习广而全的常识上,也为各职业、产品线的详细事务赋能,在此基础上,依然有许多超卓的作业不断涌现,咱们也会继续探究前沿算法在事务上的落地,不断打击做弊内容,维护百度的内容生态安全,不断提升用户体会。

——END——

参考资料

[1] Arora, S., Liang, Y., & Ma, T. (2019). A simple but tough-to-beat baseline for sentence embeddings. Paper presented at 5th International Conference on Learning Representations, ICLR 2017, Toulon, France.

[2] Huang P S, He X, Gao J, et al. Learning deep structured semantic models for web search using clickthrough data[C]//Proceedings of the 22nd ACM international conference on Information & Knowledge Management. 2013: 2333-2338.

[3] Kiros R, Zhu Y, Salakhutdinov R R, et al. Skip-thought vectors[J]. Advances in neural information processing systems, 2015, 28.

[4] Feng M, Xiang B, Glass M R, et al. Applying deep learning to answer selection: A study and an open task[C]//2015 IEEE workshop on automatic speech recognition and understanding (ASRU). IEEE, 2015: 813-820.

[5] Conneau A, Kiela D, Schwenk H, et al. Supervised learning of universal sentence representations from natural language inference data[J]. arXiv preprint arXiv:1705.02364, 2017.

[6] Reimers N, Gurevych I. Sentence-bert: Sentence embeddings using siamese bert-networks[J]. arXiv preprint arXiv:1908.10084, 2019.

[7] Tianyu Gao, Xingcheng Yao, and Danqi Chen. 2021. SimCSE: Simple Contrastive Learning of Sentence Embeddings. In Proceedings of the 2021 Conference on Empirical

[8] van den Oord, A., Li, Y., and Vinyals, O., “Representation Learning with Contrastive Predictive Coding”, arXiv e-prints, 2018.

推荐阅览

质量评价模型助力风险决议计划水平提升

合约广告渠道架构演进实践

AI技能在基于风险测试形式转型中的使用

Go语言躲坑经验总结

PaddleBox:百度基于GPU的超大规模离散DNN模型练习处理计划

聊聊机器怎么”写”好广告案牍?