【論文紹介】distributed representations of sentences and documents
TRANSCRIPT
Distributed Representations of Sentences and Documents
Proceedings of The 31st International Conference on Machine Learning (ICML 2014),
pp. 1188 – 1196, 2014
スライド作成:吉田 朋史工学院大学大学院 工学研究科 情報学専攻
インタラクティブメディア研究室
Quoc Le, Tomas MikolovGoogle Inc.
1/46
論文紹介
概要文書をベクトルで表現 → Bag-of-Words (BOW) が一般的
⇒ 2 つの大きな欠点1. 単語の語順情報が失われる2. 単語の意味を表現する事が苦手
2/46
提案手法: Paragraph Vector ( doc2vec の中身)◦ 可変長の文書 → 文書の固定長特徴ベクトル◦ 文書中に出現する単語を予測するよう学習 → 特徴ベクトルを獲得◦ 学習にはニューラルネットワークを使用
評価実験: 文書の極性(肯定 or 否定)判定 & 文書検索◦ 短文・長文それぞれで既存手法を大幅に上回る◦ 世界最先端の精度(筆者談)
本資料の構成
3/46
word2vec の説明: 40%◦ doc2vec の基本アイデアは word2vec の発展系(筆者の以前の研
究)◦ 文書に応用させただけで違いはちょっとだけだよ!(筆者談)
doc2vec の説明: 20%◦ word2vec と対比しながら解説◦ 圧倒的な実験結果をご紹介するぜ!!
前提となる基本知識の説明: 40%◦ Bag-of-Words (ベクトル空間モデル)◦ ニューラルネットワーク
※ 注意◦ 機械学習の細かいアルゴリズムはすっ飛ばします◦ 引用元の記載が無い図は紹介論文本文中の図を使用しています
背景
4/46
文書のクラスタリング → 自然言語処理の重要なテーマ◦ ウェブ検索・スパムフィルタリングなどの中核技術◦ 文書をベクトルとして扱うアルゴリズムが多数
◦ K-means †◦ ロジスティック回帰 ††
† HTTP://TECH.NITOYON.COM/JA/BLOG/2009/04/09/KMEANS-VISUALISE/
†† HTTP://QIITA.COM/HIK0107/ITEMS/9B6E1E989F4EAEFDC31D
Bag-of-Words (BoW)
5/46
文書をベクトルで表す最もポピュラーな方法◦ 行:文書中に各単語が何回出現したか(単語頻度)◦ 列:各文書を表すベクトル
𝒅𝟏=(2211000)
仕事世話
日課散歩
私犬
猫
𝒅𝟐=(2000211)
仕事世話
日課散歩
私犬
猫𝑫=(
2 22 01 01 00 20 10 1
)仕事世話
日課散歩
私犬
猫
𝒅𝟏 𝒅𝟐
文書 1 () = 「私は犬を飼っていて,犬の散歩は私の日課だ」文書 2 () = 「私は猫を飼っていて,猫の世話は私の仕事だ」
例)
Bag-of-Words の欠点
6/46
単語の語順情報が失われる◦ 全く同じ単語が同じ頻度で含まれる → 同じ文書と判定◦ bag-of-n-grams は語順も考慮 → しかし疎&高次元になりやすい
単語の意味関係を表現出来ない◦ 文書 1 () = 「私は犬が好き」◦ 文書 2 () = 「僕はポメラニアンが好き」
好き
ポメラニアン
が犬
私は
僕
𝑫=(1 01 11 01 11 10 10 1
)𝒅𝟏 𝒅𝟐
n-gram
7/46
単語を最小単位 → 1 単語ずつずらして文章を分割 例)「 This is a good pen 」◦ : This is / is a / a good / good pen◦ : This is a / is a good / a good pen
日本語文章: 文字を最小単位として文を分割例)「今日は大雨です。」◦ :今日 / 日は / は大 / 大雨 /雨で / です / す。 /。◦ :今日は / 日は大 / は大雨 / 大雨で /雨です / です。 / す。 / 。◦ 形態素解析:今日 / は / 大雨 / です /。◦ → bigram と呼んだりする
単語のベクトル表現
8/46
ニューラルネットワークで単語ベクトルを得る方法が確立◦ 筆者が考えた word2vec など◦ 文章は単語の組み合わせ → 単語ベクトルで文書も表現できない
か?
手法 1 :文書内の全単語ベクトルの重み付き平均→ 単純に足し合わせると BOW と同様に語順を反映できない
手法 2 :構文解析で単語間の関係や順序を考慮して重み付き平均◦ 構文解析:文の主語動詞,修飾関係などを分析◦ 単文単位にしか適応できない→ フレーズ(文より短い)やパラグラフ(複数文)に対応できない
単語ベクトルを組み合わせるだけでは文書を上手く表現できない
提案手法
9/46
word2vec と同様のアイデアで文書を表現するベクトルを獲得◦ 文書を表現するベクトル → パラグラフベクトル◦ パラグラフ:複数文の集まり(≒ 段落)◦ パラグラフ中に出現する単語を予測するよう学習
既存手法と比べた利点◦ どんな長さの入力文にも対応できる◦ 入力の長さによって処理が変わらない&構文解析も必要ない
なぜ「パラグラフ」ベクトル?◦ 文書( document )が短くても長くても OK !と強調したかった(筆者
談)◦ genism の実装名は doc2vec ですが・・・( doc : document の略)
閑話休題
10/46
まず word2vec について理解する必要があります
word2vec ではニューラルネットワークを学習に使います
というわけでニューラルネットワークのお勉強です
ニューロン(神経細胞)
11/46
人間の脳を構成する細胞◦ 入力信号を細胞毎に重み付けて合計◦ 合計値が閾値を超えたときだけ次の細胞へ信号送信
出力信号
閾値を超えると信号送信
入力信号の重み付き総和
重み付け
A
B
閾値
細胞
細胞
入力信号
入力信号
ニューラルネットワーク( NN )
12/46
ニューロンの働きを数学でモデル化◦ 入力をユニット毎に重み付けて合計◦ 合計値が閾値を超えたときだけ次のユニットへ出力◦ 入力 / 出力はベクトルで表現する事が多い
入力
𝒙𝟏=(31)
𝒙𝟐=(12)
𝒘𝟏=2
𝒘𝟐=−3
重み2
( 3−4 )
重み付き総和
𝒇 ( 3−4)◦ 値を 0~1 に変換
◦ 0 :信号無し◦ 1 :信号あり
活性化関数
(10)出力
−3 (12)
脳の情報処理の仕組み
13/46
物体や言葉を認識
︙
処理を行う細胞(色・形の認識など)
感覚器官(目・耳など)
信号
細胞
︙細胞
細胞
︙細胞
細胞
︙細胞
階層型ニューラルネットワーク
14/46
出力層
︙︙
中間層入力層
︙ ︙ ︙
中間層が大量 → Deep Learning
NN を用いたクラスタリング
15/46
例)文書のカテゴリ分類◦ 入力:単語「工学院」が含まれる文書 ◦ 出力:文書が各カテゴリに属する確率
◦ が「工学院大学」カテゴリに属する確率◦ が「日本工学院」カテゴリに属する確率
𝒑=(𝑝1𝑝2⋮ )
出力層中間層入力層
𝒅𝟏=(𝑥1𝑥2⋮𝑥𝑛
) ︙活性化関数
確率分布に変換
都合の良い関数が必要
Softmax 関数
16/46
𝑓 (𝑥1𝑥2⋮𝑥𝑛
)=(𝑒𝑥1
𝑒 𝑥1+𝑒 𝑥2+⋯+𝑒𝑥𝑛
𝑒𝑥2
𝑒 𝑥1+𝑒 𝑥2+⋯+𝑒𝑥𝑛
⋮𝑒𝑥𝑛
𝑒 𝑥1+𝑒 𝑥2+⋯+𝑒𝑥𝑛
) 𝑓 (1021 )=(0.9995⋯0.0003⋯0.0001⋯)例)
入力ベクトル → 確率分布を表す出力ベクトルに変換◦ 各次元の値= 0~1◦ 各次元の値の総和= 1◦ 元の値の大小関係を保存
バックプロパゲーション
17/46
正解値との誤差を少なくするように重み の値を更新◦ 訓練データから正解値 を算出 → 出力値 との誤差を算出
◦ が「工学院大学」カテゴリに属する実際の確率◦ が「日本工学院」カテゴリに属する実際の確率
𝒑=(𝑝1𝑝2⋮ )出力層中間層入力層
𝒅𝟏=(𝑥1𝑥2⋮𝑥𝑛
) ︙Softmax関数
確率分布に変換
𝒑 ′=(𝑝1′
𝑝2′
⋮ )正解値
誤差
更新更新
誤差を減らすよう重みを更新
閑話休題2
18/46
ニューラルネットワークでの学習の流れが分かりました
次は word2vec の仕組みを理解しましょう
Harris の分布仮説
19/46
「飼っている と散歩」→ に入る単語は?◯◯ ◯◯◦ 「犬」「イヌ」「ポメラニアン」などなど◦ 同じ文脈で使われる単語 → 似た意味を持つ傾向がある◦ 同じ文脈 ≒ 共起する周辺単語が同じ
基本方針:ある単語 周辺単語を予測する ⇄ NN を構築 ◦ その過程で単語を表現するベクトルを上手いこと学習したい◦ 大規模データで学習できるようにモデルはなるべく単純にしたい
HTTP://WWW.TANDFONLINE.COM/DOI/PDF/10.1080/00437956.1954.11659520
つまりどういうことだってばよ?
20/46
◯= 「犬」な確率
飼って
いる
と
散歩
◯
周辺単語
こういう確率をニューラルネットワークに予測させる
コンテキスト(文脈)◦ 別名 Window
前 2 単語
後 2 単語
提案モデル(今回は CBOW を紹介)
21/46
周辺単語 → 該当単語を予測
Continuous BOW Skip-gram
該当単語 → 周辺単語を予測
HTTPS://ARXIV.ORG/ABS/1301.3781
One-hot ベクトル
22/46
入力単語を表すベクトル◦ 次元数:総語彙数 ◦ 該当する単語の次元だけ値が 1 ,その他の次元の値は全て 0◦ word2vec → 総次元数は数百万
𝒙犬=(00100) と
犬
飼っている
散歩
𝒙 𝒊=(0⋮010⋮0) 次元
例)文書「飼っている犬と散歩」における単語「犬」の単語ベクトル
One-hot ベクトル
入力層への入力
23/46
𝒙𝟏=(10000) と
犬
飼っている
散歩
𝒙𝟒=(00010)
と犬
飼っている
散歩
𝒙𝟐=(01000)
と犬
飼っている
散歩
𝒙𝟓=(00001) と
犬
飼っている
散歩
(𝒙𝟏 𝒙𝟐 𝒙𝟑 𝒙𝟒 )
word2vec が出したいもの
24/46
One-hot ベクトル
𝒘 𝒊=(0.1234…0.5678…⋮ ) 数百次元𝒙 𝒊=(
0⋮010⋮0) 数百万次元
単語ベクトル
ちょっとタンマ
25/46
Q. 単語ベクトルってどこで獲得するの?
⇒ A. 値が更新されるところです!!
誤差誤差を減らすよう重みを更新
𝒑 ′=(𝑝1′
𝑝2′
⋮ )正解値
更新更新𝒑=(𝑝1𝑝2⋮ )
出力層中間層入力層
︙ Softmax関数𝒙 𝒊=(
0⋮010⋮0)
入力層→中間層の重み
26/46
各単語の単語ベクトルを横に並べた行列◦ :単語 を表現する 次元列ベクトル(: 200~400 )◦ 各次元は適当な初期値を与えておく
𝑾=(𝒘𝟏 𝒘𝟐 ⋯ 𝒘 𝒊 ⋯ 𝒘 𝑺 )
¿ ( 𝑤1 ,1 𝑤2 , 1 ⋯ 𝑤 𝑖 ,1 ⋯ 𝑤𝑆, 1𝑤1 , 2 𝑤2 , 2 ⋯ 𝑤 𝑖 , 2 ⋯ 𝑤𝑆 ,2
¿𝑤1 ,𝑁 𝑤2 ,𝑁 ⋯ 𝑤𝑖 ,𝑁 ⋯ 𝑤𝑠 ,𝑁)⋮ ⋮ ⋮ ⋮
⇒ こいつは一体何者?
種明かし
27/46
入力( One-hot ベクトル) を掛け算してみると・・・?
𝑾 𝒙 𝒊=( 𝑤1,1 𝑤2,1 ⋯ 𝑤𝑖 ,1 ⋯ 𝑤𝑆 ,1𝑤1,2 𝑤2,2 ⋯ 𝑤𝑖 , 2 ⋯ 𝑤𝑆 ,2
¿𝑤1 ,𝑁 𝑤2 ,𝑁 ⋯ 𝑤𝑖 ,𝑁 ⋯ 𝑤𝑆 ,𝑁)(0⋮010⋮0)=(
𝑤 𝑖 ,1𝑤 𝑖 ,2
⋮𝑤𝑖 ,𝑖⋮
𝑤𝑖 ,𝑁
)¿𝒘 𝒊
⇒ 単語 に対応する単語ベクトル が取り出せた
入力層の出力(中間層の入力)
28/46
𝑾 (𝒙𝟏 𝒙𝟐 𝒙𝟑 𝒙𝟒 )=(𝒘𝟏 𝒘𝟐 𝒘 𝟑 𝒘𝟒 )
文脈ベクトル
入力単語 と重み の掛け算結果
結果を結合 →文脈ベクトル を出力(活性化関数は使わない)◦ 前後の単語を考慮した文脈を表すベクトル◦ 統合の方法には議論あり(総和 or 平均 or 連結(?))◦ 現在では連結が採用されることが多いらしい(今回は総和で)
中間層→出力層の重み
29/46
各単語ベクトルの転置ベクトルを縦に並べた行列◦ 転置ベクトル:ベクトルの行と列を入れ替えたもの◦ 入力層→中間層の重み の転置行列
𝑾 𝒕=(𝒘𝟏
𝒕
𝒘𝟐𝒕
⋮𝒘 𝒊
𝒕
⋮𝒘 𝑺
𝒕)=(
𝑤1,1 𝑤1 , 2 ⋯ 𝑤1 , 𝑁𝑤2 , 1 𝑤2 , 2 ⋯ 𝑤2 ,𝑁¿𝑤𝑖 ,1 𝑤 𝑖 ,2 ⋯ 𝑤𝑖 ,𝑁
¿𝑤𝑆 ,1 𝑤𝑆 ,2 ⋯ 𝑤𝑆,𝑁)⋮
⋮
⋮
⋮
⋮
⋮
中間層の出力(まで後一歩)
30/46
文脈ベクトル と重み の掛け算
𝑾 𝒕𝒄=(𝑤1,1 𝑤1,2 ⋯ 𝑤1 ,𝑁𝑤2,1 𝑤2,2 ⋯ 𝑤2, 𝑁¿𝑤𝑖 ,1 𝑤𝑖 ,2 ⋯ 𝑤𝑖 ,𝑁
¿𝑤𝑆 ,1 𝑤𝑆 ,2 ⋯ 𝑤𝑆 ,𝑁)(𝑣1+2+3+4 , 1𝑣1+2+3+4 , 2
⋮𝑣1+2+3+4 ,𝑁
)=(𝒘𝟏
𝒕 ∙𝒄𝒘𝟐
𝒕 ∙𝒄⋮
𝒘 𝒊𝒕 ∙𝒄⋮
𝒘𝑺𝒕 ∙𝒄
)各次元の値 → 単語ベクトル と文脈ベクトル の内積◦ 内積 → コサイン類似度の正規化する前の値◦ 文脈と単語の共起度の強さを表すスコアのような役割
⋮
⋮
⋮
⋮
⋮
⋮
ようやく出番だ! Softmax 関数!
31/46
𝑓 (𝒘𝟏
𝒕 ∙𝒄𝒘𝟐
𝒕 ∙𝒄⋮
𝒘 𝒊𝒕 ∙𝒄⋮
𝒘𝑺𝒕 ∙𝒄
)=(𝑒𝑤1
𝑡 ∙𝑐
𝑒𝑤1𝑡 ∙𝑐+𝑒𝑤2
𝑡 ∙𝑐+⋯+𝑒𝑤 𝑖𝑡∙𝑐+⋯𝑒𝑤𝑆
𝑡 ∙𝑐
𝑒𝑤2𝑡 ∙𝑐
𝑒𝑤1𝑡 ∙𝑐+𝑒𝑤2
𝑡 ∙𝑐+⋯+𝑒𝑤 𝑖𝑡∙𝑐+⋯𝑒𝑤𝑆
𝑡 ∙𝑐
⋮𝑒𝑤𝑖
𝑡 ∙𝑐
𝑒𝑤1𝑡 ∙𝑐+𝑒𝑤2
𝑡 ∙𝑐+⋯+𝑒𝑤 𝑖𝑡∙𝑐+⋯𝑒𝑤𝑆
𝑡 ∙𝑐
⋮𝑒𝑤𝑆
𝑡 ∙𝑐
𝑒𝑤1𝑡 ∙𝑐+𝑒𝑤2
𝑡 ∙𝑐+⋯+𝑒𝑤 𝑖𝑡∙𝑐+⋯𝑒𝑤𝑆
𝑡 ∙𝑐
)=(𝑝1𝑝2⋮𝑝𝑖⋮𝑝𝑆
)
→ 確率値 に変換◦ =ある文脈(周辺単語群) において単語 が出現する確率 ◦ 内積の値の大小関係を考慮して確率に変換 ⇒ 出力層への入力
つまりこういうことだってばよ!!
32/46
の値を更新 → 単語ベクトル を獲得◦ → 学習データから算出した実際の確率◦ (「犬」の出現確率)が高くなるように重み を更新◦ は の転置行列 → 更新する必要無し
誤差を減らすよう重みを更新
誤差
𝒑 ′=(𝑝1′
𝑝2′
𝑝3′
𝑝4′
𝑝5′
⋮)
正解値
更新𝒑=(
𝑝1𝑝2𝑝3𝑝4𝑝5⋮
)出力層中間層入力層
Softmax関数
「飼って」 =
「いる」 =
「と」 =
「散歩」 =
(𝑤1+2+3+ 4,1
𝑤1+2+3+ 4,2
⋮𝑤1+2+3+ 4 ,𝑁
)
成し遂げた
33/46
以上, word2vec についての論文紹介でした
ご清聴ありがとうございました!!!
(もうちょっとだけ続くんじゃ)
doc2vec が学習するもの
34/46
文書ベクトル を全文書数 個文並べた重み行列 ◦ 次元数 は単語ベクトルと共通(文書 ≒ 新しい単語とみなす)◦ 次元 One-hot ベクトルを掛けると文書ベクトル が取り出せる
𝑫= (𝒅𝟏 𝒅𝟐 ⋯ 𝒅𝒊 ⋯ 𝒅𝑼 )
¿ ( 𝑑1 , 1 𝑑2 ,1 ⋯ 𝑑𝑖 ,1 ⋯ 𝑑𝑈 ,1𝑑1 ,2 𝑑2 ,2 ⋯ 𝑑𝑖 ,2 ⋯ 𝑑𝑈 ,2
¿𝑑1 ,𝑁 𝑑2 ,𝑁 ⋯ 𝑑𝑖 ,𝑁 ⋯ 𝑑𝑈 ,𝑁)⋮ ⋮ ⋮ ⋮
PV-DM (分散記憶モデル)
35/46
周辺単語 + 文書ベクトルを入力 →中間層で結合 ◦ 周辺単語 + 文書ベクトル → 文書全体の文脈が加味される◦ 文書ベクトル → 文脈を保持するメモリのように振る舞う◦ word2vec の CBOW に対応( gensim のデフォルトはこっち)
中間層の入力◦ 単語ベクトル ◦ 文書ベクトル
PV-DBOW (分散 BOW モデル)
36/46
語順を無視して(!?)該当文書内に含まれそうな単語を予測◦ 入力:文書ベクトルのみ◦ 単語ベクトル行列 を学習しなくて済むから早い!◦ word2vec の Skip-gram と対応◦ gensim の実装では Skip-gram で を学習するオプションあり◦ あんだけ語順語順言ってたのにこの期に及んで無視・・・!?
中間層の入力:文書ベクトル
この後は?
37/46
𝑾 𝒕=(𝒘𝟏
𝒕
𝒘𝟐𝒕
⋮𝒘 𝒊
𝒕
⋮𝒘 𝑺
𝒕)=(
𝑤1,1 𝑤1 , 2 ⋯ 𝑤1 , 𝑁𝑤2 , 1 𝑤2 , 2 ⋯ 𝑤2 ,𝑁¿𝑤𝑖 ,1 𝑤 𝑖 ,2 ⋯ 𝑤𝑖 ,𝑁
¿𝑤𝑆 ,1 𝑤𝑆 ,2 ⋯ 𝑤𝑆,𝑁)
各単語ベクトルの転置行列 と掛ける◦ word2vec の と全く同じもの
◦ PV-DM :先に を学習してから を学習◦ PV-DBOW : は初期値のまま更新せず だけ学習
◦ あとは Softmax 通して の重み更新して~の繰り返し
評価実験 1 :感情分析(単文)
38/46
使用データ: Stanford Sentiment Treebank Dataset◦ Rotten Tomatoes (映画レビューサイト)のレビュー◦ データ数: 11,855 文( 0 : Very Negative ~ 1 : Very Positive のラ
ベル付き)◦ 訓練 / テスト / 検証用データ: 8,544 / 2,210 / 1,110 文
実験内容◦ ラベルの 5値分類: { Very Negative, Negative, Neutral, Positive, Very
Positive } ◦ ラベルの 2値分類: { Negative, Positive}
◦ PV-DM ・ PV-DBOW 共に文書ベクトルの次元数 = 400◦ Window 幅 = 8 (交差検証して決めたよ†)
◦ 学習した文書ベクトルをロジスティック回帰に入力 → ラベル値を予測
HTTP://GIHYO.JP/DEV/SERIAL/01/MACHINE-LEARNING/0021
実験結果 1
39/46
提案手法が最強◦ BOW を使う手法(ナイーブベイズ・ SVM )は精度が悪い◦ 単語ベクトルの平均では精度は向上しない◦ NN を使うとちょっと良くなる(その中でも提案手法最強)
評価実験 2 :感情分析(長文)
40/46
使用データ: IMDB Dataset◦ IMDB (映画レビューサイト)のレビュー(全て複文)◦ データ数: 100,000 文
◦ 訓練データ: 75,000 文(ラベル: Negative or Positive )◦ ラベル有り / 無し: 25,000 / 50,000 文
◦ ラベル有りテストデータ: 25,000 文
実験内容◦ ラベルの 2値分類: { Negative, Positive }
◦ PV-DM ・ PV-DBOW 共に文書ベクトルの次元数 = 400◦ Window 幅 = 10 (交差検証して決めたよ)
◦ 学習した文書ベクトルをロジスティック回帰に入力 → ラベル値を予測
実験結果 2
41/46
提案手法が最強◦ BOW を使う手法が強い◦ 長い文書 → 語順の影響が弱まってくる?◦ そんな中でも提案手法最強
評価実験 3 :情報検索
42/46
使用データ:ウェブページ◦ 100万クエリ × 検索結果上位 10件 = 10,000,000ページのス
ニペット◦ これ絶対 Google からもらったろ
実験内容◦ 3 つの文書を用意
◦ 2 つ → 同じクエリによりヒットしたページ(類似度高いはず)◦ 残り 1 つ → 違うクエリによりヒットしたページ(類似度低いはず)◦ 文書ベクトル間のコサイン類似度を算出 → 正しく類似度判定できるか
スニペット
実験結果 3
43/46
提案手法最強◦ Weighted :各次元の値を TF-IDF で重み付け◦ 色々やったけどやっぱ提案手法最強だぜ
その他の考察結果
44/46
PV-DM vs PV-DBOW → 基本的には PV-DM の方が強い◦ PV-DM 単独で使ってもだいたい良い結果◦ PV-DBOW と合わせて使うほうがオススメ
PV-DM での入力値の統合 → 総和より連結の方が良い◦ 総和だと語順失われるから◦ 結局 concatenation (連結)ってどういう操作なんですかね・・・Window 幅は交差検証して決めようぜ!
◦ 多くのアプリケーションで上手くいく幅 → 5~ 12 くらい
学習は並列化してやろうぜ!◦ 16コアで 25,000 文書 × 平均 230 単語 → 平均 30分で学習終了◦ 初期の実装と比較して爆速になってる(重み更新アルゴリズムの進化)
まとめ
45/46
提案手法:パラグラフベクトル( doc2vec の中身)◦ 可変長の文書 → 文書の固定長特徴ベクトル◦ 文書中に出現する単語を予測するよう学習 → 特徴ベクトルを獲得◦ 学習にはニューラルネットワークを使用
評価実験: 文書の極性(肯定 or 否定)判定 & 文書検索◦ 短文・長文それぞれで既存手法を大幅に上回る◦ BOW の欠点(語順・意味)を克服◦ 他の NN を用いた最先端の手法を上回る精度
期待 → テキストデータ以外の時系列データへの適用◦ 映像・音声データなど(データの前後関係に意味があるもの)
参考文献
46/46
ニューラルネットワーク関連◦ http://www-ailab.elcom.nitech.ac.jp/lecture/neuro/menu.html◦ http://mathtrain.jp/softmax
word2vec & doc2vec 関連◦ http://tkengo.github.io/blog/2016/05/09/understand-how-to-learn-
word2vec/◦ https://deepage.net/bigdata/machine_learning/2016/09/02/
word2vec_power_of_word_vector.html◦ http://stackoverflow.com/questions/27470670/how-to-use-gensim-
doc2vec-with-pre-trained-word-vectors◦ http://datascience.stackexchange.com/questions/10724/how-does-
pv-dbow-doc2vec-work◦ https://groups.google.com/forum/#!topic/gensim/uC6I47JtIps