BERT와 RoBERTa는 두 문장의 의미론적 유사성을 추론하는 STS와 같은 task에서 높은 성능을 보임
하지만, 두 문장을 전부 모델에 입력값으로 넣어야하기 때문에 엄청난 overhead 발생
가령, 10,000개의 문장에서 가장 유사한 문장 쌍을 찾으려할 때 무려 5000만 번 이상의 연산(65시간)을 거쳐야 함
그러므로 BERT구조는 문장의 유사도 검색이나, 클러스터링과 같은 비지도task에 적합한 구조가 아님
따라서 우리는 Siamese와 triplet network구조를 사용한 사전학습된 BERT구조를 수정한 Sentence-BERT(SBERT)를 제안함
이 SBERT는 문장의 의미를 임베딩 된 문장에 반영되게 하는 것이 목적으로 코사인 유사도를 활용하여 두 문장 간의 의미가 얼마나 유사한지 비교 가능
SBERT는 65시간이 걸리던 소요 시간을 5초로 획기적으로 줄이면서도 BERT에서의 정확도는 그대로 유지함
SBERT와 SRoBERTa는 STS task와 전이학습 task에서 다른 SOTA 문장 임베딩 방법론과 비교해서 우수한 성능을 보임

Classification Objective Function
문장 임베딩 u, v, u - v에 절대값 3개를 concatenate하고, 가중치를 곱한 값을 softmax취한 것
Regerssion Objective Function
두 문장 임베딩 u, v사이의 코사인 유사도를 계산한 값에 대해서 MSE를 사용
Triplet Objective Function
anchor 문장 a, 긍정 문장 p, 부정 문장 n이 주어졌을 때 긍정 문장과의 거리 - 부정 문장과의 거리가 최대화 될 수록 anchor문장과 긍정 문장의 거리는 가깝게, 부정 문장과의 거리는 멀어지는 손실함수
유클리드 거리, 앱실론은 1을 사용(긍정이 적어도 1만큼은 가까워야 함)

