統計・機械学習若手シンポジウム

自然言語処理と統計・機械学習
持橋大地
統計数理研究所
daichi@ism.ac.jp
2018-8-10(金) 一橋講堂

自己紹介l 所属: 統計数理研究所 数理・推論研究系
l 専門: 統計的自然言語処理、ベイズ機械学習l 略歴

1998年 東大教養学部基礎科学科第二卒業
2005年 奈良先端科学技術大学院大学
情報科学研究科 博士後期課程修了(松本研究室)ATR音声研、NTT CS研を経て現職

自然言語処理とはl 巨大な分野なので、本チュートリアルで全部カバーするのは絶対に無理l 機械学習および統計に関連するところのお話

Take-home Messagel 自然言語処理の重要な技術は、ほぼすべて機械学習および統計から来ている– 自然言語処理の人で、数学を大事にする人が少ない
l 非常に深さのある分野なので、本チュートリアルを参考に、周りの自然言語処理の人と協力してみてほしいl 社会応用に今後インパクトが大きい今日の講演の概要
l 自然言語処理の歴史と統計・機械学習との関係
l 深層学習で何ができるようになったか?
l 深層学習で何ができないか?
l Remedy:– 深層学習の統計学習化– 統計学習の深層学習化
l 知識表現と統計・機械学習 (他の分野にない特徴)

NLP(自然言語処理)の歴史
l 1950年代〜

経験主義
l 1980年代〜
合理主義、論理アプローチ、知識表現
l 1990年代後半〜
統計・機械学習の本格的導入
l 2010年代〜
深層学習＋論理・知識の機械学習
社会応用の広がりNLPの技術l 1990年代最後：最大エントロピー法 (＝対数線形モデル)– Sha+ (NAACL 2003)でMEが最適化で解けると発見– Boostingと最尤推定 (Lebanon 2002)
l 2000年代前半：カーネル法の導入– SVM以外のカーネル法はあまり流行らなかった– NB: カーネル法とガウス過程の関係 (Kanagawa+ 18)
l 2000年代後半：ベイズ学習– 変分ベイズ法、階層ベイズ、ノンパラメトリックベ
イズ (基礎は1990年代中盤から (Gelman 1995))

2010年頃の状況
l ノンパラメトリックベイズは数学が超高度化しており、一部の人しかついていけない状況
l NLPの論文のモデルは、ほとんどがロジスティッ
ク回帰– 論文は、

p(y|x) / exp(wT f (x, y))の形の式しかほぼない状況

l 要するに、複雑な現実に対してモデルがノンパラメトリック化していく過程

深層学習の導入
l 2010年代以降〜現在
l そもそも、深層学習はNLPから始まった
l ニューラル言語モデル (Bengio+ 2003)– nグラムモデルより高性能なことが示された(ただし学習は難しい)ニューラル言語モデル (Bengio+ 03)
文脈ベクトル
単語ベクトルl 前の単語列から、次の単語を予測する言語モデルを学習

p(wn |wn 1 . . . wn m )Word2vec
l 前の単語ではなく前後の単語を予測するようにすることで、単語の意味をよりよくベクトル化l 有名なベクトルの引き算が成り立つ
l 統計的には、行列分解と同値

単語埋め込みの例
l GloVeの高次元の埋め込みベクトルをt-SNEで2次元に射影

単語埋め込みの例 (2)l 詳しくはà岩波データサイエンス第2巻「統計的自然言語処理ーことばを扱う機械」

LSTM
l Long Short-Term Memory (Hochreiter 1997)– 一種の複雑な再帰的ニューラルネットワーク

LSTMセルが連なって、時系列データを表現する

LSTMによる生成例 (Graves 2014)

仮想Wikipediaデータ
手書き文字生成ニューラル機械翻訳
l Google ニューラル機械翻訳: 8層の双方向LSTM＋アテンションのエンコーダ/デコーダ

ニューラル機械翻訳の例

