dropout 机制存在,对于同一句子的两次输出是不同的

SimCSE 提供了无监督(上图 a)和有监督(上图 b)两种架构,由于业务需要我们只用了无监督方式,其基本思路是:

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

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

3. 最小化目标函数,进行参数更新。

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

图片

最终模型的效果在各个数据集上基本处于碾压的存在。

图片

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。

图片

3.2 问题及优化

论文中的损失没有计算增强后的样本之间的损失,原因可能是由于计算成本的考虑,我们对损失进行了改进,对于增强后的数据也纳入负例的损失计算:

图片

3.3 模型效果

为了观测模型的最终效果,我们选取了之前的 17 个目标 case,以及随机选取 10 个其它句子:

由下方热力图可以看出,符合当初模型预期,前 10 个的相似性远大于后 10 个的相似性。对于提问『北京肋软骨隆鼻刘彦军做的怎么样?』检索索引库中语义最相似 TOP 10 获取疑似变形推广。

图片

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值