【poke2vec】ポケモンの役割ベクトルの 学習とその分析・可視化 / pyconjp-poke2vec
by
odanado
Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
PyCon JP 2018 LT 【poke2vec】ポケモンの役割ベクトルの 学習とその分析・可視化 1 @odan3240
Slide 2
Slide 2 text
自己紹介 ● Twitter: @odan3240 ● 新卒エンジニア ● 五反田のIT企業に所属 ● 大学では自然言語処理の研究 ● 今はフロントエンドエンジニア ● PyCon JP初参加!! ● 登壇も初!! ● 緊張してます 2
Slide 3
Slide 3 text
目次 ● 分布仮説 ● word2vec ● ポケモンにおける役割 ● ポケモンへの応用 ● 実験結果の可視化 ● まとめ 3
Slide 4
Slide 4 text
分布仮説 4
Slide 5
Slide 5 text
分布仮説 「彼女はxxxを食べる」 「包丁を使ってxxxを切った」 「xxxといちごをお見舞いに持っていく」 「xxxジャムを作る」 「xxxの絵を赤で描く」 5
Slide 6
Slide 6 text
分布仮説 「彼女はxxxを食べる」 「包丁を使ってxxxを切った」 「xxxといちごをお見舞いに持っていく」 「xxxジャムを作る」 「xxxの絵を赤で描く」 XXXは食べ物? 6
Slide 7
Slide 7 text
分布仮説 「彼女はxxxを食べる」 「包丁を使ってxxxを切った」 「xxxといちごをお見舞いに持っていく」 「xxxジャムを作る」 「xxxの絵を赤で描く」 XXXはそこまで固くない 7
Slide 8
Slide 8 text
分布仮説 「彼女はxxxを食べる」 「包丁を使ってxxxを切った」 「xxxといちごをお見舞いに持っていく」 「xxxジャムを作る」 「xxxの絵を赤で描く」 XXXはいちごの仲間? 8
Slide 9
Slide 9 text
分布仮説 「彼女はxxxを食べる」 「包丁を使ってxxxを切った」 「xxxといちごをお見舞いに持っていく」 「xxxジャムを作る」 「xxxの絵を赤で描く」 ジャムにできる :thiking_face: 9
Slide 10
Slide 10 text
分布仮説 「彼女はxxxを食べる」 「包丁を使ってxxxを切った」 「xxxといちごをお見舞いに持っていく」 「xxxジャムを作る」 「xxxの絵を赤で描く」 赤色として描かれる 10
Slide 11
Slide 11 text
分布仮説 「彼女はりんごを食べる」 「包丁を使ってりんごを切った」 「りんごといちごをお見舞いに持っていく」 「りんごジャムを作る」 「りんごの絵を赤で描く」 りんご! 11
Slide 12
Slide 12 text
分布仮説 「彼女はりんごを食べる」 「包丁を使ってりんごを切った」 「りんごといちごをお見舞いに持っていく」 「りんごジャムを作る」 「りんごの絵を赤で描く」 周辺の単語からその単語の意味が決まる仮説 12
Slide 13
Slide 13 text
word2vec 13
Slide 14
Slide 14 text
word2vec ● word2vec => 単語をベクトル化する手法 ● 周辺の単語を元に単語のベクトルを計算 ● 単語ベクトルを使うことで 意味に基づく単語の計算が可能になる 14 王 女 男 女王
Slide 15
Slide 15 text
word2vec 単語ベクトルを2次元に プロットすると意味が近い単語が近くに集まる 15
Slide 16
Slide 16 text
ポケモンにおける役割 16
Slide 17
Slide 17 text
ポケモンにおける役割 ● ポケモンのeスポーツ化 ● 賞金がかかった世界大会が開催されている ● ポケモン対戦にガチで取り組む人が一定数いる 17 出典 pokemon.co.jp
Slide 18
Slide 18 text
ポケモンにおける役割 ポケモンは6匹のパーティを組んで オンライン上で対戦する 18 出典 ポケモングローバルリンク
Slide 19
Slide 19 text
ポケモンにおける役割 ● ポケモンの役割 ○ e.g. 同じほのおタイプなので似た役割を持つ 19 出典 ポケモングローバルリンク
Slide 20
Slide 20 text
ポケモンにおける役割 ● ポケモンの役割 ○ e.g. ほのおタイプはくさタイプに強い 20 出典 ポケモングローバルリンク
Slide 21
Slide 21 text
ポケモンへの応用 21
Slide 22
Slide 22 text
モチベーション ポケモンの”役割”を自動計算したい これまではポケモンの 特徴から人間が意味付けていた 22
Slide 23
Slide 23 text
ポケモンの役割に関する仮説 似たようなパーティで使用される ポケモン同士は似た役割を持つのでは? 23 出典 ポケモングローバルリンク
Slide 24
Slide 24 text
ポケモンの役割に関する仮説 ある単語の意味は同じ文中で 同時に使用される単語によって決まる (分布仮説) あるポケモンの役割は同じパーティで 同時に使用されるポケモンによって決まる 24
Slide 25
Slide 25 text
実験 ● データセット作り a. ネット上からポケモンの対戦データをクロール b. ポケモンの並びを無視してデータの重複を取り除く 約 5,000件 ● 学習 ○ ポケモンのパーティを文とみなしてword2vec (CBoW) を PythonのNeural Networkフレームワークのchainerで学習 ● リポジトリ ○ odanado/poke2vec 25
Slide 26
Slide 26 text
実験結果の可視化 26
Slide 27
Slide 27 text
デモサイト ● https://bit.ly/poke2vec ○ 役割ベクトルの加減算 ○ 2次元可視化 ○ 3次元可視化 27
Slide 28
Slide 28 text
役割ベクトルの加減算 28
Slide 29
Slide 29 text
可視化 29
Slide 30
Slide 30 text
可視化 30
Slide 31
Slide 31 text
まとめ ● 分布仮説は周囲の単語の出現頻度から 単語の意味が決まる仮説 ● 同時にパーティに採用されるポケモンの頻度から ポケモンの役割ベクトルを学習した ● 今後 ○ 持ち物を考慮したベクトルを学習したい ■ 現状だとデータ数が圧倒的に不足 ○ パーティのうち5匹決まっている時に 残り1匹をレコメンドとかしたい 31
Slide 32
Slide 32 text
Appendix 32
Slide 33
Slide 33 text
Continuous Bag-of-Words Model 33
Slide 34
Slide 34 text
Continuous Bag-of-Words Model ● 単語をベクトル化 (word2vec) する手法の1つ 34 りんご 彼女 は を 食べる 総和 ベクトル化 誤差計算
Slide 35
Slide 35 text
Continuous Bag-of-Words Model ● 単語をベクトル化 (word2vec) する手法の1つ 35 りんご 彼女 は を 食べる 総和 ベクトル化 誤差計算