Sentence-BERT 语义相似度双塔模型

论文介绍

发表:2019,EMNLP

论文题目:《Sentence-BERT:sentence embeddings using siaese BERT-networks》
论文地址:https://arxiv.org/abs/1908.10084
Github:https://github.com/UKPLab/sentence-transformers

适用领域:

  • 句向量生成
  • 语义相似度计算
  • 语义搜索
  • 无监督任务(聚类)

1 概述

在20年之前的各种预训练模型中,比如bert,XLNet,Albert等等,这些都不适合用作语义相似度以及无监督任务中。通常这类问题的解决方式是计算出句向量,然后计算距离(余弦相似度,曼哈顿距离等)来表示语义距离。

1.1 交互型模型(单塔模型)

在以Bert为代表的预训练模型,其语义相似度的计算的处理方式是构造句子对[CLS]sen1[SEP]sen2 输入到模型中,通过各种句子间的特征交互完成相似度计算。这就是所谓的交互式模型。这样来看,效果一般来说表现都不错,但是更多的在计算速度上面存在很大的问题。

以10000个句子对为例,如果需要匹配每个句子的相似度最大的句子,则需要进行两两交互,10000个句子之间的计算量为10000*(10000-1)/2,约等于5000w次推理计算,在V100gpu上面大概需要65h。

所以交互型学习可以捕获到更深层的结构信息,当然带来的主要问题就是计算速度很慢。

1.2 表示型模型(双塔模型)

概括说来就是分别针对单个句子计算句向量表示,在对两个句向量进行距离计算,在这里形成交互。

表示型匹配模型的共同特点是:对将要匹配的两个句子分别进行编码与特征提取,最后进行相似度交互计算。其优点是:

  1. 将文本映射为一个简洁的表达,便于储存。
  2. 匹配的计算速度快。
  3. 模型在表示层可以用大量无监督的数据进行预训练。因此非常适合于信息检索这种对存储和速度要求都比较高的任务。

但缺点是:

  1. 匹配不仅仅是一一对应的,而且是有层次、 有结构的 ,分别从两个对象单独提取特征,很难捕获匹配中的结构信息。

本文就是这样的一个表示型双塔模型。

2 Bert进行单句Sentence Embedding

上文提到,可以通过对单个句

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Weiyaner

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值