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

The Art of Smart Channel

The Art of Smart Channel

Naoki Watanabe
LINE AD Dev Team1 Manager
https://linedevday.linecorp.com/jp/2019/sessions/B1-2

LINE DevDay 2019

November 20, 2019
Tweet

More Decks by LINE DevDay 2019

Other Decks in Technology

Transcript

  1. 2-Layered Personalization Online Contextual Bandits Recommendation Today’s Tomorrow’s Zodiac Notification

    Recommendation Notification Recommendation News Weather Fortune Sticker Manga Layer #2 Layer #1
  2. Layer #1 CRS Engine Event Tracker Joiner Learning worker Importer

    Contents Imp/Click Log Parameter Log Contents LINE APP
  3. How To Integrate With Service Service Side Mapping Provider Data

    Provider Redis Cluster HDFS User1, News_A User2, News_B Smart Channel Importer Get News Title, URL, Image
  4. 2-Layer Personalization(Again) Online Contextual Bandits Recommendation Today’s Tomorrow’s Zodiac Notification

    Recommendation Notification Recommendation News Weather Fortune Sticker Manga Layer #2 Layer #1
  5. Layer #2 CRS Engine Event Tracker Joiner Learning worker Importer

    Contents Imp/Click Log Parameter Log Contents LINE APP
  6. Bandit Algorithms > Rewards is user happiness > Combination of

    exploration and exploitation > Algorithms to maximize the rewards (= earnings)
  7. How To Evaluate Contents CRS Engine Event Tracker Joiner Learning

    worker Importer Contents Imp/Click Log Parameter Log Contents LINE APP
  8. Delayed Consumer Imp/Click Joined Kafka Redis Joiner EventTracker Delayed Imp

    Kafka Click/Mute Kafka Imp Kafka Imp Consumer Click/Mute Consumer 10min later Imp Click/Mute Timer
  9. Bandit Arms: News Contents 20-24 25-29 30-34 35-39 40-44 M

    F M F M F M F M F 4af3e1d 0.57 0.52 0.59 0.57 0.64 0.65 0.68 0.64 0.76 0.73 2ulf3a4 0.73 0.38 0.67 0.39 0.61 0.40 0.58 0.40 0.51 0.41 1a0ew3 0.42 0.71 0.46 0.66 0.48 0.61 0.54 0.54 0.58 0.50 w2ag67 0.51 0.61 0.53 0.67 0.51 0.68 0.56 0.69 0.57 0.70 xr02h1 0.65 0.55 0.61 0.58 0.63 0.59 0.59 0.60 0.58 0.60 age x gender x id
  10. Bandit Arms: Weather Contents 20-24 25-29 30-34 35-39 40-44 M

    F M F M F M F M F Weather 0.48 0.56 0.47 0.58 0.51 0.57 0.52 0.58 0.55 0.59 0.53 0.51 0.51 0.52 0.55 0.53 0.55 0.57 0.54 0.54 0.61 0.62 0.62 0.63 0.62 0.66 0.62 0.64 0.62 0.66 0.68 0.67 0.65 0.67 0.67 0.67 0.66 0.67 0.68 0.67 0.72 0.73 0.71 0.72 0.71 0.75 0.74 0.72 0.73 0.74 age x gender x type x hour
  11. Bandit Arms: Weather Contents 20-24 25-29 30-34 35-39 40-44 M

    F M F M F M F M F Weather 0.48 0.56 0.47 0.58 0.51 0.57 0.52 0.58 0.55 0.59 0.53 0.51 0.51 0.52 0.55 0.53 0.55 0.57 0.54 0.54 0.61 0.62 0.62 0.63 0.62 0.66 0.62 0.64 0.62 0.66 0.68 0.67 0.65 0.67 0.67 0.67 0.66 0.67 0.68 0.67 0.72 0.73 0.71 0.72 0.71 0.75 0.74 0.72 0.73 0.74 age x gender x type x hour
  12. Bandit Arms Contents 20-24 25-29 30-34 35-39 40-44 M F

    M F M F M F M F 0.52 0.53 0.51 0.54 0.52 0.54 0.53 0.54 0.53 0.54 0.53 0.52 0.55 0.51 0.56 0.54 0.57 0.53 0.58 0.54 0.58 0.59 0.57 0.58 0.55 0.54 0.54 0.54 0.51 0.52 0.58 0.56 0.57 0.56 0.55 0.54 0.55 0.54 0.52 0.53 0.58 0.57 0.58 0.56 0.52 0.54 0.51 0.52 0.52 0.51
  13. Load Balancing > Store data for each arm Arms >

    Split every K into Partition P=1 P=2 P=3 > Always use the same instance for arm and partition id pairs > Consistent hash by Proxy(NGINX) 1 2 3 4 5 6 7 Arm=3 Partition=3 Arm=2 Partition=1
  14. For Huge Traffic CRS Engine Imp/Click Joined Kafka Learning Worker

    Worker Proxy Parameter Proxy Parameter Server Model Parameter Redis Trainer Ranker Learning Dispatcher
  15. Hetero-Architecture CRS Engine Imp/Click Joined Kafka Learning Worker Worker Proxy

    Parameter Proxy Parameter Server Model Parameter Redis Learning Dispatcher Realtime Async
  16. Hetero-Architecture CRS Engine Imp/Click Joined Kafka Learning Worker Worker Proxy

    Parameter Proxy Parameter Server Model Parameter Redis Learning Dispatcher Java Python
  17. Flow CRS Engine Event Tracker Joiner Learning worker Importer Contents

    Imp/Click Log Parameter Log Contents LINE APP
  18. Test Problem > Test with limited users in the Production

    environment > Verify the performance of recommendation > Hard to test recommendation on test environment
  19. Gradual Rollout > A/B test support tool called Libra >

    Exposure is limited to n% users > ID can also be specified
  20. Disadvantages of Bandit > Bandit arms are only age x

    gender. > Should optimize by user basis > It takes a certain time(10min~) to learn Content B Content C Content a Personalize??
  21. 2-Sided Features+ User side > Age > Gender Contents side

    > Time > Id > Score > etc.. > Past CTR > Past xCTR
  22. User Feature User CTR xCTR CTR xCTR CTR xCTR CTR

    xCTR CTR xCTR UserA 0.57 0.47 0.87 0.37 0.47 0.57 0.67 0.47 0.37 0.47 UserB 0.53 0.37 0.47 0.57 0.67 0.47 0.51 0.52 0.67 0.37 UserC 0.51 0.52 - - 0.57 0.52 0.57 0.53 - - UserD 0.52 0.51 0.57 0.53 0.54 0.53 - - 0.56 0.53 UserE 0.55 0.54 0.57 0.51 0.53 0.51 0.68 0.34 0.53 0.47
  23. Bandit API Flow Bandit API Other Service Event Tracker Learning

    Worker UserID, IDs A,B,C,D UserID, Ranked IDs C,D,B,A Imp/Click Log Parameter
  24. Location & Beacon >Limited content in specific places > Make

    LINE Beacon experience mach more fun > Show local weather by user location
  25. > Day2: C2-1 12:00-12:40 > LINE-Like Product Development Using Smart

    Channel as an Example "LINE-Like" Product Management > Poster Session 13:40-14:20/15:30-16:10 (2days) > Case Studies on Smart Channel Platforms and How To Improve Content > Day1: C1-7 18:10-18:50 > Explanation of SmartChannel From the Perspective of ML / DA Engineer Building a Smart Recommender System Across LINE Services Continuous Improvements in Smart Channel Platform/Contents Related Presentation