원제: Sentence-T5: Scalable Sentence Encoders
from Pre-trained Text-to-Text Models
Sentence Embedding: 문장의 의미를 압축된 형태로 표현하여 분류, QA, Semantic retrieval 등 다양한 언어 처리 작업에 사용 가능
최근 연구들에선 모델의 파라미터를 늘리고, pre-trained된 모델을 사용하는 것이 성능 향상에 효과적인 접근법임을 보여준다.
해당 논문에선 T5에서 Sentence Embedding을 추출하는 방법에 대해서 탐구한다. 기본적으로 T5는 span corruption 방식을 사용하기에 파라미터의 확장이 가능하지만, retrieval과 clustering에서 효율적인 적용이 어렵다.
span corruption: 문장에서 연속된 구간을 통째로 masking
- cross-attention inference cost: Query 수 N과 Candidate 수 M에 대해, 검색 후보마다 decoder을 추론하기에 이란 계산량
- 의미적 유사성 기반 임베딩은 학습하지 않음
- encoder-decoder 구조의 한계: 원래 임베딩용이 아닌 문장 이해(encoding) 후 생성(decoding)이 목적이기에 의미를 반영하기 위해선 encoder 결과만이 아닌 decoder interaction도 포함되어야 함
해당 논문에서는 3가지 방식을 시도한다.

a) Pretrained T5
b) encoder의 첫번째 토큰 표현을 임베딩으로 사용
c) encoder의 모든 토큰 표현의 평균을 임베딩으로 사용
d) decoder의 첫번째 토큰 표현을 임베딩으로 사용
위 방식의 b를 Encoder-only first(ST5-Enc fisrt), c를 Encoder-only mean(ST5-Enc mean), d를 Encoder-Decoder first(ST5-EncDec first)라고 명명한다.
ST5-Enc first와 ST5-Enc mean의 경우에는 BERT와 같은 encoder-only pre-trained model의 풀링과 유사하지만, CLS 토큰이 존재하지 않는다.
ST5-EncDec first에선 Encoder-Decoder 구조에서 decoder가 첫 토큰을 생성할 때 전체 입력 문장의 의미를 반영하고 있다고 가정하기에 첫 토큰을 임베딩으로 활용한다.
Encoder의 학습에는 Dual Encoder 구조를 사용한다.
Dual encoder: 두 입력 문장을 동일한 인코더(sharing weight)로 각각 고정 길이 벡터로 인코딩하여 Projection layer와 L2 정규화를 거친 후 유사도를 계산
데이터들 간의 관계를 통해서 학습을 진행하는 방식. 이를 이용하면 임베딩 공간에서의 uniformity가 개선되어 downstream task 성능이 향상된다.
paired dataset:
이때 는 입력 문장, 는 의미적으로 유사한(Positive) 문장
학습시에는 와 와의 거리는 줄이면서, 와의 거리는 멀게 임베딩을 배치해야한다. 이를 in-batch sampled softmax로 나타내어
만약 Negative sample 가 있다면,
Additional Attention Pooling: 토큰마다 weight를 달리해서 합치는 방법. 중요한 token을 더 많이 반영한다.