Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Webプログラマと数学の接点、その入り口

Naoya Ito
October 04, 2016

 Webプログラマと数学の接点、その入り口

Naoya Ito

October 04, 2016
Tweet

More Decks by Naoya Ito

Other Decks in Technology

Transcript

  1. 8FCϓϩάϥϚͱ਺ֶͷ઀఺ɺͦͷೖΓޱ
    /BPZB*UP
    גࣜձࣾҰٳ$50

    View Slide

  2. ΞδΣϯμɺର৅ͱ͢Δํ
    •  ΞδΣϯμ
    –  ઢܗ୅਺ͷجૅɺࣗવݴޠॲཧɺϓϩάϥϛϯάŋŋŋ
    –  ্هΛ਺ֶతࢹ࠲ͱϓϩάϥϛϯά ϓϩάϥϚ
    తࢹ࠲Ͱݟ͍ͯ͘
    •  ओʹର৅ͱ͢Δํ
    –  8FCϓϩάϥϚͷํ
    –  ਺ֶʹৄ͍͠ํͰϓϩάϥϛϯάʹڵຯ͕͋Δํ
    –  ࣗવݴޠॲཧ΍৘ใݕࡧɺϦίϝϯυΤϯδϯʹڵຯ͕͋Δํ

    View Slide

  3. ϕΫτϧ
    ֶߍͰश͍·ͨ͠

    View Slide

  4. a
    !
    =
    2
    4






    View Slide

  5. ϕΫτϧ ૉ๿ͳٙ໰
    •  ܭࢉػՊֶͷຊͳͲͰΑ͘ʮϕΫτϧʯͱ͍͏୯ޠ͕ग़ͯ͘Δ
    •  ϕΫτϧ ໼ҹ
    •  ෺ཧֶͰ͸࢖͚ͬͨͲɺςΩετॲཧʹϕΫτϧͬͯԿͩ

    View Slide

  6. ϕΫτϧ
    •  ֶߍͰशͬͨ໼ҹͷϕΫτϧŋŋŋزԿϕΫτϧ
    –  ํ޲Λ࣋ͬͨྔ

    •  ෳ਺ͷ਺ΛηοτͰදͨ͠ྔͱͯ͠ͷϕΫτϧŋŋŋ୅਺తදݱ
    –  ͭͷ਺ͳΒ࣍ݩ
    –  ͭͷ਺ͳΒ࣍ݩ
    –  ສͷ਺ͳΒສ࣍ݩ
    a =
    2
    4





    ⎥ b =
    2
    4
    1










    View Slide

  7. ϓϩάϥϛϯάతͳࢹ࠲ͩͱŋŋŋ
    •  εΧϥʔʹର͢ΔϦετ ഑ྻ

    –  ϓϩάϥϛϯάʹ͓͚Δ୯Ұͷ஋ εΧϥʔ
    Λ·ͱΊͯѻ͏σʔλߏ
    ଄ŋŋŋϦετɺ഑ྻ
    –  ϕΫτϧŋŋŋෳ਺ͷ਺ΛηοτͰѻ͏σʔλߏ଄ɺΈ͍ͨͳ΋ͷͱࢥ
    ͑͹͍͍

    View Slide

  8. ϞσϧԽˠϕΫτϧͰදݱ
    •  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
    จॻϕΫτϧ

    View Slide

  9. ϕΫτϧˠ഑ྻ
    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

    View Slide

  10. •  จॻΛϕΫτϧͱͯ͠දݱ
    •  ࣙॻͷ୯ޠΛ੒෼ͱ͢Δແݶ࣍ݩϕΫτϧ
    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/

    View Slide

  11. จॻͱจॻͷྨࣅ౓Λௐ΂͍ͨ
    •  ൺֱ͍ͨ͠ෳ਺ͷจॻΛจॻϕΫτϧʹ͢Δ
    •  ͦΕͧΕൺֱ͍ͯۙ͠ϕΫτϧΛ୳͢
    •  ࠷΋͍ۙϕΫτϧ͕࠷΋૬͕ؔߴ͍จॻ

    View Slide

  12. ൺֱํ๏ŋŋŋྫ͑͹ɺίαΠϯྨࣅ౓
    •  ϕΫτϧͷྨࣅ౓ŋŋŋϕΫτϧ͕࡞Δ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

    View Slide

  13. •  ϕΫτϧͷ಺ੵ͕࠷΋େ͖͍΋ͷ࠷΋૬ؔ౓͕ߴ͍
    •  ڑ཭ؔ਺
    ίαΠϯྨࣅ౓
    source: Introduc.on to Informa.on Retrieval p.112

    View Slide

  14. ͭͷখઆͷޠͷUG
    w 4FOTFBOE4FOTJCJMJUZ
    w 1SJEFBOE1SFKVEJDF
    w 8VUIFSJOH)FJHIUT
    ϕΫτϧ௕Ͱਖ਼نԽ
    4B4ɾ1B1
    4B4ɾ8)
    㱤4B4ʹ͍ۙͷ͸8)ΑΓ1B1

    source: Introduc.on to Informa.on Retrieval p.112

    View Slide

  15. ϓϩάϥϜ +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

    View Slide

  16. ਺ֶ͔Βϓϩάϥϛϯά΁ŋŋŋϕΫτϧԽ˰σʔλߏ଄
    •  จॻΛϕΫτϧʹ
    •  ϕΫτϧʹ͢Δ͜ͱͰ୅਺ԋࢉ΁ͷೖΓޱ͕։͘
    –  ϕΫτϧۭؒϞσϧ
    –  ϕΫτϧԽͷͨΊͷ୯७ͳख๏ŋŋŋ#BHPG8PSET 5' 5'*%'
    •  ϕΫτϧΛ഑ྻͱ͍͏σʔλߏ଄Ͱѻ͍ΞϧΰϦζϜΛద༻
    –  ΞϧΰϦζϜŋŋŋίαΠϯྨࣅ౓

    View Slide

  17. ҎԼ͸ಉ͡ૢ࡞Λ͍ͯ͠Δ
    •  ϓϩάϥϛϯά
    –  σʔλߏ଄ʹରͯ͠ԋࢉΛఆٛ͢Δ
    –  ର৅Λσʔλߏ଄ʹམͱ͠ࠐΉ͜ͱ͕Ͱ͖Ε͹ɺͦͷԋࢉ͕࢖͑Δ
    •  ਺ֶ
    –  ϕΫτϧ΍ߦྻͱ͍͏ߏ଄ʹϞσϧԽ͢Δ
    –  ϕΫτϧ΍ߦྻ΁ͷ୅਺ԋࢉ͕࢖͑Δ
    ྆ऀΛڮ౉ͨ͠͠ͷ͕ɺ
    ϕΫτϧˠ഑ྻͰͷ
    දݱ

    View Slide

  18. ҎԼ΋ಉ͡
    •  ୅਺ʹΑΔந৅Խ
    –  ݸͷ஋ͱݸͷ஋Λ଍͠ࢉͨ͠Γֻ͚ࢉͨ͠Γŋŋŋͱߟ͑Δͱେ
    ม͕ͩŋŋŋ
    –  ͦΕͧΕBɺCͱ͍͏ϕΫτϧͰմͱͯ͠දݱ͢ΔͱBCɺBɾCͱ
    ୯७Խ͢Δ͜ͱ͕Ͱ͖Δ
    •  ϓϩάϥϛϯάʹ͓͚Δந৅Խ
    –  ͨ͘͞ΜͷύϥϝʔλΛ࣋ͬͨσʔλಉ࢜ͷԋࢉΛݸผʹߟ͑Δͱେ
    ม͕ͩŋŋŋ
    –  ಉҰίϯςΩετͷσʔλ͸ɺσʔλߏ଄΍ΦϒδΣΫτͱͯ͠մͱ
    ͯ͠දݱ͠ɺσʔλߏ଄΁ͷԋࢉɺΦϒδΣΫτͷ૬ޓ࡞༻ͱͯ͠ߟ
    ͑Δͱ୯७͔Ͱ͖Δ

    View Slide

  19. ͓͓ʔ

    View Slide

  20. ߦྻ
    •  ߦྻŋŋŋෳ਺ͷϕΫτϧΛ·ͱΊͯѻ͏͜ͱ͕Ͱ͖Δ
    •  จॻू߹Λߦྻͱ͍͏Ұͭͷ୅਺ͰදݱͰ͖Δ
    D =
    0.996 0.993 0.847
    0.087 0.120 0.466
    0.017 0 0.254










    ୯ޠจॻߦྻ
    ֤ߦɺ֤ྻ͸ϕΫτϧ

    View Slide

  21. ߦྻ͸ͨͱ͑͹ೋ࣍ݩ഑ྻͰදݱͰ͖Δ
    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]
    ]

    View Slide

  22. ϓϩάϥϚతࢹ࠲Ͱͷߦྻ
    •  ͍ΘΏΔ഑ྻͷ഑ྻ ϦετͷϦετ

    –  ഑ྻͰදݱͨ͠ϕΫτϧΛ·ͱΊͯѻ͏
    –  ߦྻʹ͸ߦྻͷԋࢉ͕ఆٛ͞Ε͍ͯΔ ×ŋŋŋ

    View Slide

  23. ߦྻΛର৅ʹͨ͠ܭࢉ
    •  ߦྻʹ͢Δ͜ͱͰɺߦྻΛର৅ʹͨ͠ܭࢉ͕࢖͑Δ
    •  ྫŋŋŋಛҟ஋෼ղ 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 の自己相関行列の固有ベクトルを用いて分解。Σに特異値

    View Slide

  24. ͭ·Γŋŋŋ
    •  ਺ֶతʹ͸ŋŋŋ
    –  จॻ܈Λ୯ޠจॻߦྻͱͯ͠දݱ͢Δ
    –  ߦྻͱͯ͠දݱͰ͖Ε͹47%Ͱ෼ղͰ͖Δ
    –  47%Ͱ෼ղ͢Δͱɺಛҟ஋͕ɻಛҟ஋Ͱ௿ϥϯΫۙࣅͳͲ͕Ͱ͖Δ
    •  ϓϩάϥϜతʹ͸ŋŋŋ
    –  ୯ޠจॻߦྻΛ࣍ݩ഑ྻͱͯ͠දݱ͢Δ
    –  47%ͷܭࢉΛద༻͢Δ
    –  ௿ϥϯΫۙࣅΛ͢Δ͜ͱͰܭࢉྔΛݮΒͨ͠Γɺ࣍ݩѹॖͨ͠Γ͢Δ͜ͱ͕Ͱ͖Δ

    View Slide

  25. 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 ]])

    View Slide

  26. જࡏతҙຯΠϯσΫγϯά -BUFOU4FNBOUJD*OEFYJOH

    •  จॻϕΫτϧۭؒͷ࣍ݩΛѹॖ͢Δ
    –  ʮDBSʯͰݕࡧͨ͠ΒʮBVUPNPCJMFʯ΋ώοτ͢ΔΑ͏ʹ
    –  47%ͰߦྻΛ෼ղ͠ɺಛҟ஋ʹԠͯ͡ߦྻͷ֊਺ΛԼ͛Δ
    –  ϕΫτϧۭ͕ؒ௿࣍ݩͷۭؒʹࣹӨ͞ΕΔɻ͜ͷͱ͖୯ޠͷજࡏతҙຯ͕
    ѹॖ͞ΕΔ
    •  $6Є7UͷЄΛߏ੒͢Δಛҟ஋ͷ͏ͪ஋͕খ͞ͳ෺Λʹ
    –  ϥϯΫ ֊਺
    ͕Լ͕Δجఈͷ਺͕ݮΔ
    •  ЄˠЄ
    L
    •  $
    L

    L
    7U
    –  ॏཁͳجఈ͚ͩΛ࢒ͯ͠খ͞ͳߦྻʹۙࣅͨ͜͠ͱʹͳΔ
    –  খ͘͞ͳͬͨ$
    L
    ʹɺ͍ͭ΋ͷίαΠϯྨࣅ౓ͳͲ

    View Slide

  27. ௚ײతΠϝʔδ
    •  ϕΫτϧۭؒͷجఈΛม׵ͯ͠৘ใྔͷগͳ͍࣠͸ແࢹ͢Δ

    View Slide

  28. -4*͕΍͍ͬͯΔ͜ͱ
    •  දݱྗ͕๛෋͗ͯ͢จॻΛৄࡉ·ͰදݱͰ͖͗ͯ͢ɺຊདྷࣅ͍ͯΔ
    จॻ΋ҧͬͨจॻͱͯ͠දݱͰ͖ͯ͠·͏
    •  ॏཁ౓ͷ௿͍৘ใΛ࡟ݮˠࣅͯΔจॻͷྨࣅ౓Λ্͛Δ
    cf: 潜在的意味インデキシング(LSI)徹底入門
    h7ps://deepage.net/bigdata/machine_learning/2016/08/28/fast_text_facebook.html

    View Slide

  29. ೉͍͜͠ͱΛ͍Ζ͍Ζड़΂·͕ͨ͠ŋŋŋ
    •  ࣗવݴޠˠߦྻˠ਺ֶˠσʔλߏ଄ ೋ࣍ݩ഑ྻ
    ˠΞϧΰϦ
    ζϜ
    –  จॻΛ୯ޠϕΫτϧͰදݱ͠ɺϕΫτϧͷू߹ΛߦྻͰදݱ͢Δ
    –  ͢Δͱɺ-4*ͷΑ͏ͳख๏Λ࢖ͬͯྨࣅจॻΛൃݟͨ͠ΓͰ͖Δ
    •  ϥΠϒϥϦ -4*
    ͕ཁٻ͢Δσʔλߏ଄ ୯ޠจॻߦྻ
    Λೖྗͯ͠
    ݁ՌΛಘͨɺΈ͍ͨͳײ͡ ࡶ

    View Slide

  30. /.' /POOFHBUJWF.BUSJY'BDUPSJ[BUJPO

    •  ඇෛ஋ߦྻΛͭͷඇෛ஋ߦྻʹҼࢠ෼ղ͢ΔΞϧΰϦζϜ
    –  Ͳ͏΍ͬͯ෼ղ͢Δ͔͸ޙड़
    •  ΋ͱͷߦྻ͕࣋ͭજࡏཁૉ ಛ௃
    ΛᖰΓग़͢
    X = WF
    = x
    文書
    単語
    文書
    特徴
    特徴
    単語
    X W F
    ಛ௃͕จॻʹରͯ͠Ͳ
    ͷఔ౓ॏཁ͔ͷॏΈ
    ୯ޠ͕ಛ௃ʹରͯ͠Ͳ
    ͷఔ౓ॏཁ͔ͷॏΈ

    View Slide

  31. /.'ͰςΩετϚΠχϯά
    •  ΫΤϦ ୯ޠͷू߹
    ͔Βؔ࿈͢ΔจॻΛಘ͍ͨͳΒŋŋŋ
    –  '͔Β୯ޠू߹ͱద߹͢Δಛ௃ϕΫτϧ ߦ
    ΛಘΔ
    –  ࣍ʹ8͔Βಛ௃ϕΫτϧʹద߹͢ΔߦΛબͿ
    = x
    文書
    単語
    文書
    特徴
    特徴
    単語
    X W F
    ୯ޠ͕ಛ௃ʹରͯ͠Ͳ
    ͷఔ౓ॏཁ͔ͷॏΈ
    ಛ௃͕จॻʹରͯ͠Ͳ
    ͷఔ౓ॏཁ͔ͷॏΈ

    View Slide

  32. Ҽࢠ෼ղͷ΍Γํ
    •  98'ͷ8ɺ'ͷશཁૉΛϥϯμϜͳਖ਼ͷ஋ͰຒΊΔ
    •  શཁૉΛߋ৽͠ͳ͕Β൓෮ܭࢉ
    •  ཁૉͷ஋ͷߋ৽ͷͨͼɺ9ͱ8'ͷڑ཭Λܭࢉ
    –  ڑ཭ŋŋŋೋ৐ޡࠩ΍,-μΠόʔδΣϯε
    •  ڑ཭͕ʹͳΔ͔ɺ༧ΊܾΊͨճ਺͚ͩߋ৽ΛߦͬͨΒऴΘΓ

    View Slide

  33. ୯ޠYจॻҎ֎ʹ΋
    •  ঎඼ΛߦɺྻʹങͬͨϢʔβʔɺཁૉ͕ߪೖ͔ͨ͠Ͳ͏͔
    –  ঎඼ͷϨίϝϯυ
    –  ࣅͨΑ͏ͳ঎඼ΛങͬͯΔϢʔβʔͷϨίϝϯυ
    •  ۂΛߦɺྻʹϢʔβʔɺཁૉ͕ϨϏϡʔͷ஋
    –  ಉ͡Α͏ͳϢʔβʔ͸ಉ͡Α͏ͳۂΛ޷ΉˠۂͷϨίϝϯυ
    ͦͷଞख๏Ͱ΋ߟ͑ํ͸Ұॹ
    ϕΫτϧ΍ߦྻʹͯ͠ɺͦΕΛର
    ৅ʹܭࢉͰϨίϝϯυ

    View Slide

  34. (PPHMFͷ1BHF3BOL
    •  ΢ΣϒάϥϑΛߦྻͱͯ͠දݱ͠ɺߦྻͷओݻ༗ϕΫτϧΛٻΊΔ
    –  ཁૉ͕ϦϯΫΛḷΔ֬཰ɻ֬཰ߦྻ
    –  ݻ༗ϕΫτϧŋŋŋઢܗม׵ͷಛ௃Λද͢ϕΫτϧ
    –  ओݻ༗ϕΫτϧࢉग़͸΂͖৐ଇʹΑΓܭࢉྔΛ࡟ݮͰ͖Δ
    –  ओݻ༗ϕΫτϧͷ੒෼͕ɺΫΤϦʹର͢Δจॻͷద߹౓ 1BHF3BOL

    ※ 現在の検索アルゴリズムは単純な PageRank のみよりも遙かに複雑な計算が行われています

    View Slide

  35. ΍ͬͺΓɺվΊͯ
    •  ҎԼ͸ಉ͡ߟ͑ํ
    –  ϓϩάϥϛϯάŋŋŋσʔλߏ଄ʹରͯ͠खଓ͖ͷΠϯλϑΣʔεΛ༻
    ҙ͢Δɻσʔλߏ଄ʹϞσϧԽͰ͖Ε͹ͦͷखଓ͖͕࢖͑Δ
    –  ୅਺ֶŋŋŋϕΫτϧ΍ߦྻͱ͍͏ߏ଄ʹϞσϧԽ͢ΔɻϕΫτϧ΍ߦ
    ྻͷԋࢉ͕࢖͑Δ

    View Slide

  36. ઢܗ୅਺ͷ࿩͕ओͰ͕ͨ͠ŋŋŋ
    •  ͨͱ͑͹ɺର৅Λ֬཰෼෍Ͱදݱ͢Δ㱺֬཰౷ܭֶతͳख๏ΛԠ
    ༻Ͱ͖Δ
    •  ࣗવݴޠॲཧͳΒŋŋŋྫ֬཰తݴޠϞσϧ
    Md1
    d1
    Md2
    d2
    Mdn
    d2
    ・・・
    文書コレクション
    (M はモデル)
    クエリ
    情報要求
    )
    |
    (
    d
    M
    Q
    P
    生成

    View Slide

  37. ۙ೥ͷ࿩୊

    View Slide

  38. ୯ޠΛϕΫτϧͰŋŋŋ8PSE7FD
    •  จॻͰ͸ͳ͘
    ୯ޠΛϕΫτϧԽͯ͠දݱ͢Δख๏࣮૷
    •  ͻͱͭͷ୯ޠΛ࣍ݩ͙Β͍ͷϕΫτϧͱͯ͠දݱ͢Δ
    source: Facebookが公開した10億語を数分で学習するfastTextで一体何ができるのか
    h7ps://deepage.net/bigdata/machine_learning/2016/08/28/fast_text_facebook.html
    ୯ޠͷ෼ࢄදݱ

    View Slide

  39. 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
    ୯ޠϕΫτϧͷՃࢉɺ
    ݮࢉ͕ఆٛ͞Ε͍ͯΔ

    View Slide

  40. 8PSE7FDͷཧ࿦తੑ࣭
    •  8PSE7FDͷਖ਼ମ͸ɺӅΕ૚ͱग़ྗ૚ͷ૚͔ΒͳΔ୯७ͳχϡʔ
    ϥϧωοτϫʔΫ
    •  ୯ޠͷϕΫτϧදݱ͸ωοτϫʔΫͷॏΈͦͷ΋ͷ
    source: Word2Vec のニューラルネットワーク学習過程を理解する
    h7p://tkengo.github.io/blog/2016/05/09/understand-how-to-learn-word2vec/

    View Slide

  41. 8PSE7FD͔Β%PD7FDɺ*UFN7FD΁
    •  ෼ࢄදݱΛԠ༻
    –  8PSE7FDͷ୯ޠ෼ࢄදݱͰจॻϕΫτϧΛߏஙˠ%PD7FD
    –  ෼ࢄදݱͰ*UFN ঎඼FUD
    Λߏஙˠਪનɺ෼ྨ
    –  σΟʔϓϥʔχϯάͷૉੑʹ࢖͑ΔͨΊେਓؾ
    •  ྫϦΫϧʔτςΫϊϩδʔζ஑ాࢯ
    IUUQXXXTMJEFTIBSFOFUSFDSVJUDPKQTT
    –  ߦಈϩάΛ୯ޠͱΈͳ͠8PSE7FDͰϕΫτϧԽɺίαΠϯྨࣅ౓Ͱ
    Ϩίϝϯυͨ͠ͱ͜Ζਫ਼౓޲্͕ݟΒΕͨͱͷ͜ͱ

    View Slide

  42. ϕΫτϧԽΛߟ͑Δ
    •  #BHPG8PSETͰ͸୯ޠ͸εΧϥʔ
    –  จॻϕΫτϧŋŋŋ୯ޠ εΧϥʔ
    ͷू߹ŋŋŋ୯ޠͷ഑ྻ
    –  ϓϩάϥϛϯάతࢹ࠲ŋŋŋ഑ྻͱ͍͏ɺϓϦϛςΟϒͳσʔλߏ଄

    •  8PSE7FDͰ͸୯ޠ͸෼ࢄදݱ
    –  ΑΓෳࡶͳߏ଄
    –  ϓϩάϥϛϯάతࢹ࠲ŋŋŋΑΓߴ౓ͳσʔλߏ଄

    View Slide

  43. σʔλߏ଄ɺखଓ͖
    •  ϓϩάϥϛϯά
    –  ΑΓෳࡶͳσʔλߏ଄Ͱ͸ΑΓෳࡶͳϞσϧΛදݱͰ͖Δ
    –  σʔλߏ଄ʹ߹Θͤͨखଓ͖Λఆٛ͢Δ͜ͱͰɺ՝୊ΛղܾͰ͖Δ
    ϕΫτϧ΍ߦྻ ߏ଄

    ͱࢉज़ खଓ͖
    ͷؔ
    ܎ੑͱطࢹײ

    View Slide

  44. ݸਓతͳ࿩

    View Slide

  45. ਺ֶ͸ۤखͰͨ͠
    •  খதߴͱ਺ֶ͸੒੷͕Ұ൪ѱ͍
    •  ੺఺Λऔͬͨ͜ͱ΋ŋŋŋ
    •  ߦྻͰͭ·͍ͮͨ

    View Slide

  46. ॻ੶*OUSPEVDUJPOUP*OGPSNBUJPO3FUSJFWBM
    ݕࡧΤϯδϯͷษڧΛ͠Α͏ͱࢥͬͨΒߦྻ͕ŋŋŋͭΒ͍
    ͜ͷͱ͖ࡀ

    View Slide

  47. ԕࢁܒʰ਺ֶೖ໳ʱ

    View Slide

  48. ͔ͭͯͷ਺ֶͱ·ͬͨ͘ҟͳΔҹ৅
    •  ਺ֶֶ͕ੜͷͱ͖ʹ৮Εͨ΋ͷͱશ͘ผͷֶ໰ʹײͨ͡
    –  ܭࢉ͸ී௨ͷࢉज़Ͱ͸਺ʹΑͬͯߦΘΕɺ୅਺ֶऀͷؒͰ͸จࣈʹ
    ΑͬͯߦΘΕΔɻ͍ͣΕ΋ಉ͡ݪཧͷ্ʹ͖͔ͣΕ͓ͯΓɺಉ͡໨త
    Λ΋͍ͬͯΔ͕ɺࢉज़͸ҰఆͰಛघͰ͋Γɺ୅਺͸ෆఆͰීวతͰ͋
    Δ
    –  ਺ΛͨͩͳΒ΂Δ͚ͩͰ͸ɺ͜ͱ৽͘͠ߦྻͱ͍͏΋ͷΛߟ͑Δޮೳ
    ͸ͳ͍ɻߦྻͲ͏͠ͷ͍͋ͩʹ͏·͘ Y ×ͷԋࢉΛߟ͑ΔΑ͏ʹ
    ͳͬͯɺ͸͡ΊͯߦྻͷҖྗ͕Θ͔ͬͯ͘ΔͷͰ͋Δ

    View Slide

  49. ϓϩάϥϛϯάͱͷطࢹײ
    •  ϕΫτϧɺߦྻŋŋŋ
    –  ʮ਺Λ·ͱΊ͔ͯ͋ͭ͏ŋŋŋ͜Εσʔλߏ଄ͷ͜ͱͩΘʯ
    •  " #͕ͨͩͷ਺Ͱ͸ͳ͘ߦྻͱ͍͏ෳࡶͳߏ଄Λ΋ͬͨ਺ͷ૊Έ
    ߹ΘͤͰ͋ͬͯ΋ɺ"#ɺ"#ɺ"#ͱ͔͚͹ɺ͔͋ͨ΋ࠓ·Ͱͷ
    ਺Ͱ͋Δ͔ͷΑ͏ʹߟ͑ͯɺࣅͨΑ͏ͳํ๏Ͱܭࢉ͕Ͱ͖ΔΘ͚Ͱ
    ͋Δ
    –  ҟͳΔσʔλߏ଄ʹ΋ಉ͡ΠϯλϑΣʔε ܭࢉ
    Λఆٛ͢Ε͹ͦΕΒ
    ΛಉҰࢹͰ͖Δ
    –  ʮ͜ΕμοΫλΠϐϯά ϙϦϞʔϑΟζϜ
    ͩɻͦ͏͔ɺந৅Խ͔ʯ

    View Slide

  50. ࣗ෼ʹͱͬͯͷϓϩάϥϛϯάͱ਺ֶͷ઀఺ɺͦͷೖΓޱ
    •  ର৅ͷ໰୊ͷσʔλߏ଄Λଊ͑Δ ϞσϧԽ

    •  ϕΫτϧɺߦྻŋŋŋˠ਺ֶ ઢܗ୅਺FUD
    ΁ͷ໳͕։͘
    •  ਺ֶͷੈք΁໰୊Λඈ͹ͤ͹ɺ૝૾ྗͷݶքΛಥഁͰ͖Δ
    –  ສ࣍ݩͷϕΫτϧۭؒ͸૝૾͸Ͱ͖ͳ͍͕ɺ਺ֶͳΒͦΕΛѻ͏͜
    ͱ͕Ͱ͖Δ

    View Slide

  51. ·ͱΊ ݴ͍͔ͨͬͨ͜ͱ

    •  ϓϩάϥϛϯάͱ਺ֶͷ઀఺͸ࢥͬͯΔΑΓ೉͘͠ͳ͍
    –  ࠓճ͸ઢܗ୅਺ΛςʔϚʹ
    –  ֩ʹͳΔͷ͸σʔλߏ଄ ϕΫτϧɺߦྻ

    –  ϓϩάϥϛϯάͱ਺ֶͷੈքΛڮ౉͢͠Δͷ͕Ϟσϧ
    •  8FCϓϩάϥϚతͳʮৄࡉ͸Α͘Θ͔Βͳ͍͚Ͳ"1*ݺ΂͹݁Ռ
    ͸खʹೖΔͰ͠ΐʯͰ΋࠷ॳ͸͍͍ͱࢥ͏
    –  ͦΕ͕͖͔͚ͬʹͳͬͯɺ஌ࣝཉ͕෸͘
    •  ֶੜͷͱ͖ʹ΍ͬͨ਺ֶ ܭࢉͷ܇࿅
    ΑΓɺڵຯ͕࣋ͯΔ͸ͣ

    View Slide

  52. ͋Γ͕ͱ͏͍͟͝·ͨ͠

    View Slide

  53. ࢀߟจݙ
    •  $%.BOOJOH 13BHIBWBO )4DIVU[Fʰ*OUSPEVDUJPOUP
    *OGPSNBUJPO3FUSJFWBMʱ $BNCSJEHF6OJWFSTJUZ1SFTT
    •  5PCZ4FHSBO ஶ
    ᙛࢁਔ݈ יᖒᚸ෉ ຋༁
    ʰू߹஌ϓϩάϥ
    ϛϯάʱ ΦϥΠϦʔδϟύϯ
    •  ۚ୩݈Ұʰ͜ΕͳΒ෼͔ΔԠ༻਺ֶڭࣨʕ࠷খೋ৐๏͔Β΢Σʔϒ
    Ϩοτ·Ͱʱ ڞཱग़൛
    •  ԕࢁܒʰ਺ֶೖ໳্ʱ ؠ೾৽ॻ
    •  ԕࢁܒʰ਺ֶೖ໳Լʱ ؠ೾৽ॻ

    View Slide