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

Wantedly の機械学習プロダクト開発を支える機械学習基盤 / #d3m

Nao Minami
November 06, 2018

Wantedly の機械学習プロダクト開発を支える機械学習基盤 / #d3m

Data Driven Developer Meetup (通称 D3M)で「Wantedly の機械学習プロダクト開発 を支える機械学習基盤」について発表しました!
以前 Rejectcon で発表した内容を中心にまとめています!
https://d3m.connpass.com/event/104858/

Nao Minami

November 06, 2018
Tweet

More Decks by Nao Minami

Other Decks in Technology

Transcript

  1. ©2018 Wantedly, Inc. /BP.JOBNJ *OGSBTUSVDUVSF&OHJOFFS 8BOUFEMZ *OD (JU)VCTPVUI 5XJUUFSTPVUI 8BOUFEMZͰػցֶशج൫ͷվળʹऔΓ૊Ή

     43&ͱͯ͠ͷ໾ׂʢαʔϏεͷ৴པੑʹ੹೚ʣ  ։ൃج൫ͱͯ͠ͷ໾ׂʢΤϯδχΞͷੜ࢈ੑʹ੹೚ʣ
  2. ©2018 Wantedly, Inc. 8BOUFEMZʹ͓͚Δػցֶशͷ׆༻ w 8BOUFEMZ7JTJU w Ϣʔβʔʹର͢Δʮاۀͷืूʯͷਪન w اۀʹର͢Δʮީิऀʯͷਪન

    w 8BOUFEMZ1FPQMF w ໊ࢗը૾ಡΈऔΓϩδοΫ w Ϣʔβʔಉ࢜ͷͭͳ͕ΓਪఆϩδοΫ w ࿩୊هࣄ͔Βͷݻ༗දݱநग़ w ࿩୊هࣄͷύʔιφϥΠζ w FUD
  3. ©2018 Wantedly, Inc. 8BOUFEMZʹ͓͚Δػցֶशͷ׆༻ w 8BOUFEMZ7JTJU w Ϣʔβʔʹର͢Δʮاۀͷืूʯͷਪન w اۀʹର͢Δʮީิऀʯͷਪન

    w 8BOUFEMZ1FPQMF w ໊ࢗը૾ಡΈऔΓϩδοΫ w Ϣʔβʔಉ࢜ͷͭͳ͕ΓਪఆϩδοΫ w ࿩୊هࣄ͔Βͷݻ༗දݱநग़ w ࿩୊هࣄͷύʔιφϥΠζ w FUD
  4. ©2018 Wantedly, Inc. 8BOUFEMZʹ͓͚Δػցֶशͷ׆༻ w 8BOUFEMZ7JTJU w Ϣʔβʔʹର͢Δʮاۀͷืूʯͷਪન w اۀʹର͢Δʮީิऀʯͷਪન

    w 8BOUFEMZ1FPQMF w ໊ࢗը૾ಡΈऔΓϩδοΫ w Ϣʔβʔಉ࢜ͷͭͳ͕ΓਪఆϩδοΫ w ࿩୊هࣄ͔Βͷݻ༗දݱநग़ w ࿩୊هࣄͷύʔιφϥΠζ w FUD
  5. ©2018 Wantedly, Inc. Ϣʔβʔಉ࢜ͷͭͳ͕Γਪఆ w ʮϓϩμΫτʹ͸ଘࡏ͠ͳ͍͕ɺݱ࣮Ͱ͸ଘࡏ ͢Δͭͳ͕ΓʯΛਪఆ͢Δ "͞Μ $͞Μ #͞Μ

    w ྫ"͞Μͱ$͞Μ͸#͞Μͱ͍͏ڞ௨ͷͭͳ͕Γ͕ ଘࡏ͢ΔͷͰɺݱ࣮Ͱ͸࣮͸ܨ͕͍ͬͯΔ͔΋ʁ w 'BDFCPPL΍-JOLFEJO΋ɺͭͳ͕ΓਪఆΛͯ͠ʮ஌Γ ߹͍Ͱ͸ʁʯػೳΛ࡞͍ͬͯΔ
  6. ©2018 Wantedly, Inc. ͭͳ͕ΓਪఆϩδοΫ w %FFQ8BMLͱ͍͏ख๏Λར༻ w άϥϑʢͭͳ͕ΓΛ൓өͨ͠σʔλߏ଄ʣͷ্ΛϥϯμϜʹભҠ͢ΔϥϯμϜ΢ΥʔΫͱɺ 8PSEWFDͷ4LJQ(SBNΛ૊Έ߹ΘͤΔख๏ w

    ϥϯμϜ΢ΥʔΫͰಘΒΕͨܥྻΛֶशσʔλͱͯ͠8PSEWFDʹΑΔֶश΁ར༻ w άϥϑߏ଄Λ൓өͨ͠WFDUPSΛOPEF͝ͱʹੜ੒ w ࣅͨWFDUPSΛ࣋ͭOPEFಉ࢜͸ͭͳ͕͍ͬͯΔՄೳੑ͕ߴ͘ɺͭͳ͕Γͷਪఆ͕Մೳ w ޿ൣғͳάϥϑߏ଄Λ൓өͭͭ͠ɺܭࢉྔΛݱ࣮తͳྔʹ཈͑Δࣄ͕Ͱ͖Δ ϥϯμϜ΢ΥʔΫ ߴਫ਼౓ͷͭͳ͕ΓਪఆΛݱ࣮తͳܭࢉྔ Ͱ࣮ݱ
  7. ©2018 Wantedly, Inc. 8BOUFEMZʹ͓͚Δػցֶशͷ׆༻ʢ࠶ܝʣ w 8BOUFEMZ7JTJU w Ϣʔβʔʹର͢Δʮاۀͷืूʯͷਪન w اۀʹର͢Δʮީิऀʯͷਪન

    w 8BOUFEMZ1FPQMF w ໊ࢗը૾ಡΈऔΓϩδοΫ w Ϣʔβʔಉ࢜ͷͭͳ͕ΓਪఆϩδοΫ w ࿩୊هࣄ͔Βͷݻ༗දݱநग़ w ࿩୊هࣄͷύʔιφϥΠζ w FUD
  8. ©2018 Wantedly, Inc. 8BOUFEMZʹ͓͚Δػցֶशͷ׆༻ w 8BOUFEMZ7JTJU w ਓʹର͢Δʮاۀͷืूʯͷਪન w اۀʹର͢Δʮީิऀʯͷਪન

    w 8BOUFEMZ1FPQMF w ໊ࢗը૾ಡΈऔΓϩδοΫ w Ϣʔβʔಉ࢜ͷͭͳ͕ΓਪఆϩδοΫ w ࿩୊هࣄͷύʔιφϥΠζ w FUD ༷ʑͳλεΫͰػցֶशΛ׆༻ʂ
  9. ©2018 Wantedly, Inc. σʔλΛஷΊΔج൫ w ͋ΒΏΔϩά΍σʔλΛ#JH2VFSZʹू໿ w ϩά΍σʔλू໿༻ͷج൫͕੔͍ͬͯΔ w (P

    3VCZͳͲ֤ݴޠ༻ͷMPHHFSMJCSBSZ qVFOUE w σʔλϕʔεͷσʔλಉظδϣϒ w ͋ΒΏΔϩά΍σʔλΛू໿ w Ϣʔβʔߦಈϩά w Πϕϯτϩά w σʔλϕʔεͷσʔλ w ֎෦࿈ܞαʔϏεʢFH4BMFTGPSDF ;FOEFTLʣͷσʔλ w ֤छΠϯϑϥϝτϦΫεʢ"QQMJDBUJPOMPH LVCFSOFUFTDMVTUFSMPH FUDʣ w FUD
  10. ©2018 Wantedly, Inc. σʔλج൫·ͱΊ w σʔλΛஷΊΔج൫ w #JH2VFSZ w ֤छMPHHFSMJCSBSZ

    w σʔλಉظδϣϒ w 4 w σʔλΛ࢖͏ج൫ w #JH2VFSZ 4ΛػցֶशΤϯδχΞʹར༻ͯ͠΋Β͏ w "OBMZUJDTαʔϏεPO,VCFSOFUFT σʔλΛ׆༻Ͱ͖Δσʔλج൫
  11. ©2018 Wantedly, Inc. w ࠓ೥͔Β"NB[PO4BHF.BLFSΛಋೖ w "NB[PO4BHF.BLFS͸ʮ։ൃʯʮֶशʯʮσϓϩΠʯ͕ߦ͑ΔػցֶशϓϥοτϑΥʔϜ w ֤εςοϓ͝ͱʹઐ༻ͷJOTUBODFΛཱͯͯར༻ w

    ։ൃ༻ͷίετͷ௿͍/PUFCPPL*OTUBODFΛਓ͕઎༗ͯ͠ར༻ɻTBHFNBLFSTELΛ௨ ֶͯ͠श։࢝͢Δͱ5SBJOJOH*OTUBODF͕ద੾ͳ෼͚ͩىಈɻ w *".Ͱద੾ʹݖݶઃఆɻ/PUFCPPL*OTUBODFͷىಈTDSJQUͰηοτΞοϓɻ w EPDLFSDPOUBJOFSΛར༻ֶͯ͠शͰ͖Δɻ؀ڥ͸͔ͳΓࣗ༝౓Λ࣋ͬͯ࡞ΕΔɻ w ༷ʑͳϝϦοτ w ։ൃֶशʹར༻ɻ؀ڥηοτΞοϓͷίετ͕େ෯ʹݮͬͨɻ w ֶशऴྃޙʹ(16JOTUBODF͕উखʹTUPQ͢ΔͷͰɺ໘౗ͳӡ༻͕ෆཁʹͳͬͨ w "NB[PO4BHF.BLFSʹ͍ͭͯ͸ɺͷ"84%FW%BZͰ࿩ͨ͠ͷͰৄࡉ͸ͪ͜Βʂ ։ൃֶश؀ڥ IUUQTTQFBLFSEFDLDPNTPVUIOVNCFSBXTEFWEBZ
  12. ©2018 Wantedly, Inc. w ֶश؀ڥ͸ɺ͔ͳΓʮࣗ༝౓ʯ͕͋Δ w ֶश΋EFQMPZ΋શͯEPDLFSDPOUBJOFSΛར༻͍ͯ͠ΔͷͰɺࣗ෼Ͱ%PDLFSpMF Λ༻ҙ͢Ε͹ͲΜͳ؀ڥͰ΋ಈ͔ͤΔ w 5FOTPS'MPX

    1Z5PSDI TDJLJUMFBSOͳͲɺϓϩδΣΫτʹΑͬͯϥΠϒϥϦ΋ҧ͏ɻ ຊਓͷशख़౓ͳͲ༷ʑͳཁҼͰ࢖͏΋ͷ͸มߋՄೳɻ ։ൃֶश؀ڥ
  13. ©2018 Wantedly, Inc. w DPPLJFDVUUFSNMUFNQMBUFͰ։ൃΛߴ଎Խ w ػցֶशϓϩδΣΫτΛ܁Γฦ͢͠͏ͪʹɺࣾ಺ϕετϓϥΫςΟε͕ݟ͖͑ͯͨ w SFQPTJUPSZͷTFUVQॲཧΛANBLFCPPUTUSBQAʹ౷Ұ w

    ֶशσʔλΛ4ͱ΍ΓͱΓ͢ΔͨΊͷπʔϧΛར༻ w %PDLFSpMFΛར༻ w ֶशͷFOUSZQPJOUΛANBLFUSBJOAʹ౷Ұ w ධՁͷFOUSZQPJOUΛATDSJQUFWBMVBUFAʹ౷Ұ w ֶश࣌ͱਪ࿦࣌ͷલॲཧNPEVMFΛ౷Ұ w "1*TFSWFSͷUFNQMBUF࣮૷Λར༻ w ϕετϓϥΫςΟεͷపఈ։ൃޮ཰Խͷҝʹɺࣾ಺༻DPPLJFDVUUFSNMUFNQMBUFΛ༻ҙ w ։ൃ΍ֶशɺͦͷޙͷϑϩʔ͕ߴ଎Խʂ ։ൃֶश
  14. ©2018 Wantedly, Inc. w DPPLJFDVUFSUFNQMBUFͰ։ൃΛߴ଎Խ w ػցֶशϓϩδΣΫτΛ܁Γฦ͢͠͏ͪʹɺࣾ಺ϕετϓϥΫςΟε͕ݟ͖͑ͯͨ w SFQPTJUPSZͷTFUVQॲཧΛANBLFCPPUTUSBQAʹ౷Ұ w

    ֶशσʔλΛ4΁഑ஔɺ4͔ΒSFQPTJUPSZ΁μ΢ϯϩʔυ΍ٯʹ4΁Ξοϓϩʔυ ͢ΔͨΊͷπʔϧΛར༻ w %PDLFSpMFͷར༻ w ֶशͷFOUSZQPJOUΛANBLFUSBJOAʹ౷Ұ w ධՁͷFOUSZQPJOUΛATDSJQUFWBMVBUFAʹ౷Ұ w ֶश࣌ͱਪ࿦࣌ͷલॲཧNPEVMFΛ౷Ұ w "1*TFSWFSͷUFNQMBUF࣮૷Λར༻ w ϕετϓϥΫςΟεͷపఈπʔϧར༻؆ศԽͷҝʹɺDPPLJFDVUUFSUFNQMBUFΛ༻ҙͨ͠ ֶश ։ൃֶश؀ڥͷ੔උ͕ਐΜͩ
  15. ©2018 Wantedly, Inc. P⒐JOFධՁσʔλ؅ཧ༻ͷࣗࣾ੡044ʮFWʯ w FWFWBMVBUJPOEBUBNBOBHFNFOUUPPMɻFW͸ͭͷػೳΛఏڙɻ PGGMJOFධՁͷϨʔϧ ֶशޙͷP⒐JOFධՁσʔλ؅ཧ w FWDMJ

    IUUQTHJUIVCDPNXBOUFEMZFWDMJ ͕࣮૷ w P⒐JOFධՁ݁ՌΛϞσϧͷόʔδϣϯɺϋΠύʔύϥϝʔλɺֶशσʔλͷόʔδϣϯͱͱ ΋ʹอଘ͢Δʢ࠶ݱੑͷ͋ΔܗͰධՁ݁ՌΛอଘʣ ఆظతͳNBTUFSCSBODIͰͷP⒐JOFධՁ࣮ߦ w FWKPCHFO IUUQTHJUIVCDPNXBOUFEMZFWKPCHFO ͕࣮૷ w ຖ೔NBTUFSCSBODIͰP⒐JOFධՁͷ࣮ߦͱධՁ݁ՌͷอଘΛߦͬͯɺվળͷྺ࢙Λ࢒͢
  16. ©2018 Wantedly, Inc. FWKPCHFOͷػೳ w P⒐JOFධՁͱFWDMJΛఆظ࣮ߦ͢Δ ,VCFSOFUFT$SPO+PCΛొ࿥ w :BNMͰ࠷খͷఆٛΛॻ͘ͱɺP⒐JOFධՁͱFWDMJΛ࣮ߦ͢Δ$SPO+PC͕ొ࿥͞ΕΔ w

    ຖ೔֤.-SFQPTJUPSZͷNBTUFSͰͷP⒐JOFධՁ݁ՌΛ࢒͠ଓ͚Δ $SPO+PC" $SPO+PC# FWKPCHFO ొ࿥ ొ࿥ ܧଓతͳϞσϧධՁͷ ج൫͕੔උ͞Εͨ
  17. ©2018 Wantedly, Inc. w "1*4FSWFSʹ͸,VCFSOFUFTΛར༻ w ϝϦοτΠϯϑϥΤϯδχΞ͕શؔ͘༩ͤͣʹ৽͍͠"1*TFSWFSΛݐͯΒΕΔ w ඞཁͳͷ͸ֶशࡁΈϞσϧͱ4FSWFS࣮૷ͱ%PDLFSpMFͱϚχϑΣετϑΝΠϧͷΈ w

    ͞Βʹɺ4FSWFS࣮૷ͷେ෦෼͸DPPLJFDVUUFSNMςϯϓϨʔτͰఏڙ w ϚχϑΣετϑΝΠϧ΋ɺࣾ಺ςϯϓϨʔτ͕ଘࡏ w EFQMPZखॱͷυΩϡϝϯτ΋੔උ͞Ε͓ͯΓɺEFQMPZ༻ͷศརͳࣾ಺πʔϧ΋ଘࡏ "1*TFSWFSΛ༻ҙ͢Δํ๏ .-DBUFHPSJ[FS .-SFDPNNFOEFS" .-SFDPNNFOEFS#
  18. ©2018 Wantedly, Inc. ิ଍,VCFSOFUFTͱ͸ w ,VCFSOFUFT͸ίϯςφΦʔέετϨʔγϣϯ πʔϧ w %PDLFSDPOUBJOFSΛΫϥελͷOPEFʹׂΓ౰ͯͯ͘ΕΔ w

    Ϋϥελ͕Ұ౓ߏங͞ΕΕ͹ɺ༷ʑͳDPOUBJOFSΛ؆୯ʹಈ͔͢ࣄ͕Ͱ͖Δ w Φʔτεέʔϧͯ͠ɺෛՙʹରͯ͠ॊೈʹରԠ͢Δࣄ΋Մೳ w 8BOUFEMZͰ͸ɺ,VCFSOFUFTΫϥελ্ʹϚΠΫϩαʔϏεΛߏங͍ͯ͠Δʢ໿αʔϏεʣ 4FSWJDF" 4FSWJDF# 4FSWJDF$
  19. ©2018 Wantedly, Inc. w (16JOTUBOUFͰ૊Μͩ,VCFSOFUFTDMVTUFS ΋༻ҙ͍ͯ͠Δ w σΟʔϓϥʔχϯάͳͲ(16Λ࢖͏λεΫͰ͋ͬͯ΋ɺ,VCFSOFUFTDMVTUFS΁؆୯ʹσ ϓϩΠͰ͖Δ w

    $SPO+PCͰͷֶशɾਪ࿦ʹར༻ w (PPHMF,VCFSOFUFT&OHJOFΛར༻ ,VCFSOFUFTDMVTUFSͷ؀ڥ %FFQ-FBSOJOH4FSWJDF" %FFQ-FBSOJOH4FSWJDF# ,VCFSOFUFTΛ׆༻ͯ͠ σϓϩΠج൫͸੔උ
  20. ©2018 Wantedly, Inc. 8BOUFEMZͷػցֶशج൫ w σʔλج൫ʜ#JH2VFSZ 4 "OBMZUJDT w ֶशʜ(16JOTUBODF

    4BHF.BLFS w ධՁʜFW #JH2VFSZ %0.0 w σϓϩΠʜ,VCFSOFUFT (16DMVTUFS  w ܭଌʜϩάܭଌ "#UFTU %0.0 ػցֶशج൫ͷ্Ͱ ܧଓతͳվળΛ࣮ݱ
  21. ©2018 Wantedly, Inc. w σʔλج൫ʜ#JH2VFSZ 4 w σʔλ෼ੳ؀ڥΛ੔͑ΔͨΊ೥ʹ5SFBTVSF%BUBɺ೥ʹ#JH2VFSZಋೖ w ։ൃֶशʜ"NB[PO4BHF.BLFS

    w ೥ʹ"NB[PO4BHF.BLFSΛಋೖ w ධՁʜFW w ೥͔ΒFWΛ։ൃɺಋೖͯ͠ϨʔϧΛෑ͍ͨ w σϓϩΠʜ,VCFSOFUFT w ೥͔Β,VCFSOFUFTར༻ w ܭଌʜϩάܭଌ "#UFTU 8BOUFEMZͷػցֶशج൫ͷྺ࢙
  22. ©2018 Wantedly, Inc. ·ͱΊ w 8BOUFEMZͰ͸ػցֶशΛϓϩμΫτʹ׆༻ w 8BOUFEMZ7JTJU 8BOUFEMZ1FPQMFͷػೳʹػցֶश͕׆͔͞Ε͍ͯΔ w

    ػցֶशΤϯδχΞ͸ϓϩμΫτνʔϜʹॴଐɹ w ϓϩμΫτνʔϜͷதͰίΞͳՁ஋ΛੜΈग़͢ࣄʹ஫ྗ͍ͯ͠Δ w ػցֶशج൫͸վળ͠ଓ͚͍ͯΔ w ͜Ε·Ͱ΋վળ͖ͯͨ͠ࠓޙ΋վળ͍ͯ͘͠ʂ