Word2vecとNegative Sampling|言語処理へのDeepLearningの導入の研究トレンドを俯瞰する #25

f:id:lib-arts:20191024235142p:plain

言語処理へのDeepLearningの導入をご紹介するにあたって、#3〜#8においては、Transformer[2017]やBERT[2018]について、#9~#10ではXLNet[2019]について、#11~#12ではTransformer-XL[2019]について、#13~#17ではRoBERTa[2019]について、#18~#20ではWord2Vec[2013]について、#21~#24ではALBERT[2019]について取り扱ってきました。

Transformer-XL(論文のAbstractの確認)|言語処理へのDeepLearningの導入の研究トレンドを俯瞰する #12 - lib-arts’s diary

RoBERTa(論文の詳細④ RoBERTa、Related Work、Conclusion)|言語処理へのDeepLearningの導入の研究トレンドを俯瞰する #17 - lib-arts’s diary

Word2Vec②(Model Architectures&New Log-linear Models)|言語処理へのDeepLearningの導入の研究トレンドを俯瞰する #19 - lib-arts’s diary

ALBERT③(The Elements of ALBERT)|言語処理へのDeepLearningの導入の研究トレンドを俯瞰する #23 - lib-arts’s diary

#25ではWord2vecの追加研究として学習を高速化させる手法としてNegative Samplingを提案した"Distributed Representations of Words and Phrases and their Compositionality"について取り扱います。今回は論文全体を扱うというよりもNegative Samplingに着目してまとめていければと思います。Abstractの内容を確認した後に、Negative Samplingについて解説していきます。
以下目次になります。
1. Abstractと論文の概要
2. Negative Samplingについて
3. まとめ

 

1. Abstractと論文の概要
まず1節では論文の概観を掴むにあたって、Abstractを確認していきます。

f:id:lib-arts:20191025175957p:plain

https://papers.nips.cc/paper/5021-distributed-representations-of-words-and-phrases-and-their-compositionality.pdf

以下簡単にAbstractを要約します。
要約:『最近提案されたcontinuous Skip-gramモデルは構文的かつ意味的な関係の多くを抽出する高品質な分散表現(high-quality distributed vector representation)の学習のための効果的な手法である。この論文では分散ベクトル表現の質と学習スピードを同時に向上させるいくつかの拡張(extensions)について紹介する。具体的には、(1)頻出の単語のsubsamplingによってスピードアップを実現する、(2)negative samplingという階層softmaxの代替を提案する、(3)idiomatic phrasesの抽出などの拡張について述べる。これにより何百万ものフレーズのより良いベクトル表現の学習が可能となった。』
上記で簡単な概要について掴むことができました。この論文はWord2vec論文の追加研究であり、主に三つの拡張が紹介されています。今回着目するnegative samplingはこの拡張の2つ目で、階層softmaxの代替として提案されています。
大体の論文の概観について掴むことができたので、1節はここまでとします。


2. Negative Samplingについて
2節ではNegative Samplingについて取り扱います。

f:id:lib-arts:20191027130724p:plain

論文では上記のように言及されています。階層ソフトマックス(hierarchical softmax)の代替(alternative)として、NCE(Noise Contrastive Estimation)が提唱されたとされています。また、このNCEはsoftmaxの確率の対数(log probability)の最大化を近似的に行っているとされていますが、Skip-gramのモデルがhigh-qualityのベクトル表現の学習にのみ関係しているので、NCEをさらに単純化しNegative Sampling(NEG)を定義したとされています。
数式(4)を理解するにあたって論文の他の記述だけだと読み取りづらいのと、「深層学習による自然言語処理」の4.3節がNegative Samplingが取り組んでいる「出力層の高速化」という問題に対して背景の説明を含めて解説してありわかりやすいため、以下ではそちらを確認していきます。

深層学習による自然言語処理 | 書籍情報 | 株式会社 講談社サイエンティフィク

大まかな流れとしては下記です。

1) vector representationの学習にあたっての巨大なソフトマックス関数の課題
2) 雑音対照推定(NCE; Negative Constrative Estimation)
3) 負例サンプリング(NEG; Negative Sampling)

以下それぞれについて確認していきます。
1) vector representationの学習にあたっての巨大なソフトマックス関数の課題
ニューラル言語モデルにおいて、出力層は基本的には交差エントロピー(cross entropy)損失関数を目的関数として使用されています。ちなみにここで交差エントロピー関数は最尤法(MLE; Maximum Likelihood Estimation)においてベルヌーイ分布を仮定した際に尤度最大化から導き出せるため、同時確率(joint probability)の最大化と同様な文脈で捉えておくと良いです。
さて、ここで本の(4.32)式を確認します。(VはVocabularyの略で、こちらの方がわかりやすいと思われたため本とは文字を置き換えました)
 l_{\mathbf{\theta}}^{softmax}=-log{\frac{exp(f_{\mathbf{\theta}}(\mathbf{x},y))}{\sum_{y' \in V}exp(f_{\mathbf{\theta}}(\mathbf{x},y'))}}
上記の(4.32)式において、分母の計算において出ているVは全語彙集合なので、|V|を語彙のサイズとすると非常に膨大になり、分母の計算は非常に重くなるとされています。ここで、ソフトマックス関数により定義される確率分布の最尤推定を行なっていると(4.32)を解釈して、 l_{\mathbf{\theta}}^{softmax}=-log(P(y|\mathbf{x}))の最大化を試みていると見ることもできます。損失関数の最小化と対数尤度の最大化が一致していることに注意です。
ここで、本に従って変換を行い勾配を計算すると、下記の(4.40)式が導出されます。
\nabla l_{\mathbf{\theta}}^{softmax}(y)=-s'(y)+\mathbb{E}_{p}[s'(Y)]
この勾配の計算時に問題になるのが第2項の\mathbb{E}_{p}[s'(Y)]であり、語彙数の|V|が巨大な時に第2項は全ての語彙について計算する必要があるので非常に重くなります。この際に重点サンプリングを行うことで勾配の計算を近似的に行うことができます。

2) 雑音対照推定(NCE; Negative Constrative Estimation)
雑音対照推定(NCE; Negative Constrative Estimation)では訓練データと無作為に生成したノイズを区別するような目的関数を用いることで、計算の軽量化を実現しています。NCEでは学習対象のデータとノイズの分布からの標本を識別するような分類器を考え、これに基づいた負の対数尤度の最小化を行います。

3) 負例サンプリング(NEG; Negative Sampling)
NCEをより単純化させた手法としてNegative Saplingが紹介されています。Negative Samplingの目的関数の式はNCEの目的関数式(4.56)にk=|V|かつNCEの目的関数上のノイズの分布がq(y)=\frac{1}{|V|}とおいた際と同じ式になるとされています。
最終的には負例サンプリングとして、(4.57)式が導出されています。
l_{\theta}^{NS}-log{\frac{exp(s(y))}{exp(s(y))+1}}-\sum_{\bar{y} \in \bar{D}}log{\frac{1}{exp(s(\bar{y}))+1}}
ここで\bar{D}はノイズ標本を表しています。


3. まとめ
#25ではWord2vecの学習アプローチとしてNegative Samplingについて取り扱いました。細かいところはもう一度見直す方が良さそうですが、巨大なソフトマックス関数の対処の検討からNCE->Negative Samplingの全体的な流れがつかめたので有意義だったと思います。
#26は事前学習モデルにおいてSotAを達成した2019年10月のT5(Text-to-Text Transformer)について確認するにあたり、"Exploring the Limits of Transfer Learning with a Unified Text-to-Text Transformer"について取り扱います。