Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
【poke2vec】ポケモンの役割ベクトルの 学習とその分析・可視化 / pyconjp-po...
Search
odanado
PRO
September 18, 2018
Programming
3
5.5k
【poke2vec】ポケモンの役割ベクトルの 学習とその分析・可視化 / pyconjp-poke2vec
odanado
PRO
September 18, 2018
Tweet
Share
More Decks by odanado
See All by odanado
Vitest Browser Mode への期待 / Vitest Browser Mode
odanado
PRO
3
3.6k
@nestjs/bull の活用について
odanado
PRO
0
1.3k
クラウド KMS の活用 / TOKYO BLOCKCHAIN TECH MEETUP 2022
odanado
PRO
0
1.1k
Vue.observable で状態管理 / vue-observable-state-management
odanado
PRO
4
2k
nuxtjs-axios-error-handling
odanado
PRO
0
320
ブロックチェーンアプリのトランザクションに対するデータ分析 / PyCon-JP-2019
odanado
PRO
0
370
スマートコントラクトに対する既知の攻撃とその対策 / bc.tokyo-21
odanado
PRO
0
210
最近のweb3.js事情 / bc.tokyo-19
odanado
PRO
2
460
YAPC::Tokyo 2019に スタッフ参加してみて / kichijojipm-18
odanado
PRO
1
2.2k
Other Decks in Programming
See All in Programming
なぜイベント駆動が必要なのか - CQRS/ESで解く複雑系システムの課題 -
j5ik2o
12
4.4k
Serverless Rust: Your Low-Risk Entry Point to Rust in Production (and the benefits are huge)
lmammino
1
140
Rubyで始める関数型ドメインモデリング
shogo_tksk
0
130
Grafana Cloudとソラカメ
devoc
0
180
Open source software: how to live long and go far
gaelvaroquaux
0
650
時計仕掛けのCompose
mkeeda
1
310
color-scheme: light dark; を完全に理解する
uhyo
6
460
Lottieアニメーションをカスタマイズしてみた
tahia910
0
130
メンテが命: PHPフレームワークのコンテナ化とアップグレード戦略
shunta27
0
190
Rails アプリ地図考 Flush Cut
makicamel
1
120
Amazon ECS とマイクロサービスから考えるシステム構成
hiyanger
2
580
ML.NETで始める機械学習
ymd65536
0
210
Featured
See All Featured
How to Think Like a Performance Engineer
csswizardry
22
1.4k
Testing 201, or: Great Expectations
jmmastey
42
7.2k
Bootstrapping a Software Product
garrettdimon
PRO
306
110k
Intergalactic Javascript Robots from Outer Space
tanoku
270
27k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
7
630
The World Runs on Bad Software
bkeepers
PRO
67
11k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
29
1k
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
3.7k
Done Done
chrislema
182
16k
What’s in a name? Adding method to the madness
productmarketing
PRO
22
3.3k
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.1k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
666
120k
Transcript
PyCon JP 2018 LT 【poke2vec】ポケモンの役割ベクトルの 学習とその分析・可視化 1 @odan3240
自己紹介 • 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
word2vec 13
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/poke2vec 25
実験結果の可視化 26
デモサイト • https://bit.ly/poke2vec ◦ 役割ベクトルの加減算 ◦ 2次元可視化 ◦ 3次元可視化 27
役割ベクトルの加減算 28
可視化 29
可視化 30
まとめ • 分布仮説は周囲の単語の出現頻度から 単語の意味が決まる仮説 • 同時にパーティに採用されるポケモンの頻度から ポケモンの役割ベクトルを学習した • 今後 ◦
持ち物を考慮したベクトルを学習したい ▪ 現状だとデータ数が圧倒的に不足 ◦ パーティのうち5匹決まっている時に 残り1匹をレコメンドとかしたい 31
Appendix 32
Continuous Bag-of-Words Model 33
Continuous Bag-of-Words Model • 単語をベクトル化 (word2vec) する手法の1つ 34 りんご 彼女
は を 食べる 総和 ベクトル化 誤差計算
Continuous Bag-of-Words Model • 単語をベクトル化 (word2vec) する手法の1つ 35 りんご 彼女
は を 食べる 総和 ベクトル化 誤差計算