Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Speaker Deck
PRO
Sign in
Sign up for free
Webプログラマと数学の接点、その入り口
Naoya Ito
October 04, 2016
Technology
88
28k
Webプログラマと数学の接点、その入り口
Naoya Ito
October 04, 2016
Tweet
Share
More Decks by Naoya Ito
See All by Naoya Ito
TypeScript による GraphQL バックエンド開発
naoya
17
8.5k
フロントエンドのパラダイムを参考にバックエンド開発を再考する / TypeScript による GraphQL バックエンド開発
naoya
48
17k
「問題から目を背けず取り組む」 一休の開発チームが6年間で学んだこと
naoya
138
51k
一休の現在と、ここまでの道のり
naoya
88
39k
技術的負債と向き合う
naoya
248
73k
System of Record と System of Engagement
naoya
187
65k
Serverless Architecture
naoya
119
43k
開発組織マネジメントのコツ
naoya
244
100k
Infrastructure as Code
naoya
31
11k
Other Decks in Technology
See All in Technology
SmartHRからOktaへのSCIM連携で作り出すHRドリブンのアカウント管理
jousysmiler
1
120
re:Inventの完全招待制イベント Building a Roadmap to SaaSについて / Building a Roadmap to SaaS an invitation only event at reinvent
yayoi_dd
0
160
MarvelClient Upgrade 64bit クライアントへの自動アップグレード設定
mitsuru_katoh
0
190
JAWS-UG 横浜 #54 資料
takakuni
0
220
OpenShiftのリリースノートを整理してみた
loftkun
2
450
USB PD で迎える AC アダプター大統一時代
puhitaku
2
2k
re:Invent2022 前後の Amazon EventBridge のアップデートを踏まえつつ、情シスの仕事をより楽しくしたい話。 / EventBridge for Information Systems Department
_kensh
2
780
PHPのimmutable arrayとは
hnw
1
170
私見「UNIXの考え方」/20230124-kameda-unix-phylosophy
opelab
1
170
岐路に立つ若手がAmazonianの仕事術を学んできました / learning amazonian productivity hacks as a junior engineer
yayoi_dd
0
160
SSMパラメーターストアでクロススタック参照の罠を回避する
shuyakinjo
0
7.9k
あつめたデータをどう扱うか
skrb
2
170
Featured
See All Featured
Visualization
eitanlees
128
12k
Designing Experiences People Love
moore
130
22k
What the flash - Photography Introduction
edds
64
10k
The Power of CSS Pseudo Elements
geoffreycrofte
52
4.3k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
44
14k
Debugging Ruby Performance
tmm1
67
11k
Scaling GitHub
holman
453
140k
Unsuck your backbone
ammeep
659
56k
Product Roadmaps are Hard
iamctodd
38
7.7k
The Invisible Customer
myddelton
113
12k
How GitHub (no longer) Works
holman
298
140k
Code Review Best Practice
trishagee
50
11k
Transcript
8FCϓϩάϥϚͱֶͷɺͦͷೖΓޱ /BPZB*UP גࣜձࣾҰٳ$50
ΞδΣϯμɺରͱ͢Δํ • ΞδΣϯμ – ઢܗͷجૅɺࣗવݴޠॲཧɺϓϩάϥϛϯάŋŋŋ – ্هΛֶతࢹ࠲ͱϓϩάϥϛϯά ϓϩάϥϚ తࢹ࠲Ͱݟ͍ͯ͘ •
ओʹରͱ͢Δํ – 8FCϓϩάϥϚͷํ – ֶʹৄ͍͠ํͰϓϩάϥϛϯάʹڵຯ͕͋Δํ – ࣗવݴޠॲཧใݕࡧɺϦίϝϯυΤϯδϯʹڵຯ͕͋Δํ
ϕΫτϧ ֶߍͰश͍·ͨ͠
a ! = 2 4 ⎡ ⎣ ⎢ ⎤ ⎦
⎥
ϕΫτϧ ૉͳٙ • ܭࢉػՊֶͷຊͳͲͰΑ͘ʮϕΫτϧʯͱ͍͏୯ޠ͕ग़ͯ͘Δ • ϕΫτϧ ҹ • ཧֶͰ͚ͬͨͲɺςΩετॲཧʹϕΫτϧͬͯԿͩ
ϕΫτϧ • ֶߍͰशͬͨҹͷϕΫτϧŋŋŋزԿϕΫτϧ – ํΛ࣋ͬͨྔ • ෳͷΛηοτͰදͨ͠ྔͱͯ͠ͷϕΫτϧŋŋŋతදݱ – ͭͷͳΒ࣍ݩ
– ͭͷͳΒ࣍ݩ – ສͷͳΒສ࣍ݩ a = 2 4 ⎡ ⎣ ⎢ ⎤ ⎦ ⎥ b = 2 4 1 ⎡ ⎣ ⎢ ⎢ ⎢ ⎤ ⎦ ⎥ ⎥ ⎥
ϓϩάϥϛϯάతͳࢹ࠲ͩͱŋŋŋ • εΧϥʔʹର͢ΔϦετ ྻ – ϓϩάϥϛϯάʹ͓͚Δ୯Ұͷ εΧϥʔ Λ·ͱΊͯѻ͏σʔλߏ ŋŋŋϦετɺྻ
– ϕΫτϧŋŋŋෳͷΛηοτͰѻ͏σʔλߏɺΈ͍ͨͳͷͱࢥ ͍͍͑
ϞσϧԽˠϕΫτϧͰදݱ • 5PCFPSOPUUPCFUIBUJTUIFRVFTUJPO – ͜ͷจॻΛ୯ޠͷग़ݱස 5FSN'SFRVFODZŋŋŋ5' ͰϞσϧԽ ୯७Խ ͢Δ –
લޙͷจ຺ߟྀͤͣɺ୯ޠΛାʹ์ΓࠐΉͷͰ#BHPG8PSETͱݺΕΔ • UPŋŋŋ • CFŋŋŋ • PSŋŋŋ • OPUŋŋŋ • UIBUŋŋŋ • JTŋŋŋ • UIFŋŋŋ • RVFTUJPOŋŋŋ d 1 = 2 2 1 1 1 1 1 1 ⎡ ⎣ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎤ ⎦ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ to be or จॻϕΫτϧ
ϕΫτϧˠྻ d 1 = 2 2 1 1 1 1
1 1 ⎡ ⎣ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎤ ⎦ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ const d1 = [ 2, 2, 1, 1, 1, 1, 1, 1 ] console.log(d1[0]) // 2
• จॻΛϕΫτϧͱͯ͠දݱ • ࣙॻͷ୯ޠΛͱ͢Δແݶ࣍ݩϕΫτϧ Antony and Cleopatra Julius Caesar The
Tempest Hamlet Othello Macbeth Antony 157 73 0 0 0 0 Brutus 4 157 0 1 0 0 Caesar 232 227 0 2 1 1 Calpurnia 0 10 0 0 0 0 Cleopatra 57 0 0 0 0 0 mercy 2 0 3 5 5 1 worser 2 0 1 1 1 0 d1 จॻͷϕΫτϧԽ source: Introduc.on to Informa.on Retrieval h7p://nlp.stanford.edu/IR-book/
จॻͱจॻͷྨࣅΛௐ͍ͨ • ൺֱ͍ͨ͠ෳͷจॻΛจॻϕΫτϧʹ͢Δ • ͦΕͧΕൺֱ͍ͯۙ͠ϕΫτϧΛ୳͢ • ࠷͍ۙϕΫτϧ͕࠷૬͕ؔߴ͍จॻ
ൺֱํ๏ŋŋŋྫ͑ɺίαΠϯྨࣅ • ϕΫτϧͷྨࣅŋŋŋϕΫτϧ͕࡞ΔDPTВΛٻΊΔࣜʹ͍͠ – ͔͚ࢉͷූ߸ΛݟΕͱͷྨࣅ͕Θ͔Δ • BYCͷ݁Ռ͕ਖ਼ͳΒɺೋͭಉ • BYCͷ݁Ռ͕ෛͳΒɺೋͭٯ͖
ରͷੑ࣭ • BYCͷ݁Ռ͕ͳΒɺൺֱରͱͯ͠ෆత֬ – ϕΫτϧͷੵϕΫτϧͷ͝ͱʹֻ͚ͯ͠ࢉͯ͠Δ͚ͩ • BɾCB C B C B C ŋŋŋ • ੵ͕ਖ਼ͳΒಉɺෛͳΒٯ – ༨ݭఆཧ cosθ = a⋅b a b 参考: 「相関係数とは何か?」を 体系的に理解するための6ステップ h7p://language-and-engineering.hatenablog.jp/entry/20090128/1233151846
• ϕΫτϧͷੵ͕࠷େ͖͍ͷ࠷૬͕ؔߴ͍ • ڑؔ ίαΠϯྨࣅ source: Introduc.on to Informa.on Retrieval
p.112
ͭͷখઆͷޠͷUG w 4FOTFBOE4FOTJCJMJUZ w 1SJEFBOE1SFKVEJDF w 8VUIFSJOH)FJHIUT ϕΫτϧͰਖ਼نԽ 4B4ɾ1B1 4B4ɾ8) 㱤4B4ʹ͍ۙͷ8)ΑΓ1B1 ྫ source:
Introduc.on to Informa.on Retrieval p.112
ϓϩάϥϜ +BWB4DSJQU ʹ͢Δͱ const _ = require('lodash') // 文書をベクトル (配列)
で表現する。TFをベクトル長で正規化した値 const docs = { sas: [0.996, 0.087, 0.017], pap: [0.993, 0.120, 0], wh: [0.847, 0.466, 0.254] } // 2ベクトルのコサイン類似度を計算 function sim(d1, d2) { // 各成分の掛け算 (zipWith で * ) を累積 (sum) return _.sum(_.zipWith(d1, d2, (a, b) => { return a * b })) } console.log(sim(docs.sas, docs.pap)) // 0.999 console.log(sim(docs.sas, docs.wh)) // 0.888
ֶ͔ΒϓϩάϥϛϯάŋŋŋϕΫτϧԽ˰σʔλߏ • จॻΛϕΫτϧʹ • ϕΫτϧʹ͢Δ͜ͱͰԋࢉͷೖΓޱ͕։͘ – ϕΫτϧۭؒϞσϧ – ϕΫτϧԽͷͨΊͷ୯७ͳख๏ŋŋŋ#BHPG8PSET 5'
5'*%' • ϕΫτϧΛྻͱ͍͏σʔλߏͰѻ͍ΞϧΰϦζϜΛద༻ – ΞϧΰϦζϜŋŋŋίαΠϯྨࣅ
ҎԼಉ͡ૢ࡞Λ͍ͯ͠Δ • ϓϩάϥϛϯά – σʔλߏʹରͯ͠ԋࢉΛఆٛ͢Δ – ରΛσʔλߏʹམͱ͠ࠐΉ͜ͱ͕Ͱ͖Εɺͦͷԋࢉ͕͑Δ • ֶ –
ϕΫτϧߦྻͱ͍͏ߏʹϞσϧԽ͢Δ – ϕΫτϧߦྻͷԋࢉ͕͑Δ ྆ऀΛڮͨ͠͠ͷ͕ɺ ϕΫτϧˠྻͰͷ දݱ
ҎԼಉ͡ • ʹΑΔநԽ – ݸͷͱݸͷΛ͠ࢉͨ͠Γֻ͚ࢉͨ͠Γŋŋŋͱߟ͑Δͱେ ม͕ͩŋŋŋ – ͦΕͧΕBɺCͱ͍͏ϕΫτϧͰմͱͯ͠දݱ͢ΔͱB CɺBɾCͱ ୯७Խ͢Δ͜ͱ͕Ͱ͖Δ
• ϓϩάϥϛϯάʹ͓͚ΔநԽ – ͨ͘͞ΜͷύϥϝʔλΛ࣋ͬͨσʔλಉ࢜ͷԋࢉΛݸผʹߟ͑Δͱେ ม͕ͩŋŋŋ – ಉҰίϯςΩετͷσʔλɺσʔλߏΦϒδΣΫτͱͯ͠մͱ ͯ͠දݱ͠ɺσʔλߏͷԋࢉɺΦϒδΣΫτͷ૬ޓ࡞༻ͱͯ͠ߟ ͑Δͱ୯७͔Ͱ͖Δ
͓͓ʔ
ߦྻ • ߦྻŋŋŋෳͷϕΫτϧΛ·ͱΊͯѻ͏͜ͱ͕Ͱ͖Δ • จॻू߹Λߦྻͱ͍͏ҰͭͷͰදݱͰ͖Δ D = 0.996 0.993 0.847
0.087 0.120 0.466 0.017 0 0.254 ⎡ ⎣ ⎢ ⎢ ⎢ ⎤ ⎦ ⎥ ⎥ ⎥ ୯ޠจॻߦྻ ֤ߦɺ֤ྻϕΫτϧ
ߦྻͨͱ͑ೋ࣍ݩྻͰදݱͰ͖Δ D = 0.996 0.993 0.847 0.087 0.120 0.466 0.017
0 0.254 ⎡ ⎣ ⎢ ⎢ ⎢ ⎤ ⎦ ⎥ ⎥ ⎥ const documentMatrix = [ [0.996, 0.993, 0.847], [0.087, 0.120, 0.466], [0.017, 0 , 0.254] ]
ϓϩάϥϚతࢹ࠲Ͱͷߦྻ • ͍ΘΏΔྻͷྻ ϦετͷϦετ – ྻͰදݱͨ͠ϕΫτϧΛ·ͱΊͯѻ͏ – ߦྻʹߦྻͷԋࢉ͕ఆٛ͞Ε͍ͯΔ
×ŋŋŋ
ߦྻΛରʹͨ͠ܭࢉ • ߦྻʹ͢Δ͜ͱͰɺߦྻΛରʹͨ͠ܭࢉ͕͑Δ • ྫŋŋŋಛҟղ 4JOHMVBS7BMVF%FDPNQPTJUJPOŋŋŋ47% C =UΣVT source:
Introduc.on to Informa.on Retrieval p.377 h7p://nlp.stanford.edu/IR-book/pdf/18lsi.pdf ・・・ C の自己相関行列の固有ベクトルを用いて分解。Σに特異値
ͭ·Γŋŋŋ • ֶతʹŋŋŋ – จॻ܈Λ୯ޠจॻߦྻͱͯ͠දݱ͢Δ – ߦྻͱͯ͠දݱͰ͖Ε47%ͰղͰ͖Δ – 47%Ͱղ͢Δͱɺಛҟ͕ɻಛҟͰϥϯΫۙࣅͳͲ͕Ͱ͖Δ •
ϓϩάϥϜతʹŋŋŋ – ୯ޠจॻߦྻΛ࣍ݩྻͱͯ͠දݱ͢Δ – 47%ͷܭࢉΛద༻͢Δ – ϥϯΫۙࣅΛ͢Δ͜ͱͰܭࢉྔΛݮΒͨ͠Γɺ࣍ݩѹॖͨ͠Γ͢Δ͜ͱ͕Ͱ͖Δ
1ZUIPOͷOVNQZͰ47% > import numpy as np # 行列を二次元配列で > A
= np.array([[1, 0, 2], [0, 1, 0], [1, 0, 2]]) > A array([[1, 0, 2], [0, 1, 0], [1, 0, 2]]) # SVD を計算 > U, s, V = np.linalg.svd(A) > U array([[ -7.07106781e-01, -1.57009246e-16, -7.07106781e-01], [ 0.00000000e+00, 1.00000000e+00, 0.00000000e+00], [ -7.07106781e-01, 1.57009246e-16, 7.07106781e-01]]) > s array([ 3.16227766e+00, 1.00000000e+00, 4.24340278e-17]) > V array([[-0.4472136 , 0. , -0.89442719], [ 0. , 1. , 0. ], [ 0.89442719, 0. , -0.4472136 ]])
જࡏతҙຯΠϯσΫγϯά -BUFOU4FNBOUJD*OEFYJOH • จॻϕΫτϧۭؒͷ࣍ݩΛѹॖ͢Δ – ʮDBSʯͰݕࡧͨ͠ΒʮBVUPNPCJMFʯώοτ͢ΔΑ͏ʹ – 47%ͰߦྻΛղ͠ɺಛҟʹԠͯ͡ߦྻͷ֊ΛԼ͛Δ –
ϕΫτϧۭ͕ؒ࣍ݩͷۭؒʹࣹӨ͞ΕΔɻ͜ͷͱ͖୯ޠͷજࡏతҙຯ͕ ѹॖ͞ΕΔ • $6Є7UͷЄΛߏ͢Δಛҟͷ͏͕ͪখ͞ͳΛʹ – ϥϯΫ ֊ ͕Լ͕Δجఈͷ͕ݮΔ • ЄˠЄ L • $ L 6Є L 7U – ॏཁͳجఈ͚ͩΛͯ͠খ͞ͳߦྻʹۙࣅͨ͜͠ͱʹͳΔ – খ͘͞ͳͬͨ$ L ʹɺ͍ͭͷίαΠϯྨࣅͳͲ
ײతΠϝʔδ • ϕΫτϧۭؒͷجఈΛมͯ͠ใྔͷগͳ͍࣠ແࢹ͢Δ
-4*͕͍ͬͯΔ͜ͱ • දݱྗ͕๛͗ͯ͢จॻΛৄࡉ·ͰදݱͰ͖͗ͯ͢ɺຊདྷࣅ͍ͯΔ จॻҧͬͨจॻͱͯ͠දݱͰ͖ͯ͠·͏ • ॏཁͷ͍ใΛݮˠࣅͯΔจॻͷྨࣅΛ্͛Δ cf: 潜在的意味インデキシング(LSI)徹底入門 h7ps://deepage.net/bigdata/machine_learning/2016/08/28/fast_text_facebook.html
͍͜͠ͱΛ͍Ζ͍Ζड़·͕ͨ͠ŋŋŋ • ࣗવݴޠˠߦྻˠֶˠσʔλߏ ೋ࣍ݩྻ ˠΞϧΰϦ ζϜ – จॻΛ୯ޠϕΫτϧͰදݱ͠ɺϕΫτϧͷू߹ΛߦྻͰදݱ͢Δ – ͢Δͱɺ-4*ͷΑ͏ͳख๏ΛͬͯྨࣅจॻΛൃݟͨ͠ΓͰ͖Δ
• ϥΠϒϥϦ -4* ͕ཁٻ͢Δσʔλߏ ୯ޠจॻߦྻ Λೖྗͯ͠ ݁ՌΛಘͨɺΈ͍ͨͳײ͡ ࡶ
/.' /POOFHBUJWF.BUSJY'BDUPSJ[BUJPO • ඇෛߦྻΛͭͷඇෛߦྻʹҼࢠղ͢ΔΞϧΰϦζϜ – Ͳ͏ͬͯղ͢Δ͔ޙड़ • ͱͷߦྻ͕࣋ͭજࡏཁૉ ಛ
ΛᖰΓग़͢ X = WF = x 文書 単語 文書 特徴 特徴 単語 X W F ಛ͕จॻʹରͯ͠Ͳ ͷఔॏཁ͔ͷॏΈ ୯ޠ͕ಛʹରͯ͠Ͳ ͷఔॏཁ͔ͷॏΈ
/.'ͰςΩετϚΠχϯά • ΫΤϦ ୯ޠͷू߹ ͔Βؔ࿈͢ΔจॻΛಘ͍ͨͳΒŋŋŋ – '͔Β୯ޠू߹ͱద߹͢ΔಛϕΫτϧ ߦ ΛಘΔ –
࣍ʹ8͔ΒಛϕΫτϧʹద߹͢ΔߦΛબͿ = x 文書 単語 文書 特徴 特徴 単語 X W F ୯ޠ͕ಛʹରͯ͠Ͳ ͷఔॏཁ͔ͷॏΈ ಛ͕จॻʹରͯ͠Ͳ ͷఔॏཁ͔ͷॏΈ
ҼࢠղͷΓํ • 98'ͷ8ɺ'ͷશཁૉΛϥϯμϜͳਖ਼ͷͰຒΊΔ • શཁૉΛߋ৽͠ͳ͕Β෮ܭࢉ • ཁૉͷͷߋ৽ͷͨͼɺ9ͱ8'ͷڑΛܭࢉ – ڑŋŋŋೋޡࠩ,-μΠόʔδΣϯε •
ڑ͕ʹͳΔ͔ɺ༧ΊܾΊͨճ͚ͩߋ৽ΛߦͬͨΒऴΘΓ
୯ޠYจॻҎ֎ʹ • ΛߦɺྻʹങͬͨϢʔβʔɺཁૉ͕ߪೖ͔ͨ͠Ͳ͏͔ – ͷϨίϝϯυ – ࣅͨΑ͏ͳΛങͬͯΔϢʔβʔͷϨίϝϯυ • ۂΛߦɺྻʹϢʔβʔɺཁૉ͕ϨϏϡʔͷ –
ಉ͡Α͏ͳϢʔβʔಉ͡Α͏ͳۂΛΉˠۂͷϨίϝϯυ ͦͷଞख๏Ͱߟ͑ํҰॹ ϕΫτϧߦྻʹͯ͠ɺͦΕΛର ʹܭࢉͰϨίϝϯυ
(PPHMFͷ1BHF3BOL • ΣϒάϥϑΛߦྻͱͯ͠දݱ͠ɺߦྻͷओݻ༗ϕΫτϧΛٻΊΔ – ཁૉ͕ϦϯΫΛḷΔ֬ɻ֬ߦྻ – ݻ༗ϕΫτϧŋŋŋઢܗมͷಛΛද͢ϕΫτϧ – ओݻ༗ϕΫτϧࢉग़͖ଇʹΑΓܭࢉྔΛݮͰ͖Δ –
ओݻ༗ϕΫτϧͷ͕ɺΫΤϦʹର͢Δจॻͷద߹ 1BHF3BOL ※ 現在の検索アルゴリズムは単純な PageRank のみよりも遙かに複雑な計算が行われています
ͬͺΓɺվΊͯ • ҎԼಉ͡ߟ͑ํ – ϓϩάϥϛϯάŋŋŋσʔλߏʹରͯ͠खଓ͖ͷΠϯλϑΣʔεΛ༻ ҙ͢ΔɻσʔλߏʹϞσϧԽͰ͖Εͦͷखଓ͖͕͑Δ – ֶŋŋŋϕΫτϧߦྻͱ͍͏ߏʹϞσϧԽ͢ΔɻϕΫτϧߦ ྻͷԋࢉ͕͑Δ
ઢܗͷ͕ओͰ͕ͨ͠ŋŋŋ • ͨͱ͑ɺରΛ֬Ͱදݱ͢Δ㱺֬౷ܭֶతͳख๏ΛԠ ༻Ͱ͖Δ • ࣗવݴޠॲཧͳΒŋŋŋྫ֬తݴޠϞσϧ Md1 d1 Md2 d2
Mdn d2 ・・・ 文書コレクション (M はモデル) クエリ 情報要求 ) | ( d M Q P 生成
ۙͷ
୯ޠΛϕΫτϧͰŋŋŋ8PSE7FD • จॻͰͳ͘ ୯ޠΛϕΫτϧԽͯ͠දݱ͢Δख๏ ࣮ • ͻͱͭͷ୯ޠΛ࣍ݩ͙Β͍ͷϕΫτϧͱͯ͠දݱ͢Δ source: Facebookが公開した10億語を数分で学習するfastTextで一体何ができるのか h7ps://deepage.net/bigdata/machine_learning/2016/08/28/fast_text_facebook.html
୯ޠͷࢄදݱ
8PSE7FDͷੑ࣭ • 8PSE7FDͷϕΫτϧۭؒʹݴ༿ͷʮҙຯʯΛతʹදݱ͠ ͍ͯΔ͔ͷΑ͏ͳੑ࣭ source: 米googleの研究者が開発したWord2Vecで自然言語処理 h7p://qiita.com/okappy/items/e16639178ba85edfee72 > イチロー -
野球 + 本田 サッカー 0.612238 初戦 0.588327 バスケ 0.562973 > 日本 - 東京 + フランス 札幌 0.569258 パリ 0.566437 ミラノ 0.560036 > ご飯 - 卵 + そば 鶏 0.686967 ネギ 0.670782 塩 0.663107 ୯ޠϕΫτϧͷՃࢉɺ ݮࢉ͕ఆٛ͞Ε͍ͯΔ
8PSE7FDͷཧతੑ࣭ • 8PSE7FDͷਖ਼ମɺӅΕͱग़ྗͷ͔ΒͳΔ୯७ͳχϡʔ ϥϧωοτϫʔΫ • ୯ޠͷϕΫτϧදݱωοτϫʔΫͷॏΈͦͷͷ source: Word2Vec のニューラルネットワーク学習過程を理解する h7p://tkengo.github.io/blog/2016/05/09/understand-how-to-learn-word2vec/
8PSE7FD͔Β%PD7FDɺ*UFN7FD • ࢄදݱΛԠ༻ – 8PSE7FDͷ୯ޠࢄදݱͰจॻϕΫτϧΛߏஙˠ%PD7FD – ࢄදݱͰ*UFN FUD Λߏஙˠਪનɺྨ –
σΟʔϓϥʔχϯάͷૉੑʹ͑ΔͨΊେਓؾ • ྫϦΫϧʔτςΫϊϩδʔζాࢯ IUUQXXXTMJEFTIBSFOFUSFDSVJUDPKQTT – ߦಈϩάΛ୯ޠͱΈͳ͠8PSE7FDͰϕΫτϧԽɺίαΠϯྨࣅͰ Ϩίϝϯυͨ͠ͱ͜Ζਫ਼্͕ݟΒΕͨͱͷ͜ͱ
ϕΫτϧԽΛߟ͑Δ • #BHPG8PSETͰ୯ޠεΧϥʔ – จॻϕΫτϧŋŋŋ୯ޠ εΧϥʔ ͷू߹ŋŋŋ୯ޠͷྻ – ϓϩάϥϛϯάతࢹ࠲ŋŋŋྻͱ͍͏ɺϓϦϛςΟϒͳσʔλߏ
• 8PSE7FDͰ୯ޠࢄදݱ – ΑΓෳࡶͳߏ – ϓϩάϥϛϯάతࢹ࠲ŋŋŋΑΓߴͳσʔλߏ
σʔλߏɺखଓ͖ • ϓϩάϥϛϯά – ΑΓෳࡶͳσʔλߏͰΑΓෳࡶͳϞσϧΛදݱͰ͖Δ – σʔλߏʹ߹Θͤͨखଓ͖Λఆٛ͢Δ͜ͱͰɺ՝ΛղܾͰ͖Δ ϕΫτϧߦྻ ߏ
ͱࢉज़ खଓ͖ ͷؔ ੑͱطࢹײ
ݸਓతͳ
ֶۤखͰͨ͠ • খதߴͱֶ͕Ұ൪ѱ͍ • Λऔͬͨ͜ͱŋŋŋ • ߦྻͰͭ·͍ͮͨ
ॻ੶*OUSPEVDUJPOUP*OGPSNBUJPO3FUSJFWBM ݕࡧΤϯδϯͷษڧΛ͠Α͏ͱࢥͬͨΒߦྻ͕ŋŋŋͭΒ͍ ͜ͷͱ͖ࡀ
ԕࢁܒʰֶೖʱ
͔ͭͯͷֶͱ·ͬͨ͘ҟͳΔҹ • ֶֶ͕ੜͷͱ͖ʹ৮Εͨͷͱશ͘ผͷֶʹײͨ͡ – ܭࢉී௨ͷࢉज़ͰʹΑͬͯߦΘΕɺֶऀͷؒͰจࣈʹ ΑͬͯߦΘΕΔɻ͍ͣΕಉ͡ݪཧͷ্ʹ͖͔ͣΕ͓ͯΓɺಉ͡త Λ͍ͬͯΔ͕ɺࢉज़ҰఆͰಛघͰ͋ΓɺෆఆͰීวతͰ͋ Δ – ΛͨͩͳΒΔ͚ͩͰɺ͜ͱ৽͘͠ߦྻͱ͍͏ͷΛߟ͑Δޮೳ
ͳ͍ɻߦྻͲ͏͠ͷ͍͋ͩʹ͏·͘ Y ×ͷԋࢉΛߟ͑ΔΑ͏ʹ ͳͬͯɺ͡ΊͯߦྻͷҖྗ͕Θ͔ͬͯ͘ΔͷͰ͋Δ
ϓϩάϥϛϯάͱͷطࢹײ • ϕΫτϧɺߦྻŋŋŋ – ʮΛ·ͱΊ͔ͯ͋ͭ͏ŋŋŋ͜Εσʔλߏͷ͜ͱͩΘʯ • " #͕ͨͩͷͰͳ͘ߦྻͱ͍͏ෳࡶͳߏΛͬͨͷΈ ߹ΘͤͰ͋ͬͯɺ" #ɺ"#ɺ"#ͱ͔͚ɺ͔͋ͨࠓ·Ͱͷ
Ͱ͋Δ͔ͷΑ͏ʹߟ͑ͯɺࣅͨΑ͏ͳํ๏Ͱܭࢉ͕Ͱ͖ΔΘ͚Ͱ ͋Δ – ҟͳΔσʔλߏʹಉ͡ΠϯλϑΣʔε ܭࢉ Λఆٛ͢ΕͦΕΒ ΛಉҰࢹͰ͖Δ – ʮ͜ΕμοΫλΠϐϯά ϙϦϞʔϑΟζϜ ͩɻͦ͏͔ɺநԽ͔ʯ
ࣗʹͱͬͯͷϓϩάϥϛϯάͱֶͷɺͦͷೖΓޱ • ରͷͷσʔλߏΛଊ͑Δ ϞσϧԽ • ϕΫτϧɺߦྻŋŋŋˠֶ ઢܗFUD ͷ͕։͘ •
ֶͷੈքΛඈͤɺ૾ྗͷݶքΛಥഁͰ͖Δ – ສ࣍ݩͷϕΫτϧۭؒ૾Ͱ͖ͳ͍͕ɺֶͳΒͦΕΛѻ͏͜ ͱ͕Ͱ͖Δ
·ͱΊ ݴ͍͔ͨͬͨ͜ͱ • ϓϩάϥϛϯάͱֶͷࢥͬͯΔΑΓ͘͠ͳ͍ – ࠓճઢܗΛςʔϚʹ – ֩ʹͳΔͷσʔλߏ ϕΫτϧɺߦྻ
– ϓϩάϥϛϯάͱֶͷੈքΛڮ͢͠Δͷ͕Ϟσϧ • 8FCϓϩάϥϚతͳʮৄࡉΑ͘Θ͔Βͳ͍͚Ͳ"1*ݺ݁Ռ खʹೖΔͰ͠ΐʯͰ࠷ॳ͍͍ͱࢥ͏ – ͦΕ͕͖͔͚ͬʹͳͬͯɺࣝཉ͕͘ • ֶੜͷͱ͖ʹֶͬͨ ܭࢉͷ܇࿅ ΑΓɺڵຯ͕࣋ͯΔͣ
͋Γ͕ͱ͏͍͟͝·ͨ͠
ࢀߟจݙ • $%.BOOJOH 13BHIBWBO )4DIVU[Fʰ*OUSPEVDUJPOUP *OGPSNBUJPO3FUSJFWBMʱ $BNCSJEHF6OJWFSTJUZ1SFTT • 5PCZ4FHSBO
ஶ ᙛࢁਔ݈ יᖒᚸ ༁ ʰू߹ϓϩάϥ ϛϯάʱ ΦϥΠϦʔδϟύϯ • ۚ୩݈Ұʰ͜ΕͳΒ͔ΔԠ༻ֶڭࣨʕ࠷খೋ๏͔ΒΣʔϒ Ϩοτ·Ͱʱ ڞཱग़൛ • ԕࢁܒʰֶೖ্ʱ ؠ৽ॻ • ԕࢁܒʰֶೖԼʱ ؠ৽ॻ