句子向量表示模型概述

背景

在很多自然语言处理人物中,例如文本匹配,智能问答等都都需要衡量两个句子的相似度,一般情况我们采用将句子编码为向量表示,然后利用两个向量之间的相似度来表示句子的相似度,从而将自然语言环境下的问题转为来可以机器处理的问题。本文对最新的几种句子向量编码表示进行介绍。

模型介绍

SBERT(Sentence-BERT)

论文:Sentence-BERT: Sentence Embeddings using Siamese BERT-Networks

模型原理

采用典型Siamese-Network结构,相同的两路模型对句子分别编码,最后两个编码向量作为一个简单模型的输入,根据不同的训练目标可以定义不同的损失函数对模型整体进行训练,总体目标是以训练两个编码向量的相似度最小为目标。
模型示意图

重点关注
  • 可采用三种不同的目标函数:
  1. Classification Objective Function:o = s o f t m a x ( W t ( u ; v ; ∣ u − v ∣ ) ) o = softmax(Wt(u; v; |u − v|))o=softmax(Wt(u;v;uv))
  2. Regression Objective Function:o = ( c o s i n e ( u , v ) − 1 ) 2 o=(cosine(u,v)-1)^2o=(cosine(u,v)1)2
  3. Triplet Objective Function:o = m a x ( ∣ ∣ s a − s p ∣ ∣ − ∣ ∣ s a − s n ∣ ∣ + ϵ , 0 ) o=max(||s_a - s_p|| - ||s_a - s_n|| + \epsilon, 0)o=max(saspsasn+ϵ,0)
  • 效果宣称
    胜过Universal Sentence Encoder、基于原始bert输出的pooling向量、Avg. GloVe embeddings

(未完待续)


版权声明:本文为liruihongbob原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。