ゼロから作るDeep Learning 2 自然言語編 読書会 第5回 の資料です! https://retrieva.connpass.com/event/131746/
θϩ͔Β࡞ΔDeep Learning 2̏ষ word2vec 3.1ʙ3.2ota42yθϩ͔Β࡞ΔDeep Learning 2 ࣗવݴޠฤ ಡॻձ ୈ5ճ
View Slide
͜ͷষͰΔ͜ͱ• word2vecΛ࣮͢Δ• ਪϕʔεͰ୯ޠΛϕΫτϧͰද͢ํ๏• γϯϓϧ͕ͩແବଟ͍࣮• ࣍ͷষͰରԠ
3.1ਪϕʔεͷख๏ͱχϡʔϥϧωοτϫʔΫ
ਪϕʔεͷϕΫτϧԽ• ୯ޠΛϕΫτϧʹ͢Δ̎ͭͷख๏• Χϯτϕʔεʢ̎ষʣ• ਪϕʔεʢ̏ষʣ• ͲͪΒԾઃΛϕʔεʹͯ͠Δ͕Ξϓϩʔνશ͘ผ• Ծઃɿ୯ޠͷҙຯपғͷ୯ޠ͔Βܗ͞ΕΔ (p.67)
3.1.1ɹΧϯτϕʔεͷख๏ͷ• Χϯτϕʔεपғͷ୯ޠͷසΛܭࢉ͢Δ• ޠኮ͕nͩͱn*nͷڊେͳڞىߦྻ͕ඞཁʹͳΔ• ࣍ݩݮͷͨΊͷSVDO(n^3)ͷܭࢉྔɺ͍
ਪϕʔεͷར• Χϯτϕʔείʔύεશମͷ౷ܭσʔλΛҰؾʹར༻͢Δ• ਪϕʔε(χϡʔϥϧωοτ)ίʔύεͷҰ෦Ͱֶश͢Δ• GPUͷฒྻܭࢉฉ͘• খ͚ʹͰ͖ɺߴʹฒྻॲཧͰ͖ΔͷͰڊେσʔλͰରԠͰ͖Δ• ଞʹັྗతͳ͕͋Δ(Β͍͠ɺৄ͘͠3.5.3)
3.1.2ɹਪϕʔεͷख๏ͷ֓ཁ
पғͷ୯ޠ͔Β୯ޠΛʮਪʯ͢Δ• `?`ʹԿ͕ೖΔ͔Λલޙ͔Βਪ• ίϯςΩετ͔ΒλʔήοτΛਪ• ίϯςΩετɿपғͷ୯ޠ(you, goodby)• λʔήοτɿରͷ୯ޠ(`?`)
ਪ݁Ռ• ֤୯ޠ͕ͦ͜ʹݱΕΔ֬Λग़ྗ• ίϯςΩετΛϞσϧʹ༩͑Δͱ୯ޠͷ͕֬ಘΒΕΔ
3.1.3 χϡʔϥϧωοτϫʔΫʹ͓͚Δ୯ޠͷॲཧํ๏• χϡʔϥϧωοτϫʔΫ(NN)ͷೖྗݻఆϕΫτϧ• ୯ޠΛͦͷ··ೖΕΔͷ͍͠• ୯ޠΛone-hotදݱ(one-hotϕΫτϧ)ʹม͢Δ
one-hotදݱ• ޠኮͷ͞Λ࣋ͪɺ୯ޠIDͱ֘͢Δ෦͕1ɺͦΕҎ֎͕0ͷϕΫτϧ• ͯ͢ͷ୯ޠΛಉ͡͞ͷϕΫτϧͱͯ͠දݱ
one-hotදݱ• શ݁߹Ͱม͢ΔͳΒ؆୯(ྫதؒ=3)
αϯϓϧίʔυ(p.99)• np.dot(c, W)୯ޠʹରԠ͢ΔॏΈΛऔΓग़ͯ͠Δ͚ͩ• W[0]ͷσʔλΛऔΓग़ͯ͠Δ͚ͩ• ແବͬΆ͍͕࣍ͷষͰ࣏͢Β͍͠
ϨΠϠදݱ• MatMulϨΠϠ(p.30)Ͱಉ͜͡ͱ͕Ͱ͖Δ• np.dot͢Δ͚ͩͷϨΠϠͳͷͰ
3.2ɹγϯϓϧͳword2vec
word2vecΛ࣮͢Δ• word2vecͰΘΕΔϞσϧCROWϞσϧͱskip-gramϞσϧ• "word2vec"͕͜ΕΒͷϞσϧΛࢦ͢߹͋Δ• ຊདྷͷҙຯͱζϨͯΔ
3.2.1 CBOWϞσϧͷਪॲཧ• ίϯςΩετ͔ΒλʔήοτΛਪଌ͢ΔNN• ίϯςΩετʹपғͷ୯ޠ• λʔήοτʹରͷ୯ޠ
୯ޠͷࢄදݱ• CBOWϞσϧΛ܇࿅͢Δ͜ͱͰ୯ޠͷࢄදݱΛಘΒΕΔ• Ϟσϧͷύϥϝʔλ͕ࢄදݱʹରԠ͢Δ
CBOWϞσϧͷશମ૾• ίϯςΩετʹ̎ɺӅΕʹ̏ͷ߹
CBOWϞσϧͷશମ૾• ೖྗෳݸͷone-hotදݱͷ୯ޠ• ग़ྗ֤୯ޠͷείΞ• softmaxΛ͏ͱ͕֬ಘΒΕΔ• தؒೖྗ͔Βͷͷฏۉ
• ࢄදݱͷਖ਼ମ• [$ W_{in}]7*3ͷॏΈ• ͜Ε͕୯ޠͷࢄදݱ• ֶशʹΑͬͯྑ͍ࢄදݱʹ͍ͯ͘͠
CBOWϞσϧͷϨΠϠදݱ
CBOWϞσϧͷϨΠϠදݱ• ̎ͭͷMatMulϨΠϠ• ୯ޠʹରԠ͢ΔॏΈΛऔΓग़ͭ͢(P.99)• ̎ͭͷฏۉΛऔΔ(=ͯ͠0.5Λ͔͚Δ)• scoreͷશ݁߹• ׆ੑԽؔແ͍ͷͰΘΓͱγϯϓϧ
3.2.2 CBOWϞσϧͷֶश• χϡʔϥϧωοτϫʔΫͷηΦϦʔ௨Γ• CBOWଞΫϥεྨΛ͢ΔNN• Ϋϥεʹone-hotͰද͞Εͨ୯ޠ• είΞ͔Β֬ΛٻΊͯɺਖ਼ղͱͷࠩΛֶश͢Δ• Softmaxؔʹ͔͚ͯ֬ʹ͢Δ• ڭࢣϥϕϧ͔ΒަࠩΤϯτϩϐʔޡࠩΛٻΊΔ
ϨΠϠදݱ• Softmax with lossΛ͚Ճ͑Δ
ίʔυϦʔσΟϯά• ch03/cbow_predict.py• https://github.com/oreilly-japan/deep-learning-from-scratch-2/blob/master/ch03/cbow_predict.py
3.2.3 word2vecͷॏΈͱࢄදݱ• ͱɹɹͷҧ͍• ྆ํͱ୯ޠͷҙຯ͕Τϯίʔυ͞Ε͍ͯΔ• ܗঢ়͕ҧ͏• ɹɹ7x3• ɹɹ3x7WinWoutWinWout
ࢄදݱɹɹΛ͏• ɹɹ શ͘Θͳ͍ɹ• ɹɹʹର͢Δskip-ngramͰͷ༗༻ੑ࣮ݧ• https://arxiv.org/abs/1611.01462• ɹɹ͏͜ͱͰΑ͍݁Ռ͕ಘΒΕΔͱ͍͏ใࠂ• https://nlp.stanford.edu/projects/glove/• word2vecͱࣅ͍ͯΔͭͷख๏WinWinWoutWout