2019年新人研修で使った資料です。
以下の内容を話した全体的にはポエムです。
1. Wantedlyの機械学習 2. MLと組織 3. MLとデータ 4. MLプロジェクの進め方
ػցֶशͱͷ͖͍͔ͭ͋ͨ@WantedlyNew Grad Training 2019April 24, 2019 - Makoto Tanji (@tan-z-tan)
View Slide
©2019 Wantedly, Inc.• ML Engineer at Wantedly, Inc.• Wantedly Visit 2015 - 2016• Client Growth, Scout• Wantedly People 2016 - current• Server side• Machine Learning• Data Analysisࣗݾհ Who am I?Makoto Tanji
©2019 Wantedly, Inc.ࠓ͢͜ͱ
©2019 Wantedly, Inc.1. ςʔϚ2. Wantedlyͷػցֶश3. Take home messages1. MLͱ৫2. MLͱσʔλ3. MLϓϩδΣΫͷਐΊํ4. ·ͱΊContents
©2019 Wantedly, Inc.ϝσΟΞʹࡌΔΑ͏ͳ࠷৽ٕज़ͷػցֶशͷ׆༻՚͔Ͱ͕͢ɺ࣮ӡ༻ͷͨΊʹ࣮ࡍେͳσʔλ͕ඞཁͩͬͨΓɺਫ਼͕ग़ͳ͔ͬͨΓɺ҆ఆͨ͠ӡ༻͕͍͠ͱݴ͏ࠔଘࡏ͠·͢ɻ8BOUFEMZͷ.-ΤϯδχΞɺ8ΤϯδχΞɾσʔλαΠΤϯςΟετɾΠϯϑϥͱڠಇ͠ͳ͕Β͜ͷʹऔΓΜͰ͍·͢ɻ·ͨকདྷ8ΤϯδχΞΠϯϑϥΤϯδχΞػցֶशͱԿΒ͔ͷܗͰؔΘΔ͜ͱ͕ࠓΑΓ૿͖͑ͯ·͢ɻ8BOUFEMZͰ࣮ࡍʹಈ͍͍ͯΔػցֶशΛݟͳ͕Βػցֶशͱͷ͖͍͔ͭ͋ͨΛߟ͑ͯߦ͖·͠ΐ͏ɻςʔϚ
©2019 Wantedly, Inc.શମతʹػցֶशʹ·ͭΘΔϙΤϜͰ͢
©2019 Wantedly, Inc.Wantedlyͷػցֶश׆༻ࣄྫMachine Learnings working at Wantedly
©2019 Wantedly, Inc.Wantedlyͷػցֶश׆༻ࣄྫ
©2019 Wantedly, Inc.Wantedlyͷػցֶश׆༻ࣄྫ 7JTJUw ืूͷਪનw 1VTI௨ͷύʔιφϥΠζw εΧτϑΟϧλͷվળw ʜ 1FPQMFw ໊ը૾ͷ0$3ͱྨw ਓͷਪનw هࣄͷਪનɺ1VTIͷ։෧༧ଌw ༷ʑͳݻ༗දݱநग़w ʢػցֶशͷϦϙδτϦ.-λά͕͍ͭͯ·͢ʣw IUUQTHJUIVCDPNXBOUFEMZ VUG&$RNMUZQFMBOHVBHF
©2019 Wantedly, Inc.ͳͥػցֶशΛಋೖ͢Δͷ͔ʁ
©2019 Wantedly, Inc.Wantedlyͷػցֶश׆༻ࣄྫ ఏڙ͍ͨ͠Ձ͕͋Δ͔Β• εΩϟϯ͔ΒඵͰσʔλԽͱ͍͏ମݧΛఏڙ͍ͨ͠w ໊Λຕຕ࿈བྷઌʹҠ͢ͷਏ͍ˠͦΕਓؒͷࣄ͡Όͳ͍Ͱ͢ɻΧϝϥͰࡱͬͨΒҰʹσʔλԽ• ίίϩΦυϧγΰτʹग़ձ͏ମݧΛఏڙ͍ͨ͠w ͳΜ͔͍͍ࣄͳ͍͔ͳʁˠ͋ͳ͕ͨڵຯ͕͋Γͦ͏ͳืू͔ΒࣗಈͰਪન͠·͢Α
©2019 Wantedly, Inc.ࣾͰಈ͍͍ͯΔ.-ͷߏྫ
©2019 Wantedly, Inc.ࣾͰಈ͍͍ͯΔMLͷߏྫ ֶशࡁΈͷ"1*ύλʔϯ ਪનύλʔϯ ͦͷଞ
©2019 Wantedly, Inc.ֶशࡁΈͷAPIύλʔϯ ϚΠΫϩαʔϏεͷαʔόͷ"1*ͱͯ͠ఏڙ1. OCRʢจࣈೝࣝʣAPIɺςΩετ͔Βͷநग़APIɺಉҰੑఆAPIͳͲࢁ2. લֶͬͯशͨ͠ϞσϧΛಈ͔ͯ݁͠ՌΛฦ͢3. e.g. Peopleͷ໊ೝࣝؔ࿈API͜ͷྫ͕ଟ͍ ߟ͑Δ͜ͱ• ਫ਼͕Βͳ͍͏ͪʹམ͍ͪͯͳ͍͔• ϝτϦΫεΛຖऔΔɻ৽͘͠APIΛ࡞Δͱ͖νΣοΫϦετʹೖΕΔ• ίετ• CPUʹͳ͍ͬͯΔ͜ͱ͕ଟ͘ɺkubernetesͷϦιʔεΛେྔʹͬͯͳ͍͔
©2019 Wantedly, Inc.ਪનύλʔϯ લ͓ͬͯ͢͢ΊείΞΛܭࢉɾఏڙ1. Ϣʔβ͕ϖʔδʹΞΫηεͨ͠ͱ͖ʹҰॠͰΦεεϝͷืूΛग़͍ͨ͠2. Ϣʔβͷաڈͷߦಈ͔Βࣄલʹܭࢉ͓ͯ͘͠3. Ϣʔβ×ืूͷ݁ՌΛσʔλετΞʹอଘ ߟ͑Δ͜ͱ• ʮϢʔβ×ืूʯ͕͍ΔσʔλετΞ• ຖͷֶशJob͕ࢭ·͍ͬͯͳ͍͔ʁ• Job͕ଟஈʹͳΔͱಛʹΘ͔Γʹ͘͘ͳΔˠData Pipelineͷ
©2019 Wantedly, Inc.ͦͷଞ σʔλͷਖ਼نԽ1. ࡶଟͳใΛਖ਼نԽɾಉҰੑͳͲΛఆ͢Δ2. ࣙॻΛ࡞Δࣄ3. Ϣʔβʹݟ͑ͳ͍͚Ͳ෦Ͱݡ͘ͳ͍ͬͯΔ #JH2VFSZ.-1. ෦ͷϩδοΫͰ͍ͬͯΔ2. ࣮ΘΕͯ·͢
©2019 Wantedly, Inc.ࠓͷTake-Home Messages
©2019 Wantedly, Inc.1. ৫ͷ2. σʔλͷ3. ϓϩδΣΫτͷਐΊํͷ
©2019 Wantedly, Inc.৫ͷ
©2019 Wantedly, Inc.ʮ৫ߏઓུΛܾΊΔʯ ΠΰʔϧɾΞϯκϑʢ͔͍͍ͬ֨͜ݴΛݴ͍͔͚ͨͬͨͩʣ
©2019 Wantedly, Inc.৫ͷ8BOUFEMZͰɺϓϩμΫτνʔϜʹػցֶशΤϯδχΞ͕͍ΔMLΤϯδχΞ̏ਓMLΤϯδχΞ̎ਓInfrastructureVisit People
©2019 Wantedly, Inc.৫ͷ Ϣʔβ·Ͱͷڑ͕͍ۙ1. ߦͬͨվળ͕μΠϨΫτʹϢʔβ·Ͱಧ͘ ϓϩμΫτʹՁͷ͋ΔվળΛߦ͍͍͢1. ϓϩμΫτͷ͔͍ͬͯΔํΛڞ༗͍ͯ͠ΔͷͰᴥᴪ͕ى͜ΓͮΒ͍2. ඞཁͰ͋ΕϓϩμΫτͷϏδωεϩδοΫ·ͰखΛೖΕΒΕΔ վળ͚ͩͰͳ͘৽͍͠ػೳΛࣗવͱٞ͢Δ1. ։ൃνʔϜͷҰһͳͷͰతͳվળ͚ͩͰͳ͘ʮ͜͏͋Δ͖ʯํΛٞͯ͠ਐΊΒΕΔ
©2019 Wantedly, Inc.৫ͷଞͷ৫ͷ͋ΓํσʔλαΠΤϯςΟετΤϯδχΞσβΠφϚωʔδϟશࣾԣஅMLνʔϜϓϩμΫτνʔϜશࣾԣஅσʔλੳνʔϜMLΤϯδχΞґཔ݁Ռ
©2019 Wantedly, Inc.৫ͷଞͷ։ൃνʔϜͱͲ͏ؔΘΔͷ͔ʁ1. ։ൃελΠϧ: APIΛఆٛͯ͠WEBଆͱMLଆͰฒߦͯ͠։ൃ1. e.g. ϢʔβʹෳͷهࣄΛฦ͍ͨ͠ɻهࣄͷϦετWEBଆͰऔಘ͢ΔɻMLͷAPIΛݺͼग़ͯ͠ॱংΛܾఆ͢Δ2. ؔΘΓํ1. WEBଆ: લͬͯAPI spec͚ܾͩΊ͓ͯ͘ͱɺSTUBͯ͠MLଆΛͨͣʹ։ൃՄೳɻ2. Πϯϑϥ: service-in͢ΔલʹɺෛՙͷϝτϦΫεͱ࠷ѱࢮΜͰ͍͍API͔ΫϦςΟΧϧͳAPI͔Λ͢Γ߹Θͤ3. ίϛϡχέʔγϣϯ1. ࣄલʹʮਫ਼ͷظʯΛ͢Γ߹ΘͤΔͱ͍͍ɻ2. ݡ͍API͕αΫοͱͰ͖Δ͜ͱ΄΅ແ͍ɻ99.9ˋͷਫ਼͕ඞཁͳཁ݅ͳͷ͔ɺݟͤํΛڞ༗͢Δ
©2019 Wantedly, Inc.8BOUFUEMZͰɺϓϩμΫτνʔϜʹ.-ΤϯδχΞ͕ೖΔͱ͍͏ಇ͖ํΛऔ͍ͬͯ·͢ɻϢʔβʹۙ͘ɺϓϩμΫτυϦϒϯͳಇ͖ํ͕͍͢͠ͱ͍͏ϝϦοτ͕͋Γ·͢ɻϓϩμΫτνʔϜͷதͰɺࣄલʹʮޓ͍ͷൣғʯͱʮਫ਼ͷظʯΛ͖ͬΓͤ͞Δͱࠞཚͳ͘։ൃ͕ਐΈ·͢ɻ৫ͷ
©2019 Wantedly, Inc.%FFQ-FBSOJOHྠߨձͬͯ·͢ຖिਫ༵ʙ!8BOUFEMZ
©2019 Wantedly, Inc.σʔλ
©2019 Wantedly, Inc.σʔλ໘ന͍ྫ͑ʮσʔλݪ༉ʯ ͦͷ··Ͱ͑ͳ͍ɻਫ਼͕ඞཁ Ճ͢Δͱ༷ʑͳ༻్ʹ͑Δ ੈքதͰσʔλͷऔΓ߹͍Λ͍ͯ͠Δग़లɿෆ໌
©2019 Wantedly, Inc.Wantedlyͷ໘ന͍σʔλw ϢʔβͷϓϩϑΟʔϧඦສΦʔμʔw Ϣʔβͷͭͳ͕ΓωοτϫʔΫΤοδԯΦʔμʔw ಡΈऔΒΕ໊ͨԯ͘Β͍
©2019 Wantedly, Inc.Data lakeඞཁͳσʔλ#JH2VFSZʹूͰ͖ΔΈ͕͋Δ"OBMZUJDT
©2019 Wantedly, Inc.ؾΛ͚ͭΔ͜ͱw σʔλपΓͰ࣮ࡍ͋ͬͨ1. RPAͷ׆༻Ͱҙຯͷͳ͍େྔͷΞΫηε͕͋ͬͨͨΊɺݟ͔͚ͷฏۉར༻্͕͕ͬͨɻίϯόʔδϣϯΛΘͳ͍ϩά͕૿͕͑ͯมԽͨ͠2. ৽͍͠ػೳͷϦϦʔεͰςʔϒϧͷΧϥϜʹ৽͍͕͠ೖΔΑ͏ʹͳͬͨɻલͬͯݕͨͨ͠ΊϦϦʔεલʹमਖ਼Ͱ͖͕ͨɺΒͳ͔ͬͨΒϞσϧ͕յΕ͍͔ͯͨ
©2019 Wantedly, Inc.ؾΛ͚ͭΔ͜ͱw σʔλͷϓϥΠόγʔͷ1. ίϯϓϥΠΞϯεΛकΓ·͠ΐ͏
©2019 Wantedly, Inc.8BOUFEMZͰେنͳϢʔβؔ࿈ͷσʔλΛ#JH2VFSZʹू͞ΕΔͱ͍͏ஈ֊·Ͱ࣮ݱ͞Ε͓ͯΓɺσʔλΛ͏͜ͱࣗମ༰қʹͳΓ·ͨ͠ɻࠓޙߋʹਐΜͰ׆༻͕͢͠͞ΛղܾʹͳΓ·͢ɻσʔλϩάαʔόͷ࣮͚ͩʹ݁ͯ͠ͳ͘ɺϝτϦΫεσʔλΛ͏.-ͷϞσϧʹӨڹΛ༩͑·͢ɻαʔόͷมߋ͕.-ϞσϧΛյ͞ͳ͍Α͏ʹपΓʹڞ༗͠·͠ΐ͏ɻʢຊҟৗݕͳͲͰγεςϜతʹकΓ͍ͨʣσʔλ
©2019 Wantedly, Inc.ϓϩδΣΫτͷਐΊํ
©2019 Wantedly, Inc.ػցֶशͷϓϩδΣΫτͲ͏ͬͯ࢝·Δͷʁ
©2019 Wantedly, Inc.έʔεόΠέʔεͰҰൠԽ͕͍͠খ͍͞ϓϩδΣΫτࡶஊϕʔε͕࢝·Γͷ͜ͱ͕ଟ͍ؾ͕͢Δ
©2019 Wantedly, Inc.ੈͷதͷ#FTU1SBDUJDFΛ୳ͦ͏
©2019 Wantedly, Inc.Machine Learning Best Practice• ϧʔϧ1: ػցֶशΛΘͳ͍Ͱ࢝ΊΒΕͳ͍͔ߟ͑Δ• ϧʔϧ2: ઃܭͯ͠ࢦඪΛ࡞ΔʢݱࡏͷγεςϜΛཧղ͔ͯ͠ΒࢦඪΛ࡞Δʣ• ϧʔϧ3: ϩδοΫ͕ෳࡶʹͳͬͬͨΒػցֶशΛબ͢Δref: https://developers.google.com/machine-learning/guides/rules-of-ml/
©2019 Wantedly, Inc.ϓϩδΣΫτͷਐΊํྫɿʮ͓Γ߹͍Ͱ͔͢ʁʯػೳ
©2019 Wantedly, Inc.ϓϩδΣΫτͷਐΊํख୳Γظ ϧʔϧ૿Ճظ ػցֶश• ڞ௨ͷਓ͕ଟ͍ਓʢΛਪન͢Δʣ• ϝτϦΫε=ϦΫΤετͱঝೝ• ڞ௨ͷਓ͕ଟ͍ਓ• ಉ͡ձࣾͷਓ• ڞ௨ͷ໊Λ͍࣋ͬͯΔ͕ଟ͍ਓ• ಉ࣌ʹεΩϟϯ͞ΕͨਓͰڞ௨ͷͭͳ͕Γ͕͋Δ• ͜ͷΈ߹Θͤ• ɾɾɾ• Deep Learningϕʔεͷਪન• + ABςετ
©2019 Wantedly, Inc.ϓϩδΣΫτͷਐΊํػցֶशΛಋೖ͢Δͱ͖ʹेෳࡶͰݱঢ়ͷࢦඪΛվળͰ͖ͦ͏ͳ՝ΛબͿ
©2019 Wantedly, Inc.·ͱΊ
©2019 Wantedly, Inc.·ͱΊ ػցֶशͷϓϩμΫτɺ8ΤϯδχΞɾΠϯϑϥνʔϜͱҰॹʹ࡞͍ͬͯΔ ϓϩμΫτνʔϜͷதʹ.-ΤϯδχΞ͕͍ΔߏͳͷͰɺҰॹʹٞͯ͠։ൃͰ͖Δڥ దͳ՝Λݟ͚ͭͯ.-ͰՁΛग़͢͜ͱʹڵຯΛ͛ͯ΄͍͠
©2019 Wantedly, Inc.References• Rules of Machine Learning: Best Practices for ML Engineering• https://developers.google.com/machine-learning/guides/rules-of-ml/• Wantedly ͷػցֶशϓϩμΫτ։ൃΛࢧ͑Δػցֶशج൫ / #rejectcon2018• https://speakerdeck.com/south37/number-rejectcon2018Photo Credit• https://unsplash.com/photos/PMwu9gfCSbw