l かなり上手く翻訳できる (The Guardianのヘッドライン)

ニューラル機械翻訳は完全か?
l No! (まったく理不尽な翻訳を出すことがある)

深層学習でできるようになったこと
l 類義語の適切な扱い (word2vec, GloVe)
l 文生成 (LSTM)
l ニューラル機械翻訳
l その他、各モデルのMarginalな改善

逆に、これだけ！
l 画像処理や音声認識と比べると、差分は大きくない深層学習の利点と弱点
l 「理屈で説明できないようなもの」にNNは強い– 例：画像->LaTeX変換、顔画像生成– 大量のデータがあれば、経験分布で押し切れる深層学習の利点と弱点 (2)l 「理屈で説明できるもの」には弱い– 例：Google機械翻訳のnotと複文の扱い– 論理的関係はモデルに入っていない深層学習の利点と弱点 (3)l 他の自然言語の例：「彼は音楽を聞いたと果たして言えるのだろうか」「角笛の音が街にひびきわたるとき、獣たちは太古の記憶に向ってその首をあげる。」「Pierre Vinken, 61 years old, will join the board as
a nonexecutive director Nov. 29.」l 単純なニューラルネットがこれらの言語構造を勝手に学習してくれるわけがない！

どうすればよい?
1. 深層学習を、確率モデルを使って記述する.
(深層学習側からのアプローチ)
2. 確率モデルを、深層学習を使って推定する.
(確率モデル側からのアプローチ)

1. 深層学習を、確率モデルを使って記述する.
(深層学習側からのアプローチ)

単語埋め込みの統計モデル
l “Neural Word Embedding as Implicit MatrixFactorization” (Levy&Goldberg, NIPS 2013)l Word2vec、つまりSkip-gram with negative
samplingは、単語ベクトル w~ が (a) 前後の語cと内積が近く (b) ランダムな語c’とは遠い
~ を学習
ように w
内積小

内積大

w
~~cc~0単語埋め込みの統計モデル (2)l よってWord2vecの学習は、次の目的関数を最大化
XXw

chn(w, c) log (w~ · ~c) + k · Ec0 ⇠pD [log ( w~ · c~0 ]l wで微分して0とおき、しばらく計算するとこの目的関数を最大化する解は下をみたす✓◆n(w, c)w~ · ~c = log
log kn(w)n(c)à 自己相互情報量 (Pointwise Mutual Information,PMI)！

i単語埋め込みの統計モデル (3)l Word2vecは、PMIの行列を行列分解で低ランク近似していることが分かった

cw

log

p(w, c)p(w)p(c)c'ww~

単語埋め込みの統計モデル
l 問題：word2vecの図のような学習基準は、まだヒューリスティックà 何かの形で、PMIが自然に導かれるようにできないか？
l (注) GloVe (Pennington+ 2014)という別の統計的な方法もある
内積小

内積大

w
~~cc~0おまけ: CSTM (M 2013)
Continuous-space topic modell 単語wはd次元の潜在座標l この上に、ガウス過程をもつを生成

CSTM: 基本モデル
l 単語の平均的な確率(最尤推定)

過程–を、ガウス

で Modulate

は、8000倍から0.0001倍くらいの値

Empirical Evidence

Brownコーパス

Cranfield コーパスをl

最尤推定で計算してプロット–l 確率の比はほぼGaussianで分布している!

学習l ガウス過程から生成した関数fは文書ごとに無限次元

à 学習不可能l DILN (Paisley+ 2012)と同様に、補助変数uを導入– 単語座標の行列を–のとき、とする
はuを積分消去して– これは、線形カーネル使ったGPと等価なことを意味するlとして、 とをの学習問題!

学習 (2)l 通常のMetropolis-Hastingsで、単語と文書の潜在座標を学習– For j = 1 .. J,l for i = randperm(1 .. D),– Draw u’ ~ N(u,σ2) & MH-accept(u’); Update Z
l For w = randperm(1 .. W),– Draw φ’(w) ~ N(φ(w),σ2) & MH-accept(u’); Update Z1..ZN
l z ~ N(0,σ2); α0’ = α0・exp(z)– If MH-accept(α0’) then α0=α0’– 実際は、uとφ(w)の更新をランダムに混合
l 単語間に強い相関があるため、勾配法では局所解

CSTM in retrospectivel CSTMの単語生成モデル (Cox比例ハザードモデル)

p(w|d) / p(w) exp(f (w, d))l 変形すると、

p(w|d)
exp(f (w, d)) /p(w)p(w, d)) f (w, d) / log
p(w)p(d)~ · d~ は自己相互情報量だった！
– 結局、f (w, d) ⇡ w

