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