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

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

_sobataro
December 15, 2018

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

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

_sobataro

December 15, 2018
Tweet

More Decks by _sobataro

Other Decks in Technology

Transcript

  1. ʮ؆୯Ͱ͔͍ͭ΍͍͢ʯΛ௥ٻ͢Δ։ൃͷཪଆ

    ʙϝσΟΞղੳج൫ͷ࿩ʙ
    %FWFMPQFST#PPTU"

    גࣜձࣾϛΫγΟদੴߒี

    View full-size slide

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

    w ೥ʙΈͯͶίϯςϯπ։ൃΤϯδχΞ
    w झຯ
    !2

    View full-size slide

  3. ɹࠓ೔͓࿩͢Δ͜ͱ
    ͓࿩͢Δ͜ͱ
    w ʮՈ଒ΞϧόϜΈͯͶʯͷαʔϏε঺հ
    w ΈͯͶίϯςϯπ։ൃνʔϜͱ͸
    w ίϯςϯπࣗಈੜ੒ͷ͘͠Έ
    w ϝσΟΞղੳج൫ͷϦϓϨʔεͱ4BHF.BLFS
    w ·ͱΊ
    ͓࿩͠ͳ͍͜ͱ
    w ΞϓϦɺ6*69ͷ࿩
    w ػցֶशͷ۩ମతͳ࿩
    !3

    View full-size slide

  4. ɹɹՈ଒ΞϧόϜΈͯͶ

    View full-size slide

  5. ɹՈ଒ΞϧόϜΈͯͶ
    ʮສਓ͕࢖͏/PՈ଒ΞϧόϜΞϓϦ˞ʯ
    w ࠃ಺γΣΞҐ˞
    w ৽ੜࣇϚϚͷਓʹਓ͕ར༻
    ओͳػೳ
    w ແྉɾແ੍ݶͷΞϧόϜ
    w Ո଒͚ͩʹڞ༗
    w ϑΥτϒοΫɺ%7%࡞੒
    w ඵಈըͷࣗಈ࡞੒
    !5
    ೥݄೔࣌఺Ͱ͸ొ࿥Ϣʔβ਺ສਓ
    ˞'BTUBLௐ΂ɻ೥݄೔ʙ݄೔ूܭɺೝ஌౓ɾར༻౓Λௐࠪ

    View full-size slide

  6. ɹɹίϯςϯπ։ൃνʔϜ

    View full-size slide

  7. ɹίϯςϯπ։ൃνʔϜͱ͸
    w ը૾ೝࣝʹ୅ද͞ΕΔػցֶशΛ༻͍ͯ

    ίϯςϯπΛࣗಈੜ੒͢ΔػೳΛݚڀ։ൃ͓Αͼӡ༻͢ΔνʔϜ
    w ΤϯδχΞਓͷখ͞ͳνʔϜ
    w ݚڀدΓਓ
    w ։ൃدΓਓ
    !11

    View full-size slide

  8. ɹίϯςϯπ։ൃνʔϜఏڙͷػೳ
    ඵಈը
    w ը૾ɾಈըΛ

    ࣗಈͰฤूͨ͠

    μΠδΣετಈը
    w αϯϓϧಈը
    ࣗಈఏҊϑΥτϒοΫ
    w ϲ݄෼ͷը૾͔Β

    ຕ ࡭෼

    ΛબΜͰఏҊ
    %7%ʮຕʹ·ͱΊΔʯ
    w ೥෼ͷಈը͔Β

    σΟεΫຕ ෼
    ෼

    ΛબΜͰఏҊ
    !12

    View full-size slide

  9. ɹίϯςϯπ։ൃνʔϜఏڙͷػೳ
    ඵಈը
    w ը૾ɾಈըΛ

    ࣗಈͰฤूͨ͠

    μΠδΣετಈը
    ࣗಈఏҊϑΥτϒοΫ
    w ϲ݄෼ͷը૾͔Β

    ຕ ࡭෼

    ΛબΜͰఏҊ
    %7%ʮຕʹ·ͱΊΔʯ
    w ೥෼ͷಈը͔Β

    σΟεΫຕ ෼
    ෼

    ΛબΜͰఏҊ
    ͜ΕΒͷػೳ͸͢΂ͯɺ

    ΈͯͶΛ؆୯Ͱ͔͍ͭ΍͘͢͢ΔͨΊͷػೳ
    ࢠҭͯͰ๩͍͠ύύɾϚϚ޲͚ʹࣗಈੜ੒PSࣗಈఏҊ
    !13

    View full-size slide

  10. ɹίϯςϯπࣗಈੜ੒ͷ͘͠Έ
    ʙඵಈըͷ৔߹ʙ

    View full-size slide

  11. ɹίϯςϯπࣗಈੜ੒ͷ͘͠Έ
    ඵಈըͷ৔߹
    w ࣗಈఏҊϑΥτϒοΫɺ%7%ʮຕʹ·ͱΊΔʯػೳͷ͍ͣΕ΋

    ࣄલʹϝσΟΞΛղੳ͢Δ͜ͱ͸ಉ༷
    ϝσΟΞղੳ
    w Ξοϓϩʔυ௚ޙ

    ʹղੳ
    w إݕग़ɺਓ෺ݕग़ɺ

    #(.ݕग़ɺʜʜ
    ૉࡐબ୒
    w ղੳ݁ՌΛ΋ͱʹ

    ϝσΟΞΛ఺਺෇͚
    w ͍͍ײ͡ʹબ୒
    ಈըຊମͷੜ੒ɾ഑৴
    w ಈըຊମΛੜ੒
    w ϓογϡ௨஌Ͱ഑৴
    !15

    View full-size slide

  12. ɹϝσΟΞղੳج൫

    View full-size slide

  13. ɹϝσΟΞղੳج൫ͷ֓ཁ
    ֓ཁ
    w ΈͯͶʹอଘ͞ΕΔશϝσΟΞ ສ݄݅
    Λղੳ͢Δج൫
    w ղੳ߲໨
    w إݕग़
    w ਓ෺ݕग़
    w #(.ݕग़
    w յΕಈըݕग़
    w ʜʜ
    w ͜ͷղੳ݁ՌΛ΋ͱʹࣗಈੜ੒ɺ

    ࣗಈఏҊػೳ͕ಈ͘
    !17
    إݕग़ͷྫ

    View full-size slide

  14. ɹچϝσΟΞղੳج൫
    !18

    View full-size slide

  15. ɹچϝσΟΞղੳج൫ͷ໰୊఺
    wҰ෦ͷ ॳظ͔Β͋Δ
    ղੳ߲໨
    ͸ΞϓϦαʔό಺෦Ͱॲཧ
    w%#ͳͲͷΠϯϑϥΛ

    ΞϓϦ޲͚"1*αʔόͱڞ༗
    wߴෛՙʹΑΔো֐ͷݪҼʹ
    w&$"VUP4DBMJOH $VTUPN
    ".*ʹΑΔอकతͳΠϯϑϥ
    wӡ༻ίετ͕େ͖͍
    !19

    View full-size slide

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

    View full-size slide

  17. ɹ৽ϝσΟΞղੳج൫
    !21

    View full-size slide

  18. ɹ৽ϝσΟΞղੳج൫
    wΞϓϦαʔόͱಠཱͨ͠

    ϝσΟΞղੳαʔόΛ༻ҙ
    wղੳΛߦ͍݁ՌΛอଘ͢Δ
    wػցֶशతͳਪ࿦ॲཧ͸

    4BHF.BLFSਪ࿦"1*

    Ͱ࣮ߦ
    !22

    View full-size slide

  19. ɹ"NB[PO4BHF.BLFS

    View full-size slide

  20. ɹ"NB[PO4BHF.BLFS
    "NB[PO4BHF.BLFSͱ͸
    w "84ͷػցֶश޲͚

    ϚωʔδυαʔϏε
    ͳͥ4BHF.BLFSͳͷ͔
    w 4΍3%4ͷσʔλ׆༻ָ͕

    ΈͯͶ͸"84ʹࡌ͍ͬͯΔ

    w Πϯϑϥӡ༻ίετͷ࡟ݮ

    ϚωʔδυͰ؆୯ʹ࢖͑Δ

    !24
    ܇࿅σʔλɺ܇࿅ɾਪ࿦ίʔυɺϔϧύίʔυΛ༻ҙ͢Δ͚ͩͰ

    ϞσϧߏஙɺτϨʔχϯάɺσϓϩΠΛ؆୯ʹ࣮ߦͰ͖Δ

    ਤ͸IUUQTEPDTBXTBNB[PODPNTBHFNBLFSMBUFTUEHIPXJUXPSLTIPTUJOHIUNMΑΓ

    View full-size slide

  21. ɹ4BHF.BLFSਪ࿦"1*ͷߏ੒ͱӡ༻
    ίϯςφͷߏ੒ إݕग़༻ίϯςφ

    w طଘͷإݕग़ثΛߴ଎Խͯ͠ར༻
    w ഒҎ্ͷߴ଎ԽΛ࣮ݱ
    !25
    )551αʔό
    ը૾ͷ

    μ΢ϯϩʔυ
    લॲཧ ޙॲཧ
    ਪ࿦ॲཧ
    5FOTPS35Ͱ5FTMB7

    '1ԋࢉʹ࠷దԽ
    Ұ෦ϨΠϠΛ5FOTPS351MVHJOͱ࣮ͯ͠૷

    %"-*ͰલॲཧͷҰ෦Λ(16ʹΦϑϩʔυ
    ݕग़ϦΫΤετ ݕग़݁Ռ

    View full-size slide

  22. ɹ4BHF.BLFSਪ࿦"1*ͷߏ੒ͱӡ༻
    ίϯςφΠϝʔδͷӡ༻
    w ίϯςφΠϝʔδͷ

    ϏϧυɺςετɺσϓϩΠΛ

    "84$PEF#VJMEʹΑΓࣗಈԽ
    w ςετ࣮ߦʹ(16͕ඞཁͳͨΊɺ

    ౎౓&$ΠϯελϯεΛىಈ
    !26

    View full-size slide

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

    ʮ"1*ͷ࣮ߦճ਺Ͱεέʔϧ͢΂͠ʯ
    w ࠓճ͸"1*࣮ߦճ਺Λ੍ޚͰ͖Δ༻్

    ͷͨΊɺ͋͑ͯແࢹ
    w ΪϦΪϦ·ͰੑೳΛࡡΓऔΕΔΑ͏

    νϡʔχϯά
    ͜͜ͷδϣϒ਺ʹԠͯ͡

    ֤ΠϯελϯεΛεέʔϧ
    !27

    View full-size slide

  24. ɹղੳج൫ͷҠߦखॱͱ੒Ռ

    View full-size slide

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

    View full-size slide

  26. ɹ৽ج൫΁ͷҠߦखॱ
    ϑΣʔζچج൫ͱͷฒߦӡ༻
    w چج൫ͱ৽ج൫ͷ྆ํͰղੳΛ࣮ߦ
    w ৽ج൫ͷղੳ݁Ռ͸ࣺͯɺچج൫ͷղੳ݁ՌͷΈΛ࢒͢
    w ϲ݄΄Ͳฏߦӡ༻Λଓ͚ɺ৽ج൫ͷνϡʔχϯά΍Τϥʔमਖ਼Λߦͬͨ
    ϑΣʔζ৽ج൫΁ͷ׬શҠߦ
    w چج൫Λఀࢭ͠ɺ৽ج൫ͷղੳ݁ՌΛอଘ͢ΔΑ͏ʹมߋ
    ઴ਐతʹҠߦͰ͖ͨ
    !30

    View full-size slide

  27. ɹ৽ج൫΁ͷҠߦͷ݁Ռɾ੒Ռ
    Ҡߦ௚ޙʹҰ෦Ͱτϥϒϧ͕ൃੜ
    w Քಇதͷίϯςφ͕յΕΔɺ

    εέʔϦϯάʹࣦഊ͢ΔɺͳͲ
    w ݱࡏ͸҆ఆՔಇ
    ΞϓϦαʔόʹ͓͚Δো֐ղফ
    w ҠߦޙɺΞϓϦαʔόʹ͓͍ͯ

    ෛՙ໘Ͱͷো֐͸ൃੜ͍ͯ͠ͳ͍
    ӡ༻ίετ௿Լ
    w ΦϖϨʔγϣϯͷखؒ࡟ݮ
    w Πϯϑϥඅ༻΄΅มΘΒͣ
    إݕग़ͷਫ਼౓޲্
    w ͋Θͤͯإݕग़ثΛߋ৽ͨͨ͠Ί
    !31
    খ͍͞إɺԣإɺҰ෦ӅΕ͍ͯΔإ΋ݕग़Մೳʹ

    View full-size slide

  28. ɹࠓޙͷ՝୊
    إݕग़Ҏ֎ͷ৽ج൫΁ͷҠߦ
    w ݱࡏ͸إݕग़ͷΈΛ৽ج൫ʹҠߦࡁΈ
    w ਓ෺ݕग़ͳͲɺଞͷղੳ߲໨͸چج൫ͷ··
    w ΞϓϦαʔό΁ͷෛՙ΍ӡ༻ίετ͕େ͖͍෦෼͔Βணखͨ͠

    !32

    View full-size slide

  29. ɹ·ͱΊ
    ʮՈ଒ΞϧόϜΈͯͶʯ
    w Ո଒޲͚ΞϧόϜΞϓϦ
    w ๩͍͠ύύɾϚϚʹ΋؆୯Ͱ͔͍ͭ΍͘͢͢ΔͨΊɺ

    ඵಈըͳͲͷίϯςϯπࣗಈੜ੒ɺࣗಈఏҊػೳΛఏڙ
    w ͜ΕΒͷػೳ͸ɺإݕग़ͳͲͷϝσΟΞղੳٕज़Λ׆༻͍ͯ͠Δ
    ΈͯͶͷϝσΟΞղੳج൫ϦϓϨʔεͱ4BHF.BLFS
    w ΞϓϦαʔόͱಠཱͨ͠ϝσΟΞղੳج൫΁Ҡߦத
    w ৽ج൫Ͱ͸4BHF.BLFSΛར༻͠ɺӡ༻ίετΛ࡟ݮ
    !33

    View full-size slide

  30. 8FBSFIJSJOH
    NJUFOFVTSFDSVJU

    View full-size slide