Random Walk in Discourse modell Arora+ (TACL 2016)で提唱, Mnih&HintonのLog-linear言語モデルがもと

w~tct

高次元超球面上で、文脈ベクトルct がゆっくりランダムウォークしているとする。このとき、単語wtが出力される確率はexp(w~ t · ct )p(wt |ct ) =Zとする

RAND-Walk (Arora+ 2016)l 定理: このモデルの下で、意味的に近い単語はベクトルが近くなるので~v · w~PMI (v, w) =± O(✏)
dw
~tct

単語ベクトルの内積がPMIに対応!
分配関数Zは数万個あるすべての単語についての和で、文脈毎に異なるため、定理の証明はかなり面倒(注: Self-normalization)

脱線: 文の埋め込み (Arora+ 2017)
l 1つの文の中でctが一定だと仮定すれば、そのctを求めれば文の埋め込みになるのでは?
à 元モデルでは、単語ベクトルを単に平均すればctの最尤推定量になる
l 問題あり：– “the”や“a”などのベクトルも足されてしまうà 単語の重みづけが必要– 意味というより文法や慣例によるノイズに引きずられる (例: san francisco)l どんな重みやノイズ除去にすればよい?

Improved Random walk modell 単語は文脈ベクトルct’との近さ以外に、確率αでランダムにユニグラム分布から出力される
0exp(w~·ctt)
0p(wt |ct ) = ↵p(wt ) + (1 ↵)Z

l 文脈ベクトルct’は、定常ベクトルc0と時変成分ctに分けられる

c0t = c0 + (1)ct ,c0 ?ct– c0は、文法的な単語の出やすさを支配– 最近の研究でも同じ観察 (“All-but-the-top”, ICLR2018) : こちらの方が深い議論をしているのでお薦めEstimationl 文 s = w1 w2 · · · wM に対して、対応するcを推定したいl 最尤推定を考えると、
Xexp(w~ · c)log p(s|c) =log ↵ p(w) + (1 ↵)Zw2sl Σの中をf(w,c)とおくと、テイラー展開により

f (w, c) ⇡ f (w, 0) + rf (w, 0)T c(1 ↵)/(↵Z)=
hc, wi~ + (constant)p(w) + (1 ↵)/(↵Z)

Estimation (2)l よって、近似的に

XXa
1 ↵argmaxc
f (w, c) /w,~ a=p(w)+a↵Z
w2sw2s– cの推定量は、文の単語ベクトルの重み付き和– Smoothed Inverse Frequency (SIF) weightingl 注: |c|=1 なので、上の導出には

max hc, gi + C = g/|g|c:|c|=1を使っているword2vecとの関係
pl word2vecは、近傍語wを選ぶときに 1/ p(w)に比例して選んでいる
⇣ q
⌘
10 5
l これは、単語に重み q(w) = min 1,p(w)をかけていることに相当
l SIFとq(w)は非常に似ている

Algorithm for sentence embeddingl 計算の基となる単語埋め込みは、StanfordのGloVeの300次元埋め込みなどを使用
l 注: 提案手法のモデルから単語埋め込みを求めることも多分可能Experimentsl SemEval textual similarityタスク– 提案法がRNN, LSTM, SkipThought等を抜き高性能– DAN等多くの手法は教師あり＋重い計算が必要

