- 対の文を毎回BERTへ入れる代わりに、各文を一度だけベクトル化する。
- 1万文の類似ペア探索は、論文の見積もりでBERT約65時間からSBERT約5秒へ短縮した。
- 計算速度の比較と、類似度の精度比較は別の条件で読む必要がある。
何を確かめた研究か
文章を探す時、候補の全組み合わせをBERTでペア入力すれば精密に比較できるが、候補が多いと組み合わせは急増する。Sentence-BERTは、同じ重みを使う二本のBERTで各文章を独立にベクトル化し、余弦類似度で比較できる表現を学習した。論文は意味類似度と転移課題での成績、検索時の計算量を調べた。
どう検証したか
自然言語推論データで文の関係を教師信号にし、必要に応じてSTSの連続した類似度点数でも追加学習した。意味類似度の複数集合では、人間の評点と余弦類似度の順位相関を測った。直接二文を同時入力するBERT、既存の文ベクトル手法とも比較した。論文は分類や文クラスタリングも試すが、どの課題でも同じベクトルが最適だとは言っていない。
何が分かったか
要旨は1万文から最も似る組を探す場合、全ペアBERTなら約5000万回の推論で約65時間、SBERTなら1万文の埋め込み生成が約5秒で、余弦類似度の計算が約0.01秒と説明する。5秒は埋め込み生成の時間であり、比較の費用を分けて読む。前計算した候補ベクトルを使う運用なら、問い合わせ時の費用をさらに分けて考える。
表2のSTS benchmarkでは、STS向けに調整したBERT-NLI-STSb-largeのSpearman相関は88.77、SBERT-NLI-STSb-largeは86.10だった。SBERTの速さにはこの設定での精度差もある。他の表ではSTS専用学習をしない条件や転移課題があり、都合のよい値を混ぜて比較しない。
限界は何か
意味類似度のベンチマークは、企業文書の版違いや権限、最新性を評価しない。長文を一つのベクトルへ圧縮すると、少数の重要な語が埋もれ得る。文ごとのベクトルは大量候補の絞り込みに向く一方、最終判定では文の対を直接読む方式が役立つ場合もある。
仕事との接点
社内検索ではまず取りこぼしを許せる候補数と応答時間を決める。埋め込み検索で候補を絞り、必要なら別のモデルで並べ替える。類似文を返すだけでなく、正しい文書版に到達した割合を測る。