[论文笔记]Sentence-BERT: Sentence Embeddings using Siamese BERT-Networks

Sentence-BERT(SBERT)通过Siamese和Triplet网络改进BERT,生成句向量,解决大规模语义相似度计算问题。通过在NLI和STS数据集上的训练和评估,SBERT表现出优秀的句子相似度计算能力。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

引言

本文是SBERT(Sentence-BERT)论文1的笔记。SBERT主要用于解决BERT模型无法很好地得到句向量的问题。

核心思想

虽然BERT模型可以计算句子对之间的语义相似度,但是它需要句子对拼接在一起然后输入给BERT模型。如果需要计算10000个句子相互之间的相似度,则需要计算 10000 ⋅ ( 10000 − 1 ) / 2 = 49995000 10000 \cdot(10000-1)/2=49995000

### Sentence-BERT概述 Sentence-BERT是一种基于BERT模型的改进方法,旨在高效生成句子级别的语义表示。传统的BERT模型虽然能够捕捉词和子句之间的复杂关系,但在实际应用中通常需要计算两个句子之间所有的token对齐相似度矩阵,这使得其时间复杂度较高[^1]。 为了降低这种计算开销并提高效率,Sentence-BERT引入了一种特殊的架构设计——即Siamese网络结构以及Triplet网络结构。这两种结构允许在训练过程中直接学习到适合于下游任务(如语义相似度比较)的句子嵌入向量[^2]。 具体来说,在Sentence-BERT框架下,输入的一组句子会分别经过同一个预训练好的BERT编码器处理得到各自的隐藏状态表示;随后这些隐藏状态会被进一步聚合成为固定长度的向量形式作为最终的sentence embedding输出[^3]。 ### 句子嵌入生成过程详解 当采用Siamese BERT-network来实现上述目标时,主要涉及以下几个方面: #### 数据准备阶段 对于每一对待比较或者分类标注过的正负样本组合(s₁, s₂),它们将被送入相同的神经网络分支当中共享参数权重wₜ从而获得对应的低维稠密特征表达f(s₁; wₜ), f(s₂ ;wt)[^4] #### 训练损失函数定义 常见的做法是利用余弦距离衡量两句话之间的接近程度,并结合交叉熵或其他对比学习专用的目标优化准则构建整体loss function用于指导整个端到端系统的调整完善工作流程如下所示: \[ L=\sum_{i=1}^{N}-\log \frac{\exp \left(\operatorname{sim}\left(f\left(s_i^+\right), f\left(s_i^-)\right)\right)}{\sum_j \exp \left(\operatorname{sim}\left(f\left(s_i^+\right), f\left(s_j^\prime\right)\right)\right)}} \][^5] 其中\( sim() \) 表达的是某种特定测量方式比如前面提到过的cosine similarity等等. #### 推理预测环节 一旦完成充分迭代后的收敛模型保存下来之后就可以方便快捷地针对新来的测试实例执行前馈操作获取相应高质量的结果了. ```python from sentence_transformers import SentenceTransformer, util # 加载预训练模型 model = SentenceTransformer('all-MiniLM-L6-v2') # 输入句子列表 sentences = ['This framework generates accurate sentence embeddings.', 'Sentence-BERT uses siamese networks to produce these embeddings.'] # 获取句子嵌入 embeddings = model.encode(sentences) print("Embedding shape:", embeddings.shape) ``` 以上代码片段展示了如何使用Hugging Face提供的`sentence-transformers`库加载一个预先训练好Sentence-BERT变体(all-MiniLM-L6-v2),并通过调用`.encode()`方法快速简便地取得给定文本集合相应的数值化描述信息[^6].
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

愤怒的可乐

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

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

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

打赏作者

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

抵扣说明:

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

余额充值