αとp(w)の効果

l αは10-3〜10-4の広い範囲で高性能 (解析解がある)l p(w)を計算するコーパスを変えても、結果は同じ

c0の計算と効果
l c0はk-SVDで重み付けした単語ベクトル行列の第一固有ベクトルとして求める
l c0の近傍の語は
just, when, even, one, up, little, way, there, while,but... 文法的な次元をとらえているDownstream classification taskl similarity, entailment, sentiment タスクの文ベクトルとして用いた場合– o.g.は出力ゲートあり、noはなし
l similarityとentailmentで提案手法が複雑な手法を凌駕
l sentimentでは既存手法が高性能à(1) SIFは”not”などをほぼ無視 (2) 反意語問題には対応していない

2. 確率モデルを、深層学習を使って推定する.
(確率モデル側からのアプローチ)

確率モデル+Loglinearl DeNero+ (2010): 出力確率をLoglinearに

l EMのMステップでL-BFGS

確率モデル+Loglinear (2)l NLPの各種タスクで高精度 (下記は一部)

Variational Autoencoder (VAE)
l Kingma&Welling (2014)
l 変分ベイズ法の、ニューラルネットによる拡張

変分ベイズで何が不足？
l 共役分布族 (ディリクレ-多項分布など)でないとEMアルゴリズムが導けない
期待値

⌦↵

⌦

↵

log p(D, z|✓) q(z) , log p(D, z|✓) q(✓)

が解析的に解けない
l 強い因子分解の仮定

q(z, ✓) = q(z)q(✓)
l 複雑なデータの正確なモデル化が難しい逆に、ニューラルネットでは？
Decodel 通常のオートエンコーダでは、新しいデータを生成できない– 潜在変数 z に分布がない
l きちんとした確率的生成モデルになっていない！

zEncodexVariational Autoencoder (VAE)
l Kingma & Welling (ICLR 2014)– 元のタイトル: “Stochastic Gradient VB and the
Variational Auto-Encoder”
l 変分下限をニューラルネットで近似– 因子分解不要– Stochastic Gradientで学習可能– z は典型的には多変量標準ガウス分布z ⇠ N(0, IK )VAEのモデル: 前提l θの分布は(とりあえず)z✓

考えない(定数として最適化)
Zl p(x|✓) =p(x|z, ✓)p(z)dzを最大化

xN

l z ⇠ N(0, IK ) が典型的

VAEの導出 (1)ZZ

p(x, z|✓)q(z| )dzq(z| )log p(x|✓) = log p(x, z|✓)dz = log
Zp(x, z|✓)(Jensen)
q(z| ) logdzq(z| )Zp(x|z, ✓)p(z|✓)= q(z| ) logdzq(z| )Z= D(q(z| )||p(z|✓)) + q(z| ) log p(x|z, ✓)dz
(1)

(2)

l Jensenの不等式で下限を取っているだけl (2)項を最大化したいが、(1)項がペナルティ(正則化)VAEの導出 (2)log p(x|✓)

D(q(z| )||p(z|✓)) +Z

q(z| ) log p(x|z, ✓)dz
(2)(1)) = N(µ( ), diag( ( ))) とすれば、(1) は解析的SGDで最適化できる!
(2) はモンテカルロ近似できる

