0.概要
本記事は日本ディープラーニング協会認定の講座プログラムである「ラビット・チャレンジ」が提供している科目の1つである深層学習のレポートである。
記事タイトルに記載のとおり、Day3 Section6 Word2vecについて以下にまとめる。
1.単語分散表現
one^hotベクトルと違い、単語を低次元の実数値ベクトルで表すこと。
one-hotベクトルでは単語間の関連性を得られないため分散表現にする必要がある(one-hotベクトル同士の内積は0になるため)。
単語分散表現ベクトルとすることで単語の意味に基づいたような計算もできるようになる。
King - Man + Woman = Queen
2.分布仮説
「単語の意味はその近傍の単語によって決定される」という考え方。
例えば以下のような文があったとき、Tokyoを知らなくてもliveから地名だろうと分かる。
つまり、liveがTokyoという単語の意味を地名であると決めるのに役立っていると言える。
I live in Tokyo.
3.Word2vec
分布仮説から単語を固定長のベクトル化(単語分散表現ベクトル)するソフトウェア(モデルではない)。
学習データからボキャブラリーを作成し、各単語をone-hotベクトルにして入力して単語分散表現を得る。
ボキャブラリー数×単語ベクトルの次元数だけの重みの計算量となる。
以下に示すモデルいずれも教師あり学習である。
参考:
https://ledge.ai/word2vec/
https://qiita.com/g-k/items/69afa87c73654af49d36
3.1.Skip-gram
入力層、隠れ層、出力層の3つの層で構成されるニューラルネットワークであり、入力層と隠れ層の間の重みが単語分散表現となる。
学習させるタスクは「ある入力の単語の周辺に出現しやすい単語を予測する」こと。
周辺単語いくつまで周辺語として考慮するかをウィンドウサイズと呼ぶ。
CBOWより性能が良いことが多いが計算は遅い。
計算を高速にするための手法としてポジティブサンプル(ありえる単語の組み合わせ)、ネガティブサンプル(ありえない単語の組み合わせ)がある。
ポジティブサンプルは確率が高くなるよう学習させ、ネガティブサンプルは低くなるよう学習させる。
3.2.CBOW
Skip-gramとは逆で「周辺語からある単語を予測する」
Skip-gramより計算が高速。
Skip-gramは「機械学習・深層学習による自然言語処理」である程度目を通しているので概要は理解しているつもりだがCBOWは取り上げられていなかったのであまり…
性能面で劣るため積極的に使われない?から?
4.確認テスト
確認テストはSection 7 Attention Mechanismの方で実施。
X.ラビットチャレンジとは
ラビットチャレンジとは、日本ディープラーニング協会認定の講座プログラムの1つ。
E資格を受験するためにはこのラビットチャレンジ等、いずれかの講座プログラムを修了しなければならない。
ラビットチャレンジの特徴は「現場で潰しが効くディープラーニング講座」の通学講座録画ビデオを編集した教材を使用した自習スタイルであるという点。
サポートは他の講座より少なく、受け身ではなく自主的に学んでいく姿勢でなければ進められないが、その分、他の講座に比べると安価であり、手が出しやすい。
ある程度知識がある人、自力で頑張るぞというガッツのある人向けではないかと感じる。