単語の数学的表現メモ
はじめに
単語をベクトルや確率分布などの数学的表現で扱いたい場合があったりする。
しかし、「どのようなベクトル・確率分布にすべきか?」などはタスクに依存したりして、自明じゃない。
たくさんあって、派生や新しいものもどんどんでていると思うので、どんなものがあるか調べたかぎりメモ。
One hot表現
文字nグラムによる表現
文脈ベクトル
- 対象単語の前後/周辺にでてくる単語を利用
- 例: スカイツリー = (1つ左に「東京」がくる頻度, 1つ右に「クッキー」がくる頻度, ...)
- 「よく似た共起語分布を持つ単語は、よく似た意味を持つ」という考え
- 素性(各次元)は、だいたい人手でデザインされる
- 素性
- 文脈窓(context window,考慮している範囲)をどのようなものにするか
- 文脈幅(context window size,考慮している範囲の大きさ)をどの程度にするか
- 前後の区別
- 対象単語との相対位置の区別
- 複数回でてくる単語を区別するか(type,token)
- 先頭末尾にダミー文字を考慮するか否か
- 素性値
- 出現回数
- 出現するか否か
- TFIDF
- 構文情報などを利用
外部の情報を素性に使う
Distributional表現
確率分布による表現
- 単語wの周辺に出現する単語集合Vの確率P(V|w)などによって単語wを表現
- NLP2014ではガウス分布による表現も提案されてた
Brownクラスタリング
- 単語を階層的クラスタリング(ハードクラスタリング)すると、各階層で単語の集合(クラス)ができる
- 各単語は、そのクラス情報を使って表現
- Brown Clustring Model
- p(w_1, w_2, ..., w_T) = Πe(w_i|C(w_i))*q(C(w_i)|C(w_{i-1}))
- C(w) : 単語wのクラス番号を返す関数
- e(w|c) : クラス番号がcの時の単語wの出現しやすさ
- q(c'|c) : クラス番号cからクラス番号c'への連続のしやすさ
- Cがどの程度イケてるかをQuality(C)で測る
- Quality(C) = Σ_c Σ_c' p(c,c') log p(c,c')/(p(c)*p(c')) + Const.
- p(c,c') : C(w)において、cにつづいてc'が現れる回数の全体での割合
- p(c) : C(w)において、cが出現する回数の全体での割合
- アルゴリズム
- p(w_1, w_2, ..., w_T) = Πe(w_i|C(w_i))*q(C(w_i)|C(w_{i-1}))
分散表現
- 単語を表現するベクトルの素性や素性値を機械学習によって学習
- おおよその場合、低次元で密な実数ベクトルを得る事を目指す
- 潜在的な特徴(意味的な、統語的な)を学習できる可能性がある(似た単語が似たベクトルを持つ)
- Word Embeddingsとも呼ばれる
NeuralNetwork, DeepLearning系の言語モデル
Log-linear, Skip gramモデル
- Mikolov et al. 2013
- 単語wの周辺単語をうまく予測できるように単語のベクトル表現を学習させる
- 目的関数 1/T Σ^{単語}Σ^{文脈窓} log p(w_{t+j} | w_t) を最大化
- p(w_O|w_I) = exp(v_c * v_w) / Σexp(v_c' * v_w)
- 「Exploiting Similarities among Languages for Machine Translation」の中を見てみると、SGDで学習(勾配はRumelhart et al.(1986)のバックプロパゲーションルールを参照)の模様
- さらに、単純に実装すると重いので、Hieralchical Softmax、Negative Sampling、高頻度語のサブサンプリングなどで効率化を提案
参考
- 奥村 and 高村, 言語処理のための機械学習入門, コロナ社
- 奥村ら, 機械翻訳, コロナ社
- Turian et al., Word representations: a simple and general method for semi-supervised learning
- 渡邉, 自然言語処理分野におけるディープラーニングの現状
- kiyukuta, これもある意味Deep Learning,Recurrent Neural Network Language Modelの話 [MLAC2013_9日目]
- Y. Song, A survey on vector representation for words and its applications
- 海野, NIPS2013読み会 Distributed Representations of Words and Phrases and their Compositionality
- Y. Goldberg and O. Levy, word2vec Explained: Deriving Mikolov et al.'s Negative-Sampling Word-Embedding Method
- 海野, PFIセミナー Statistical Semantic入門〜分布仮説からword2vecまで〜
- T. Mikolov et al., Efficient Estimation of Word Representations in Vector Space
- Y. Bengio et al., Representation Learning: A Review and New Perspectives
- 大知, Representation Learning: A Review and New Perspectives
- E. Gabrilovich and S. Markovitch, Computing Semantic Relatedness using Wikipedia-based Explicit Semantic Analysis
- A. L. Maas et al., Learning Word Vectors for Sentiment Analysis
- 菊池, 自然言語処理のためのDeep Learning, at Gunosy