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)} $$論文へのリンク