l q(z|zz ⇡ N(µ(x), diag( (x)))µ(x), (x)xVAEの導出 (3)l 正規分布の間のKLダイバージェンス D(q(z|φ)||p(z))

は解析的に求められるので、結局
log p(x|✓)

KX12k=1z(`) ⇠ q(z| )(1+log2kµ2k2k) +LX1L

log p(x|z(`) , ✓)`=1– この下限のGradientを計算してSGDに入れればよい.
– Reparametrization trick (正規乱数の変換)

VAE: ポイント
l Jensenで下限をとった後のq(z|φ)は任意の関数でよい– 因子化仮定は必須ではない– q(z|φ)をニューラルネットでモデル化
l ガウス分布間のKLダイバージェンスは解析的に計算できる– 本質的には必ずガウス分布である必要はない
VAE=変分近似＋ニューラルネットニューラルネットの確率的生成モデル化.

VAE: 注意点
ただし...
l Jensenの不等式により、D(q(z|φ)||p(z)) を最小化

× D(p(z)||q(z|φ)) ではない

D(q(z| )||p(z)) =Z

q(z| )
q(z| ) log
dzp(z)– モデル化している範囲で、q(z|φ)とp(z)の差が小さければよい– p(z)が大, q(z|φ)が小の領域があっても気にしない– Peakyな事後分布 (Mode-finding: PRML参照)

VAEのまとめl VAE ... 変分ベイズ法の正統進化– q(z|φ)として解析関数ではなく、p(z)と同じ分布族(たとえば正規分布)を与えるニューラルネットを考える– 勾配が解析的には解けないので、モンテカルロ近似
l 通常のNNと異なり、データを簡単に生成できる
l 変分下限を考える際に、真の事後分布より尖っている可能性が高いので注意が必要

確率モデル+VAE
l 有名な論文は、Johnson+ (NIPS 2016)– 色々な確率モデルをVAEで近似– ただ、抽象論がほとんどで実際に何をやっているかよくわからない (NLPの例はなし)

確率モデル+VAE (2)l “Syntax-directed Variational Autoencoder forstructured data”, ICLR 2018
l 創薬や材料科学などで、分子構造の良い統計モデルが欲しい確率モデル+VAE (3)l SMILES記法：

l 単純なアプローチ: SMILES記法を言語モデルから生成 (LSTM)– 非常に長距離の相関には弱い– 必ず化学的に妥当な構造となる保証が無い– 様々な条件を満たすように生成することが難しい

確率モデル+VAE (4)l 分子の木構造からの生成 (構文解析、CFG)

l 制約をベルヌーイ分布から先に生成し、制約を満たすように下部構造を生成– 統計的には、補助変数(auxiliary variable)モデル?

確率モデル+VAE

SMILES木構造

l 木構造を考慮しないモデルより、ずっと妥当な化学構造の生成
l VAEによる、木構造の連続空間への埋め込み「知識」の機械学習
l 自然言語は、その裏に様々な知識を背景として成立している– 「晴れる」à「洗濯物が乾く」– 「仕事を頼まれる」à「休暇が取れない」– 手で全ての知識を書くことは無理
l 詳しくは、海野さん(PFN)のチュートリアル参照

「知識」の機械学習 (2)l 横井君(東北大)との共同研究 (IJCAI 2017)
l 「知識の粒度」を自動発見する– 「友達と朝に食事」à「とてもお酒が進む」– 「雨で大変だった」à「体が芯まで濡れている」

「知識」の機械学習 (3)l HSIC (Hilbert-Schmidt Independence Criterion;Gretton+ 2005)で関連性を定義(カーネル法に基づく相互情報量)à MCMCでHSICを最大化する部分木を探索

l 詳しくはà 横井君に聞く, あるいは論文参照

最後に
l 自然言語処理は、内部の人が思っているより応用分野が非常に広い– 音声認識、音楽情報処理 (歌詞)– 情報推薦、協調フィルタリング、広告
l A, G, F, Cookpad, 不動産、ファッション、旅行etc– 計算社会科学 (経済学、政治学、社会学)– バイオインフォマティクス– ロボティクス
l 上は私が共同研究している例だが、他にも多数関連あり

まとめ
l 自然言語処理(NLP)では現在深層学習が流行っているが、画像や音声ほどのインパクトはない– 言語はもともと構造的なため– 離散、正確なルールが存在
l 単語埋め込みが、NLPの深層学習の基礎
l 深層学習と通常の機械学習/統計をどう繋ぐかが課題– 深層学習側からのアプローチ– 機械学習側からのアプローチ
l NLPの射程は広大、社会的に今後重要