SimCSE: Simple Contrastive Learning of Sentence Embeddings

April 29, 2022

対照学習は、意味の近い要素同士を近くに、異なる要素を遠くに配置する分散表現を獲得する。 SimCSEは、文の分散表現のための対照学習であり、教師なしと教師ありの2つの学習方法を提供する。 教師なし学習は、Dropout層を通したサンプルが近くに配置されるように、Dropout層の出力2つからなるペアを教師データにする。 教師あり学習は、自然言語推論(含意関係認識)の教師データをつかい、前提と含意の分散表現が近くになるように学習する。

教師なし学習は、\(N\)をミニバッチのサイズ、\(\boldsymbol{\rm h}_i^z=f_{\theta}(x_i, z)\)を事例\(x_i\)にドロップアウトによるマスク\(z\)を適用した結果とすると、損失関数は以下になる。 $$ \ell_i = -\log\frac{e^{\text{sim}(\boldsymbol{\rm h}_i^{z_i}, \boldsymbol{\rm h}_i^{z_i'})/\tau}}{\sum_{j=1}^Ne^{\text{sim}(\boldsymbol{\rm h}_i^{z_i}, \boldsymbol{\rm h}_j^{z'_j})/\tau}} $$ \(\tau\)は温度パラメータである。

教師あり学習の場合、\(x_i\)を前提、含意を\(x_i^+\), 矛盾を\(x_i^-\)として $$ \ell_i = -\log\frac{e^{\text{sim}(\boldsymbol{\rm h}_i, \boldsymbol{\rm h}_i^+)/\tau}}{\sum^N_{j=1}\left(e^{\text{sim}(\boldsymbol{\rm h}_i, \boldsymbol{\rm h}_j^+)/\tau} + e^{\text{sim}(\boldsymbol{\rm h}_i, \boldsymbol{\rm h}_j^-)/\tau}\right)} $$

論文へのリンク