Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Stephanie deWet, Software Engineer, Pinterest at MLconf SF 2016

730 views

Published on

Personalized Content Blending in the Pinterest Homefeed: The Pinterest Homefeed is a personalized feed of content (or “Pins”) drawn from many sources, including followed users, followed topics, and recommendations, among other sources. Each types of content is ranked by its own specialized machine learning model, and then blended with a ratio-based round robin to create the final Homefeed.

This presentation dives into how the current system evolved, and describes in depth an approach for personalizing the content blending ratio. This method uses historical user action data and models the Pin action rates of each pin type as a Bernoulli distribution. Each content type’s overall utility is modeled as a sum of the Pin action rate distributions, weighted by action-specific reward constants. I will discuss different methods for assigning blending ratios based on the utility distribution.

As we iterate on our blending systems, new questions have arisen as to how we measure success. . Unlike traditional search ranking problems, Pinterest faces both short- and long-term optimization challenges as we balance immediate user-engagement metric movements and long term ecosystem health. This talk concludes with an overview of some of the different dimensions of success we currently monitor as we continue to work on blending.

Published in: Technology

Stephanie deWet, Software Engineer, Pinterest at MLconf SF 2016

  1. 1. Personalizedcontentblending
 InthePinteresthomefeed StephaniedeWet,
 PinterestEngineer Pinterest
  2. 2. Whatisahomefeed? Blendingmodel. Agenda 1 2
  3. 3. Whatisa
 homefeed? 1
  4. 4. Pinterestisa personalized catalogofideas.
  5. 5. men’s style Jacob Hinmon End Clothing Men’s blue jacket PinAvisualbookmark savedfromthe internetbyauser.
  6. 6. Weserve
 morethan3trillion Pinseveryyear,
 orabout
 10billionaday.
  7. 7. Followedtopics
  8. 8. Followedusers
  9. 9. Recommendations
  10. 10. Theresultis…
  11. 11. Recommendation Social Newcontent Howdoesthe
 homefeedwork?
  12. 12. Recommendations Ranking Model Social Connections Ranking Model Source Source Recommendation Social Newcontent Howdoesthe
 homefeedwork?
  13. 13. Howdoesthe
 homefeedwork? Recommendations Ranking Model Social Connections Ranking Model Source Recspool Social poolSource Recommendation Social Newcontent
  14. 14. Contentranking Wehavedifferentmodelsforeachtypeofcontent.
  15. 15. Contentranking Wehavedifferentmodelsforeachtypeofcontent. Why?
  16. 16. Contentranking Wehavedifferentmodelsforeachtypeofcontent. Why? • Parallelizesmodeldevelopment
  17. 17. Contentranking Wehavedifferentmodelsforeachtypeofcontent. Why? • Parallelizesmodeldevelopment • Differentcontenttypesmayhavedifferentimportantfeatures
  18. 18. Contentranking Wehavedifferentmodelsforeachtypeofcontent. Why? • Parallelizesmodeldevelopment • Differentcontenttypesmayhavedifferentimportantfeatures • Differentcontenttypesmayhavedifferentobjectivefunctions
  19. 19. Contentranking Wehavedifferentmodelsforeachtypeofcontent. Why? • Parallelizesmodeldevelopment • Differentcontenttypesmayhavedifferentimportantfeatures • Differentcontenttypesmayhavedifferentobjectivefunctions • Easytoaddnewtypesofcontent
  20. 20. Contentranking Wehavedifferentmodelsforeachtypeofcontent. Why? • Parallelizesmodeldevelopment • Differentcontenttypesmayhavedifferentimportantfeatures • Differentcontenttypesmayhavedifferentobjectivefunctions • Easytoaddnewtypesofcontent • Workswellinpractice
  21. 21. Theblendingproblem Recspool Social pool Blender ? homefeed Goal:Combinetheresultsfromthepoolsintoonesortedfeed.
  22. 22. Theblendingproblem Goal:Combinetheresultsfromthepoolsintoonesortedfeed.
  23. 23. Theblendingproblem Goal:Combinetheresultsfromthepoolsintoonesortedfeed. Constraints
  24. 24. Theblendingproblem Goal:Combinetheresultsfromthepoolsintoonesortedfeed. Constraints • Mustmaintaintherankingofeachpool.
  25. 25. Theblendingproblem Goal:Combinetheresultsfromthepoolsintoonesortedfeed. Constraints • Mustmaintaintherankingofeachpool. • Scoresarenotcomparableacrosspools.
  26. 26. Theblendingproblem Goal:Combinetheresultsfromthepoolsintoonesortedfeed. Constraints • Mustmaintaintherankingofeachpool. • Scoresarenotcomparableacrosspools. Desiredtraits
  27. 27. Theblendingproblem Goal:Combinetheresultsfromthepoolsintoonesortedfeed. Constraints • Mustmaintaintherankingofeachpool. • Scoresarenotcomparableacrosspools. Desiredtraits • Userswithsignificantpriorhistoryshouldseemoreofthecontenttypestheyprefer.
  28. 28. Theblendingproblem Goal:Combinetheresultsfromthepoolsintoonesortedfeed. Constraints • Mustmaintaintherankingofeachpool. • Scoresarenotcomparableacrosspools. Desiredtraits • Userswithsignificantpriorhistoryshouldseemoreofthecontenttypestheyprefer. • Weshouldbeabletocontroltheblendingrateforuserswithlittlepriorhistory;theseusers shouldseesomeofalltypesofcontent.
  29. 29. Blending model 2
  30. 30. Whichmodel?
  31. 31. Whichmodel? • Fixedratio
  32. 32. Whichmodel? • Fixedratio • Calibraterankingmodels
  33. 33. Whichmodel? • Fixedratio • Calibraterankingmodels • Multi-armedbanditapproach
  34. 34. Model:Multi-armedbandit Eacharmofthebanditrepresentsoneofthepools. Recommendations Friends
  35. 35. Samplingtechnique • Unliketheclassicalbanditproblem,wedonotget feedbackaftereverysample. • Instead,wewillsamplecontentinbatches. • Ineachround,wewillmapthepoolaffinitiesonto anintegerratio.
  36. 36. Data Foreachuserandpool,wehavehistoricengagementdata. Totalnumberof: • PositiveActions(Clickthroughs,Repins,Closeups,…) • NegativeActions(Hides) • Views
  37. 37. Betadistribution Beta(5, 10) Beta(10, 5) Beta(50, 50) E(Beta) = # actions / # views
  38. 38. Responsedistribution Weshouldrepresenteachtypeofactionwithitsownbeta distribution,anditsownreward. Wehavealinearcombinationofresponsesfromeachbandit. + … + rhide *rsave * Recs HideSave Friends Recs Friends
  39. 39. Responsedistribution Weshouldrepresenteachtypeofactionwithitsownbeta distribution,anditsownreward. Inessence,wehavealinearcombinationofbandits. Soweendupwiththefullutilityofapool:
  40. 40. Howdidwedo? Goal:Combinetheresultsfromthepoolsintoonesortedfeed. Constraints • Mustmaintaintherankingofeachpool. • Scoresarenotcomparableacrosspools. Desiredtraits • Userswithsignificantpriorhistoryshouldseemoreofthecontenttypestheyprefer. • Weshouldbeabletocontroltheblendingrateforuserswithlittlepriorhistory;theseusers shouldseesomeofalltypesofcontent.
  41. 41. Priordistribution Foruserswithlittledata,wewanttoenforce that“theyshouldseesomeofeachofthe
 typesofcontentineverypage.” Wecanenforcethiswithadditionalprioractioncounts. Prioractionscanbeselectedtogiveusthedesiredinitial blendfornewusers,andthedesiredrateofchange.
  42. 42. Samplingtechnique • Ineachround,wewillmaptheexpectedvalues
 ofthepoolutilitiesontoanintegerratio.
  43. 43. Howdidwedo? Goal:Combinetheresultsfromthepoolsintoonesortedfeed. Constraints • Mustmaintaintherankingofeachpool. • Scoresarenotcomparableacrosspools. Desiredtraits • Userswithsignificantpriorhistoryshouldseemoreofthecontenttypestheyprefer. • Weshouldbeabletocontroltheblendingrateforuserswithlittlepriorhistory;theseusers shouldseesomeofalltypesofcontent.
  44. 44. Example Rewards Positive action 1 Negative action -1
  45. 45. Example Prior Values Positive action 50 Negative action 0 View 1000
  46. 46. Pool # Positive Actions # Negative Actions # Views Utility Function Friends 5000 + 50 0 + 0 10000 + 1000 Recommendation s 0 + 50 500 + 0 10000 + 1000 Userwithhistory
  47. 47. Pool Utility Function Expected Utility Mapped To Ratio Friends 0.46 10 Recommendations -0.04 0 Userwithhistory
  48. 48. Userwithhistory
  49. 49. Newuser Pool # Positive Actions # Negative Actions # Views Utility Function Friends 2 + 50 0 + 0 100 + 1000 Recommendations 2 + 50 0 + 0 10 + 1000
  50. 50. Pool Utility Function Expected Utility Mapped To Ratio Friends 0.047 5 Recommendations 0.051 5 Newuser
  51. 51. Newuser
  52. 52. Howdidwedo?
  53. 53. A/Bexperimentresults 4 3 2 0 %Changeofenabledvscontrol Fractionofuserswhotake1+positiveaction 1 Daysintheexperiment 5 10 15 20
  54. 54. A/Bexperimentresults 4 3 2 Daysintheexperiment %Changeofenabledvscontrol Rateofpositiveactionsonviewedcontent 1 0 5 10 15 20
  55. 55. Personalizingtheratio .25 FractionPinsseenfromsocialpool Fractionofusers .4 .3 .2 .1 .4 .3 .2 .1 .50 .75 .25 .50 .75 Control Enabled
  56. 56. Conclusions Thismodelseemssimple,butitworkedincrediblywellinpractice. Whywasitsuccessful? • Tunablevariablesgiveuscontroloverbusinessobjectives. • Easytoaddnewpoolsofcontent. • Didn’trelyonanyinformationfromtherankingmodels.
  57. 57. Thanks!We’rehiring sdewet@pinterest.com

×