「簡単でつかいやすい」を追求する開発の裏側 〜メディア解析基盤の話〜 / Medium analysis infrastructure to make FamilyAlbum user-friendly

29f8fa629376e12157eb2a883df11c9b?s=47 _sobataro
December 15, 2018

「簡単でつかいやすい」を追求する開発の裏側 〜メディア解析基盤の話〜 / Medium analysis infrastructure to make FamilyAlbum user-friendly

ミクシィが提供するアプリ「家族アルバム みてね」では、忙しいパパ・ママにも簡単で使いやすくするため、ユーザのアップロードした画像・動画(メディア)をもとに、「いい感じ」のダイジェスト動画を自動生成する「1秒動画」や、1ヶ月分の画像から「いい感じ」のフォトブックをつくる「自動提案フォトブック」といったコンテンツ自動生成・自動提案機能を提供しています。この自動提案機能を支えるメディア解析基盤は、月間約7,000万件のメディアを解析する大規模なものですが、性能・運用面で課題があり、現在新基盤へのリプレースを進めています。本セッションでは、この解析基盤のリプレースに関してお話します。
https://event.shoeisha.jp/devboost/20181215/session/1890/

29f8fa629376e12157eb2a883df11c9b?s=128

_sobataro

December 15, 2018
Tweet

