深層学習による自然言語処理
勉強会第2回後半
株式会社レトリバ
取締役 リサーチャー 西鳥羽 二郎
今回の範囲
• 第3章 言語処理における深層
学習の基礎
• 3.1 準備: 記号の世界とベクト
ルの世界の橋渡し
• 3.2 言語モデル
• 3.2.1 概要
• 3.2.2 確率モデルの定義
• 3.2.3 順伝搬型ニューラル言語モ
デル(FFNN言語モデル)
• 3.2.4 再帰ニューラル言語モデル
(RNNLM)
• 3.2.5 言語モデルの評価
• 3.2.6 言語モデルからの文生成
• 3.2.7 文字単位の言語モデル
• 3.3 分散表現
• 3.3.1 概要
• 3.3.2 歴史的背景
• 3.3.3 獲得方法
• 3.3.4 利用方法
• 3.3.5 今後の発展
3 言語処理における深層学習の基礎
3.1 準備: 記号の世界とベクトルの世界の橋渡し
• 記号変換が必要
• 自然言語処理におけるデータは離散的な「記号」
• ニューラルネットで扱えるのは連続値の「ベクトル」
• 変換方法
• One-hot ベクトル(記号からベクトルへ)
• Softmax関数(ベクトルから記号へ)
3.2 言語モデル
3.2.1 概要
• (確率的)言語モデル
• 自然言語による文が生成される確率をモデル化したものであり、文や
文書の自然言語らしさを求めるのに使われる
• BOS, EOSを追加した単語列を全てベクトル化して算出する
• 言語モデルの例
• N-gram
• 出現頻度の数え上げで求められるので計算コストが低い
• ニューラル言語モデル
• N-gramと比較して計算コストが非常に高い
• N-gramよりも性能が優れている
3.2.2 確率モデルの定義: 条件付き分布への分解
• 文の生成確率を直接モデル化するのは難しい
• そのために仮定を置く
• 単語の出現確率はそれ以前に出現した単語により決まる
• 文の生成確率はBOSから始まりEOSで終わる単語列が先頭から順に生
成される確率を掛け合わせて算出する
• 単語の出現確率は直前数N個に出現した単語により決まる ← N-gram
3.2.3 順伝搬型ニューラル言語モデル
• C=3
結
合
3つ前の単語
2つ前の単語
1つ前の単語
埋め込
み層
埋め込
み層
埋め込
み層
Linear
tanh
Linear
softmax
one-hot vector
と組み合わせて
確率を取得
3.2.4 再帰ニューラル言語モデル
RNN
3つ前の単語
埋め込
み層
Linear
tanh
Linear
softmax
one-hot vector
と組み合わせて
確率を取得RNN
2つ前の単語
埋め込
み層
Linear
tanh
Linear
softmax
RNN
1つ前の単語
埋め込
み層 Linear
tanh
Linear
softmax
3.2.5 言語モデルの評価
• 言語モデルはパープレキシティ(perplexity, PPL)で行う
• 次の単語を予測する確率分布にどれだけのばらつきがあるかを表す
• 非負の値
• 全体的に確率が0に近づけば大きな正の値になる
• 確率が1に近づけば0に近づく
• 良い言語モデルはデータと一致する単語だけ高い確率をもったばらつきの小
さい分布になるはずなので0に近づく
• 有名データセット
• Penn Treebank
• One Billion Word
• Hutter
3.2.6 言語モデルからの文生成
• 言語モデルは単語の生成確率なのでそれをもとにサンプリング
を行うと「それっぽい」文ができる
• 注意点
• 言語モデルはあくまで「文が自然言語っぽいか」をモデル化したもの
なので文生成のためのものではない
• 言語モデルはそれ以前に出現していた単語を全部知っている必要があ
るが文生成では自ら生成した単語を次の単語のサンプリングのために
用いて代用している
3.2.7 文字単位での言語モデル
• 日本語のように単語の区切りが難しい場合は文字単位で扱うの
は魅力的
• 単語の区切りを気にしなくて済む
• 未知の単語に対応できる
• でも難しい
• (単語や句などの)長い依存関係を学習する必要がある
• 系列長が長くなるので中間層の計算が大変になる
3.3 分散表現
• 分散表現
• 記号を計算機上で扱うための方法論
• ニューラルネット的には部品という位置づけ
• 自然言語処理的にはそれ単体でも研究されている
3.3.1 概要
• 離散オブジェクト
• 人や物の名前、概念のように物理的に計測できる量を伴わず、通常記号を用
いて離散的に表現するもの
• 分散表現
• 任意の離散オブジェクトの集合Vに対して、各離散オブジェクトv∈Vにそれ
ぞれD次元のベクトルを割り当て、離散オブジェクトをD次元ベクトルで表現
したもの
• 自然言語処理で単語を対象にした場合、「単語分散表現」「単語埋め込み」
という
• ベクトル空間により距離や演算が定義できるのでそれを関係性や類
似度にマッピングして用いる
3.3.2 歴史的背景
• ニューラルネット研究からの視点: 分散表現
• 人間の脳が新しい概念を覚える際に既知の事象や概念を結びつけて覚
えるため
• 個々の事象は多様な特徴で表現されると考えれていたため
• local representation(局所表現)は逆にほとんど疎のベクトル
• one-hot vectorはlocal representationに分類される
• 2000年ごろにニューラル言語モデルに単語埋め込みが導入され、そこ
から分散表現が普及した
3.3.2 歴史的背景
• 自然言語処理からの視点
• 自然言語処理の基本単位である「単語」が持つ「意味」を計算機でど
う扱うかという研究から始まる
• 分布仮説(単語の意味はその単語が出現した際の前後に出現した単語に
より決まる)を元に単語の類似度を与える
• 主成分分析(PCA)
• ディリクレ配分(LDA)
3.3.2 歴史的背景
• 両分野の融合
• ニューラル言語モデルの登場により上記二つの研究が融合
• 共に同じ条件からベクトルを取得
• ニューラル言語モデル: 前数単語を利用
• 自然言語処理: 前の単語のみを利用した分布仮説
• distributional と distributedがあるが深層学習の文脈ではdistributedを
用いる
3.3.3 獲得方法
• よい分散表現の条件
• 意味的により類似するオブジェクトはより近い位置に配置
• 逆の意味になる離散オブジェクトは原点を挟んで逆側に配置
• ニューラル言語モデルを用いた獲得方法
• 普通にニューラル言語モデルを学習する
• 埋め込み層の変換層が各単語の分散表現に一致
3.3.3 獲得方法
• 対数双線形モデルを用いる獲得方法
• 計算量的な課題に対応するためにニューラル言語モデルから派生し、
単語分散表現を獲得するのに特化した方法
• ニューラル言語モデルはデータ量が大きいほど性能があがるが実際には大規模な
ニューラル言語モデルを計算するのは困難
• 数百万語彙のニューラル言語モデルを計算するのは困難
• word2vec(及び対数双線形モデル)の登場
• Continuous Bag of Words
• Skip-gram
word2vecの比較
CBOW Skip-gram
は 良い 天気 は 良い 天気です ね です ね
天気 天気
3.3.3 獲得方法
• 負例サンプリング
• 詳細は4.3.4章にて
• 識別モデルを学習していることに相当
• 実データの確率分布からサンプリングされたデータ
• 別の確率分布からサンプリングされたデータ
• (3.22)と(3.25)を比較するとモデルの形式が変わっていることがわかる
3.3.4 利用例
• (5章で紹介する)機械翻訳、質問応答、対話タスクをはじめとす
る応用タスクで分散表現は使われている
• 単語や言語的特徴が意味的に似ているか似ていないかの指標
• 意味関係の演算として利用
• 構文解析や意味解析など言語解析ツールの素性情報
• 深層学習で用いる埋め込み行列の初期値
3.3.5 今後の発展
• 今現在だったらword2vecを使うのがよい
• 単語以外にも分散表現を求める方法があるが、決定的ではない
• 句
• 文
• 文章
• word2vecは汎用的に使える表現を得るがタスクに応じた「観
点」が入れられる分散表現も欲しい

深層学習による自然言語処理勉強会3章前半