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

Go as an aggregator in recommendation systems

Go as an aggregator in recommendation systems

Agata Naomichi

July 26, 2018
Tweet

More Decks by Agata Naomichi

Other Decks in Programming

Transcript

  1. ©2018 Wantedly, Inc.
    Go as an aggregator
    In Recommendation Systems
    26.Jul.2018 - Naomichi Agata

    View Slide

  2. ©2018 Wantedly, Inc.
    agatan
    Software engineer at Wantedly, inc.
    Server side + Machine learning
    Github
    Twitter
    @agatan
    @agatan_

    View Slide

  3. ©2018 Wantedly, Inc.
    Everything is a Recommendation
    https://medium.com/netflix-techblog/netflix-recommendations-beyond-the-5-stars-part-1-55838468f429

    View Slide

  4. ©2018 Wantedly, Inc.
    Recommendations
    ΄ͱΜͲͷαʔϏεͰʮԿ͔Λਪન͢Δʯͱ͍͏ػೳ͸͋Δ

    View Slide

  5. ©2018 Wantedly, Inc.
    Impact of Recommendations
    ⾣Linkedinͷͭͳ͕Γͷ50%Ҏ্͸ʮ஌Γ߹͍Ͱ͔͢ʁʯܦ༝

    https://engineering.linkedin.com/teams/data/projects/pymk
    ⾣Netflix͸ਪનγεςϜͷcompetition Λ։࠵͠৆ۚ$1 Million Λग़͍ͯ͠Δ

    https://medium.com/netflix-techblog/netflix-recommendations-beyond-the-5-stars-part-1-55838468f429

    View Slide

  6. ©2018 Wantedly, Inc.
    Components of Recommendations
    ਪનͷࠜڌ͸͍ΖΜͳ৔ॴʹ͋Δ
    ⾣ʮ˓˓͞Μ͕-JLF͠·ͨ͠ʯ
    ⾣ʮ͜ͷ঎඼Λߪೖͨ͠ਓ͸͜ͷ঎඼΋ങ͍ͬͯ·͢ʯ
    ⾣ʮڞ௨ͷͭͳ͕Γ͕ਓ͍·͢ʯ
    ⾣ʮ࿩୊ͷχϡʔεʯ
    ⾣ʮ˓˓Λݕࡧͨ͠ํ΁ʯ
    ⾣ʮಉ͡ձࣾͰಇ͍͍ͯΔϢʔβʯ

    View Slide

  7. ©2018 Wantedly, Inc.
    Order of Recommendations
    ΑΓྑ͍ΞΠςϜΛɺΑΓྑ͍ॱংͰఏࣔ͢Δ͜ͱ͕ٻΊΒΕΔ
    ⾣Hot Topics ͸ͳΔ΂͘଎͘ఏ͍ࣔͨ͠
    ⾣֬ݻͨΔࣗ৴ͷ͋ΔਪનΛ༏ઌͯ͠ݟ͍ͤͨ
    ⾣શମͰͷਓؾॱΑΓ΋ύʔιφϥΠζͨ͠ॱংΛఏڙ͍ͨ͠
    ⾣αʔϏεݻ༗ͷׂΓࠐΈ΋͋Δ͔΋͠Εͳ͍
    by Google

    View Slide

  8. ©2018 Wantedly, Inc.
    Recommendations with strategies

    View Slide

  9. ©2018 Wantedly, Inc.
    aggregator
    Strategy
    Strategy
    Strategy
    Strategy
    ༑ୡ͕-JLFͨ͠ΞΠςϜΛఏࣔ
    ߪೖཤྺ͔Βͷ͓͢͢Ί
    ࿩୊ͷΞΠςϜ
    ϓϩϑΟʔϧ͔Βͷ͓͢͢Ί
    Recommendations with strategies
    Strategy Λ࣮ߦ
    ݁ՌΛू໿
    re-ordering
    ฒߦॲཧ

    View Slide

  10. ©2018 Wantedly, Inc.
    Recommendations with strategies
    ֤strategy͕ਪનΞΠςϜΛఏࣔ
    UZQF4USBUFHZJOUFSGBDF\
    /BNF
    4USBUFHZ/BNF
    4VHHFTU DUYDPOUFYU$POUFYU VTFS*%JOU TJ[FJOU
    <>4VHHFTU6TFS FSSPS

    ^
    UZQF4VHHFTU6TFSTUSVDU\
    6TFS*%JOU
    4DPSFqPBU
    4USBUFHZ/BNF4USBUFHZ/BNF
    3FBTPOJOUFSGBDF\^GPSMPHHJOH
    ^

    View Slide

  11. ©2018 Wantedly, Inc.
    Recommendations with strategies
    ͦΕΒΛฒߦʹ࣮ߦ͠ू໿
    ࠷ऴతͳॱংΛܾఆ͢Δ
    [email protected] TSBOHFTUSBUFHJFT\
    XH"EE

    HPGVOD T4USBUFHZ
    \
    EFGFSXH%POF

    TT FSST4VHHFTU DUY VTFS*% TJ[F

    JGFSSOJM\
    SFQPSUFSSPS
    SFUVSO
    ^
    NV-PDL

    TVHHFTUJPOTBQQFOE TVHHFTUJPOT TT

    NV6OMPDL

    ^ T

    ^

    View Slide

  12. ©2018 Wantedly, Inc.
    Why Go?
    Machine Learning ͱ Microservices ͳߏ੒
    ˠ֤Strategy ͸API CallΛؚΈ͏Δ
    ˠฒߦॲཧʹڧ͍͜ͱ͕׆͖Δ
    aggregator microservices

    View Slide

  13. ©2018 Wantedly, Inc.
    Responsibility of Aggregator
    ⾣Logging
    ⾣ ͲͷStrategy ͕Ͳͷ͘Β͍੒ՌΛ͍͋͛ͯΔ͔
    ⾣֤Strategy ͷείΞͷॏΈ෇͚࿨ʹΑΔϥϯΩϯά
    ⾣e.g. ͢Ͱʹఏࣔͨ͜͠ͱͷ͋ΔΞΠςϜͷείΞΛݮਰͤ͞Δ
    ⾣A/B Testing

    View Slide

  14. ©2018 Wantedly, Inc.
    Problems…
    ⾣Frror reporting
    ⾣ ͋Δstrategy ͕ࢮΜͰ͍ͯ΋શମ͸ࢭ·Βͳ͍Ͱ΄͍͠
    ⾣ࢮΜͩ͜ͱʹ͸ؾ෇͖͍ͨ
    ⾣Frror reporting service Λ׆༻
    ⾣ෳ਺ͷStrategy Ͱಉ͡API CallΛͨ͘͠ͳΔ
    ⾣e.g. Profile Service ʹॴଐΛ໰͍߹ΘͤΔ࠷ۙങͬͨ঎඼ͷΧςΰϦ͕஌Γ͍ͨ
    ⾣HPMBOHPSHYTZODTJOHMFqJHIU ΍ΠϯϝϞϦΩϟογϡͰແཧ໼ཧଋͶΔ
    ⾣Ͳ͜·Ͱaggregator ͕ܭࢉ͢Δ΂͖͔

    View Slide

  15. ©2018 Wantedly, Inc.
    Conclusion
    ⾣ਪનγεςϜ͸͍ΖΜͳཁૉͷ૊Έ߹Θͤ
    ⾣Microservices / Machine Learning
    ⾣A/B Test ͕ॏཁ
    ⾣࣮ࡍʹԿΛݟ͔ͤͨɺԿ͕Action ʹͭͳ͕͔ͬͨLogging ͍ͨ͠
    ⾣લஈʹGo Λ͓͘ͱศར
    ⾣Concurrent ʹ͍ΖΜͳStrategy Λ࣮ߦ͢Δͷ͕؆୯

    View Slide