Transcript

  1. ʮ؆୯Ͱ͔͍ͭ΍͍͢ʯΛ௥ٻ͢Δ։ൃͷཪଆ
 ʙϝσΟΞղੳج൫ͷ࿩ʙ %FWFMPQFST#PPTU"
 גࣜձࣾϛΫγΟদੴߒี

  2. ɹࣗݾ঺հ w দੴߒี w UXJUUFS!@TPCBUBSP w ೥݄ϛΫγΟ৽ଔೖࣾ w ೥ΈͯͶΤϯδχΞ J04"OESPJEαʔόΠϯϑϥ

     w ೥ʙΈͯͶίϯςϯπ։ൃΤϯδχΞ w झຯ !2
  3. ɹࠓ೔͓࿩͢Δ͜ͱ ͓࿩͢Δ͜ͱ w ʮՈ଒ΞϧόϜΈͯͶʯͷαʔϏε঺հ w ΈͯͶίϯςϯπ։ൃνʔϜͱ͸ w ίϯςϯπࣗಈੜ੒ͷ͘͠Έ w ϝσΟΞղੳج൫ͷϦϓϨʔεͱ4BHF.BLFS

    w ·ͱΊ ͓࿩͠ͳ͍͜ͱ w ΞϓϦɺ6*69ͷ࿩ w ػցֶशͷ۩ମతͳ࿩ !3
  4. ɹɹՈ଒ΞϧόϜΈͯͶ

  5. ɹՈ଒ΞϧόϜΈͯͶ ʮສਓ͕࢖͏/PՈ଒ΞϧόϜΞϓϦ˞ʯ w ࠃ಺γΣΞҐ˞ w ৽ੜࣇϚϚͷਓʹਓ͕ར༻ ओͳػೳ w ແྉɾແ੍ݶͷΞϧόϜ w

    Ո଒͚ͩʹڞ༗ w ϑΥτϒοΫɺ%7%࡞੒ w ඵಈըͷࣗಈ࡞੒ !5 ೥݄೔࣌఺Ͱ͸ొ࿥Ϣʔβ਺ສਓ ˞'BTUBLௐ΂ɻ೥݄೔ʙ݄೔ूܭɺೝ஌౓ɾར༻౓Λௐࠪ
  6. None
  7. None
  8. None
  9. None
  10. ɹɹίϯςϯπ։ൃνʔϜ

  11. ɹίϯςϯπ։ൃνʔϜͱ͸ w ը૾ೝࣝʹ୅ද͞ΕΔػցֶशΛ༻͍ͯ
 ίϯςϯπΛࣗಈੜ੒͢ΔػೳΛݚڀ։ൃ͓Αͼӡ༻͢ΔνʔϜ w ΤϯδχΞਓͷখ͞ͳνʔϜ w ݚڀدΓਓ w ։ൃدΓਓ

    !11
  12. ɹίϯςϯπ։ൃνʔϜఏڙͷػೳ ඵಈը w ը૾ɾಈըΛ
 ࣗಈͰฤूͨ͠
 μΠδΣετಈը w αϯϓϧಈը ࣗಈఏҊϑΥτϒοΫ w

    ϲ݄෼ͷը૾͔Β
 ຕ ࡭෼ 
 ΛબΜͰఏҊ %7%ʮຕʹ·ͱΊΔʯ w ೥෼ͷಈը͔Β
 σΟεΫຕ ෼ ෼
 ΛબΜͰఏҊ !12
  13. ɹίϯςϯπ։ൃνʔϜఏڙͷػೳ ඵಈը w ը૾ɾಈըΛ
 ࣗಈͰฤूͨ͠
 μΠδΣετಈը ࣗಈఏҊϑΥτϒοΫ w ϲ݄෼ͷը૾͔Β
 ຕ

    ࡭෼ 
 ΛબΜͰఏҊ %7%ʮຕʹ·ͱΊΔʯ w ೥෼ͷಈը͔Β
 σΟεΫຕ ෼ ෼
 ΛબΜͰఏҊ ͜ΕΒͷػೳ͸͢΂ͯɺ
 ΈͯͶΛ؆୯Ͱ͔͍ͭ΍͘͢͢ΔͨΊͷػೳ ࢠҭͯͰ๩͍͠ύύɾϚϚ޲͚ʹࣗಈੜ੒PSࣗಈఏҊ !13
  14. ɹίϯςϯπࣗಈੜ੒ͷ͘͠Έ ʙඵಈըͷ৔߹ʙ

  15. ɹίϯςϯπࣗಈੜ੒ͷ͘͠Έ ඵಈըͷ৔߹ w ࣗಈఏҊϑΥτϒοΫɺ%7%ʮຕʹ·ͱΊΔʯػೳͷ͍ͣΕ΋
 ࣄલʹϝσΟΞΛղੳ͢Δ͜ͱ͸ಉ༷ ϝσΟΞղੳ w Ξοϓϩʔυ௚ޙ
 ʹղੳ w

    إݕग़ɺਓ෺ݕग़ɺ
 #(.ݕग़ɺʜʜ ૉࡐબ୒ w ղੳ݁ՌΛ΋ͱʹ
 ϝσΟΞΛ఺਺෇͚ w ͍͍ײ͡ʹબ୒ ಈըຊମͷੜ੒ɾ഑৴ w ಈըຊମΛੜ੒ w ϓογϡ௨஌Ͱ഑৴ !15
  16. ɹϝσΟΞղੳج൫

  17. ɹϝσΟΞղੳج൫ͷ֓ཁ ֓ཁ w ΈͯͶʹอଘ͞ΕΔશϝσΟΞ  ສ݄݅ Λղੳ͢Δج൫ w ղੳ߲໨ w

    إݕग़ w ਓ෺ݕग़ w #(.ݕग़ w յΕಈըݕग़ w ʜʜ w ͜ͷղੳ݁ՌΛ΋ͱʹࣗಈੜ੒ɺ
 ࣗಈఏҊػೳ͕ಈ͘ !17 إݕग़ͷྫ
  18. ɹچϝσΟΞղੳج൫ !18

  19. ɹچϝσΟΞղੳج൫ͷ໰୊఺ wҰ෦ͷ ॳظ͔Β͋Δ ղੳ߲໨ ͸ΞϓϦαʔό಺෦Ͱॲཧ w%#ͳͲͷΠϯϑϥΛ
 ΞϓϦ޲͚"1*αʔόͱڞ༗ wߴෛՙʹΑΔো֐ͷݪҼʹ w&$"VUP4DBMJOH $VTUPN

    ".*ʹΑΔอकతͳΠϯϑϥ wӡ༻ίετ͕େ͖͍ !19
  20. ɹ৽ج൫΁ͷҠߦ ৽ج൫ͷཁ݅ w ΞϓϦαʔόͷΠϯϑϥෛՙʹΑΔো֐Λى͜͞ͳ͍͜ͱ ➔ΞϓϦαʔό͔Βಠཱ͢Δ͜ͱ w ΦϖϨʔγϣϯΛࣗಈԽɾίʔυԽ͠ɺӡ༻ίετΛ࡟ݮ͢Δ͜ͱ ➔ίϯςφԽ ➔ϚωʔδυαʔϏεͷಋೖ w

    ݱߦͷج൫͔Β઴ਐతʹҠߦͰ͖Δ͜ͱ !20
  21. ɹ৽ϝσΟΞղੳج൫ !21

  22. ɹ৽ϝσΟΞղੳج൫ wΞϓϦαʔόͱಠཱͨ͠
 ϝσΟΞղੳαʔόΛ༻ҙ wղੳΛߦ͍݁ՌΛอଘ͢Δ wػցֶशతͳਪ࿦ॲཧ͸
 4BHF.BLFSਪ࿦"1*
 Ͱ࣮ߦ !22

  23. ɹ"NB[PO4BHF.BLFS

  24. ɹ"NB[PO4BHF.BLFS "NB[PO4BHF.BLFSͱ͸ w "84ͷػցֶश޲͚
 ϚωʔδυαʔϏε ͳͥ4BHF.BLFSͳͷ͔ w 4΍3%4ͷσʔλ׆༻ָ͕
 ΈͯͶ͸"84ʹࡌ͍ͬͯΔ 

    w Πϯϑϥӡ༻ίετͷ࡟ݮ
 ϚωʔδυͰ؆୯ʹ࢖͑Δ !24 ܇࿅σʔλɺ܇࿅ɾਪ࿦ίʔυɺϔϧύίʔυΛ༻ҙ͢Δ͚ͩͰ
 ϞσϧߏஙɺτϨʔχϯάɺσϓϩΠΛ؆୯ʹ࣮ߦͰ͖Δ
 ਤ͸IUUQTEPDTBXTBNB[PODPNTBHFNBLFSMBUFTUEHIPXJUXPSLTIPTUJOHIUNMΑΓ
  25. ɹ4BHF.BLFSਪ࿦"1*ͷߏ੒ͱӡ༻ ίϯςφͷߏ੒ إݕग़༻ίϯςφ  w طଘͷإݕग़ثΛߴ଎Խͯ͠ར༻ w ഒҎ্ͷߴ଎ԽΛ࣮ݱ !25 )551αʔό

    ը૾ͷ
 μ΢ϯϩʔυ લॲཧ ޙॲཧ ਪ࿦ॲཧ 5FOTPS35Ͱ5FTMB7 
 '1ԋࢉʹ࠷దԽ Ұ෦ϨΠϠΛ5FOTPS351MVHJOͱ࣮ͯ͠૷ %"-*ͰલॲཧͷҰ෦Λ(16ʹΦϑϩʔυ ݕग़ϦΫΤετ ݕग़݁Ռ
  26. ɹ4BHF.BLFSਪ࿦"1*ͷߏ੒ͱӡ༻ ίϯςφΠϝʔδͷӡ༻ w ίϯςφΠϝʔδͷ
 ϏϧυɺςετɺσϓϩΠΛ
 "84$PEF#VJMEʹΑΓࣗಈԽ w ςετ࣮ߦʹ(16͕ඞཁͳͨΊɺ
 ౎౓&$ΠϯελϯεΛىಈ !26

  27. ɹ4BHF.BLFSਪ࿦"1*ͷߏ੒ͱӡ༻ 4BHF.BLFSΠϯελϯεͷεέʔϦϯά w ϝσΟΞղੳαʔόͷδϣϒ਺Λ؂ࢹͯ͠ҎԼΛεέʔϧ͍ͤͯ͞Δ w 4BHF.BLFSΠϯελϯε਺ w ղੳδϣϒαʔό਺ ެࣜυΩϡϝϯτ
 ʮ"1*ͷ࣮ߦճ਺Ͱεέʔϧ͢΂͠ʯ

    w ࠓճ͸"1*࣮ߦճ਺Λ੍ޚͰ͖Δ༻్
 ͷͨΊɺ͋͑ͯແࢹ w ΪϦΪϦ·ͰੑೳΛࡡΓऔΕΔΑ͏
 νϡʔχϯά ͜͜ͷδϣϒ਺ʹԠͯ͡
 ֤ΠϯελϯεΛεέʔϧ !27
  28. ɹղੳج൫ͷҠߦखॱͱ੒Ռ

  29. ɹ ࠶ܝ ৽ج൫΁ͷҠߦ ৽ج൫ͷཁ݅چج൫ͷ՝୊Λղܾ͍ͨ͠ w ΞϓϦαʔόͷΠϯϑϥෛՙʹΑΔো֐Λى͜͞ͳ͍͜ͱ ➔ΞϓϦαʔό͔Βಠཱ͢Δ͜ͱ w ΦϖϨʔγϣϯΛࣗಈԽɾίʔυԽ͠ɺӡ༻ίετΛ࡟ݮ͢Δ͜ͱ ➔ίϯςφԽ

    ➔ϚωʔδυαʔϏεͷಋೖ w ݱߦͷج൫͔Β઴ਐతʹҠߦͰ͖Δ͜ͱ !29
  30. ɹ৽ج൫΁ͷҠߦखॱ ϑΣʔζچج൫ͱͷฒߦӡ༻ w چج൫ͱ৽ج൫ͷ྆ํͰղੳΛ࣮ߦ w ৽ج൫ͷղੳ݁Ռ͸ࣺͯɺچج൫ͷղੳ݁ՌͷΈΛ࢒͢ w ϲ݄΄Ͳฏߦӡ༻Λଓ͚ɺ৽ج൫ͷνϡʔχϯά΍Τϥʔमਖ਼Λߦͬͨ ϑΣʔζ৽ج൫΁ͷ׬શҠߦ w

    چج൫Λఀࢭ͠ɺ৽ج൫ͷղੳ݁ՌΛอଘ͢ΔΑ͏ʹมߋ ઴ਐతʹҠߦͰ͖ͨ !30
  31. ɹ৽ج൫΁ͷҠߦͷ݁Ռɾ੒Ռ Ҡߦ௚ޙʹҰ෦Ͱτϥϒϧ͕ൃੜ w Քಇதͷίϯςφ͕յΕΔɺ
 εέʔϦϯάʹࣦഊ͢ΔɺͳͲ w ݱࡏ͸҆ఆՔಇ ΞϓϦαʔόʹ͓͚Δো֐ղফ w ҠߦޙɺΞϓϦαʔόʹ͓͍ͯ


    ෛՙ໘Ͱͷো֐͸ൃੜ͍ͯ͠ͳ͍ ӡ༻ίετ௿Լ w ΦϖϨʔγϣϯͷखؒ࡟ݮ w Πϯϑϥඅ༻΄΅มΘΒͣ إݕग़ͷਫ਼౓޲্ w ͋Θͤͯإݕग़ثΛߋ৽ͨͨ͠Ί !31 খ͍͞إɺԣإɺҰ෦ӅΕ͍ͯΔإ΋ݕग़Մೳʹ
  32. ɹࠓޙͷ՝୊ إݕग़Ҏ֎ͷ৽ج൫΁ͷҠߦ w ݱࡏ͸إݕग़ͷΈΛ৽ج൫ʹҠߦࡁΈ w ਓ෺ݕग़ͳͲɺଞͷղੳ߲໨͸چج൫ͷ·· w ΞϓϦαʔό΁ͷෛՙ΍ӡ༻ίετ͕େ͖͍෦෼͔Βணखͨ͠ !32

  33. ɹ·ͱΊ ʮՈ଒ΞϧόϜΈͯͶʯ w Ո଒޲͚ΞϧόϜΞϓϦ w ๩͍͠ύύɾϚϚʹ΋؆୯Ͱ͔͍ͭ΍͘͢͢ΔͨΊɺ
 ඵಈըͳͲͷίϯςϯπࣗಈੜ੒ɺࣗಈఏҊػೳΛఏڙ w ͜ΕΒͷػೳ͸ɺإݕग़ͳͲͷϝσΟΞղੳٕज़Λ׆༻͍ͯ͠Δ ΈͯͶͷϝσΟΞղੳج൫ϦϓϨʔεͱ4BHF.BLFS

    w ΞϓϦαʔόͱಠཱͨ͠ϝσΟΞղੳج൫΁Ҡߦத w ৽ج൫Ͱ͸4BHF.BLFSΛར༻͠ɺӡ༻ίετΛ࡟ݮ !33
  34. 8FBSFIJSJOH NJUFOFVTSFDSVJU