RecSys 2015 - Unifying the Problem of Search and Recommendations at OpenTable

51
Unifying the Problem of Search and Recommendations at OpenTable Jeremy Schiff, Ph.D. RecSys 2015 09/20/2015

Transcript of RecSys 2015 - Unifying the Problem of Search and Recommendations at OpenTable

Page 1: RecSys 2015 - Unifying the Problem of Search and Recommendations at OpenTable

Unifying the Problem of Search and Recommendations at OpenTable

Jeremy Schiff, Ph.D.RecSys 201509/20/2015

Page 2: RecSys 2015 - Unifying the Problem of Search and Recommendations at OpenTable
Page 3: RecSys 2015 - Unifying the Problem of Search and Recommendations at OpenTable

BEFORE DURING AFTER

DIN

ERS

REST

AURA

NTS

Understanding& Evolving

Attracting &Planning

OpenTable: Deliver great experiences at every step, based on who you are

Proprietary 3

Page 4: RecSys 2015 - Unifying the Problem of Search and Recommendations at OpenTable

OpenTable in Numbers•Our network connects diners with more than 32,000 restaurants worldwide.•Our diners have spent approximately $35 billion at our partner restaurants.•OpenTable seats more than 17 million diners each month.• Every month, OpenTable diners write more than 475,000 restaurant reviews

4

Page 5: RecSys 2015 - Unifying the Problem of Search and Recommendations at OpenTable

OpenTable Data Ecosystem

Search(Context & Intent)

Restaurant Profile(Decision Confidence)

Reservation History (Verifying the Loop)

Reviews(Verifying the Loop)

User’s LocationSearch LocationDate, TimeQuery

Reviews, Ratings (Overall, Food, Noise Level, etc)

Seating Logs

Photos, Reviews, Ratings, Menus

Page 6: RecSys 2015 - Unifying the Problem of Search and Recommendations at OpenTable

OpenTable Data Ecosystem

Search(Context & Intent)

Restaurant Profile(Decision Confidence)

Reservation History (Verifying the Loop)

Reviews(Verifying the Loop)

User’s LocationSearch LocationDate, TimeQuery

Reviews, Ratings (Overall, Food, Noise Level, etc)

Seating Logs

Photos, Reviews, Ratings, MenusUser

Interaction Logs

Page 7: RecSys 2015 - Unifying the Problem of Search and Recommendations at OpenTable

So what are recommendations?

Page 8: RecSys 2015 - Unifying the Problem of Search and Recommendations at OpenTable

So what are recommendations?

Page 9: RecSys 2015 - Unifying the Problem of Search and Recommendations at OpenTable

What’s the Goal

Minimizing Engineering Time to Improve The Metric that Matters

•Make it Easy to Measure•Make it Easy to Iterate• Reduce Iteration Cycle Times

9

Page 10: RecSys 2015 - Unifying the Problem of Search and Recommendations at OpenTable

Pick Your Business MetricRevenue, Conversions •OpenTable • Amazon

Retention, Engagement•Netflix• Pandora• Spotify

10

Page 11: RecSys 2015 - Unifying the Problem of Search and Recommendations at OpenTable

Importance of A/B Testing• If you don’t measure it, you can’t improve it

•Metrics Drive Behavior

• Continued Forward Progress

11

Page 12: RecSys 2015 - Unifying the Problem of Search and Recommendations at OpenTable

The Optimization Loops

Introspect Offline Learning

OnlineLearning

Hours Days Weeks

12

Page 13: RecSys 2015 - Unifying the Problem of Search and Recommendations at OpenTable

13

The ingredients of a spectaculardining experience…

Page 14: RecSys 2015 - Unifying the Problem of Search and Recommendations at OpenTable

14

… and a spectacularly bad one

Page 15: RecSys 2015 - Unifying the Problem of Search and Recommendations at OpenTable

Examples of Topics (using MF)

15

Page 16: RecSys 2015 - Unifying the Problem of Search and Recommendations at OpenTable

Edit via the Header & Footer menu in PowerPoint

1616

Page 17: RecSys 2015 - Unifying the Problem of Search and Recommendations at OpenTable

Lead

Tim

eLe

ad T

ime

Distance

Distance

New York

Dallas

Lead Time

95%

95%

Page 18: RecSys 2015 - Unifying the Problem of Search and Recommendations at OpenTable

Query Logs• Effective mechanism for understanding what users are trying to do

• Reducing 0 result queries

- Anecdote: should we support zipcodes next?

Page 19: RecSys 2015 - Unifying the Problem of Search and Recommendations at OpenTable

Search to Recommendations Continuum• Common Themes

- Ranking always tries to move key metric (like conversion)

- Always leverage implicit signals (time of day, day of week, location, etc)

- User Control vs. Paradox of ChoiceAdvantage Example Stage Item Count

Search User Control $$, French, Takes Credit Card

Retrieval Many

Browse Use Case Control Great View / Romantic

Ranking Many

Recommend Data-Driven Flexibility

Best around me Ranking Few

Page 20: RecSys 2015 - Unifying the Problem of Search and Recommendations at OpenTable

Differences in Recommender Usage

Right now vs. Planning

Cost of Being Wrong

Search vs. Recommendations

20

Page 21: RecSys 2015 - Unifying the Problem of Search and Recommendations at OpenTable

Search vs. RecommendationsCollaborative Filtering Models• Personalized•Without Context

Search • Leverage Context•Using CF as One of Many Inputs

Page 22: RecSys 2015 - Unifying the Problem of Search and Recommendations at OpenTable

Search & Recommendation Stack

Query Interpretation

Retrieval

Ranking – Item & Explanation

Index Building

Context for Query & User

Model Building

Explanation Content

Visualization

CollaborativeFilters

Item / User Metadata

22

Page 23: RecSys 2015 - Unifying the Problem of Search and Recommendations at OpenTable

Using Context, Frequency & Sentiment• Context

- Implicit: Location, Time, Mobile/Web

- Explicit: Query

• High End Restaurant for Dinner

- Low Frequency, High Sentiment

• Fast, Mediocre Sushi for Lunch

- High Frequency, Moderate Sentiment

23

Page 24: RecSys 2015 - Unifying the Problem of Search and Recommendations at OpenTable

Offline Models with Limited Data• Minimize Confusing User Experience

• Little to No Data- Heuristics

Encoding Product Expectations• Eg: Romantic Dates are not $. Sushi is not good for

Breakfast• Limited Data

- Data-Informed Eg: Analyze what Cuisines Users Click on when they

Query for Lunch

Page 25: RecSys 2015 - Unifying the Problem of Search and Recommendations at OpenTable

Offline Models with Significant Data• Compensate for Sparseness• As Signals Improve, Popular -> Personalized•OpenTable Example

- Context: User Location, Searched Location, Query, etc.

• Learning to Rank- E [ Revenue | Query, Position, Item, User ]- E [ Engagement | Query, Position, Item, User ]- Regression, RankSVM, LambdaMart…

Page 26: RecSys 2015 - Unifying the Problem of Search and Recommendations at OpenTable

The Metric Gap

26

Training Test

Training Error

Generalization Error

RMSE Precision @ K

Stage

Example

Page 27: RecSys 2015 - Unifying the Problem of Search and Recommendations at OpenTable

The Metric Gap

27

Training Error

Generalization Error

RMSE Precision @ K

Stage

Example

Generalization Gap

Training Test

Page 28: RecSys 2015 - Unifying the Problem of Search and Recommendations at OpenTable

The Metric Gap

28

Training Error

Generalization Error

RMSE Precision @ K

Stage

Example

Learning to Rank

Training Test

Page 29: RecSys 2015 - Unifying the Problem of Search and Recommendations at OpenTable

The Metric Gap

Training Error

Generalization Error A/B Metric

RMSE Precision @ K Conversion

Learning to Rank

Stage

Example

Offline (Hours) Online (Weeks)

Page 30: RecSys 2015 - Unifying the Problem of Search and Recommendations at OpenTable

The Metric Gap

30

Training Error

Generalization Error A/B Metric

RMSE Precision @ K Conversion

Learning to Rank

Stage

Example

Offline (Hours) Online (Weeks)

Offline -> Online Gap

Page 31: RecSys 2015 - Unifying the Problem of Search and Recommendations at OpenTable

Online Learning – Overview• Naïve Online Learning is A/B testing

- Try different sets of parameters, pick the winner

•Multi-Arm Bandit- Exploiting the parameter

sets that do well- Exploring parameters that

we don’t understand well yet (high variance)

Page 32: RecSys 2015 - Unifying the Problem of Search and Recommendations at OpenTable

Online Learning – Implementation• Iteration Loop

- Add Sets of Parameters - Explore vs. Exploit

Current Parameters• Validate Online Learning with A/B testing•Note: Tradeoff in Time to Statistical Significance

Page 33: RecSys 2015 - Unifying the Problem of Search and Recommendations at OpenTable

Example – Start with 1 arm

Parameter

Met

ric

Page 34: RecSys 2015 - Unifying the Problem of Search and Recommendations at OpenTable

Example – Resample arm

Parameter

Met

ric

Page 35: RecSys 2015 - Unifying the Problem of Search and Recommendations at OpenTable

Example – Determine 2nd Arm

Parameter

Met

ric

Page 36: RecSys 2015 - Unifying the Problem of Search and Recommendations at OpenTable

Example – Select Arm

Parameter

Met

ric

Page 37: RecSys 2015 - Unifying the Problem of Search and Recommendations at OpenTable

Example – Improve Arm’s Estimation

Parameter

Met

ric

Page 38: RecSys 2015 - Unifying the Problem of Search and Recommendations at OpenTable

Example – Select Arm

Parameter

Met

ric

Page 39: RecSys 2015 - Unifying the Problem of Search and Recommendations at OpenTable

Example – Learn from Arm

Parameter

Met

ric

Page 40: RecSys 2015 - Unifying the Problem of Search and Recommendations at OpenTable

Example – Determine New Arm

Parameter

Met

ric

Page 41: RecSys 2015 - Unifying the Problem of Search and Recommendations at OpenTable

Training DataFlow

Collaborative Filter Service

(Realtime)

Collaborative Filter HyperParameter Tuning

(Batch with Spark)

Collaborative Filter Training

(Batch with Spark)

Page 42: RecSys 2015 - Unifying the Problem of Search and Recommendations at OpenTable

Training DataFlow

Collaborative Filter Service

(Realtime)

Collaborative Filter HyperParameter Tuning

(Batch with Spark)

Collaborative Filter Training

(Batch with Spark)

Search Service(Realtime)

Search HyperParameter Tuning

(Batch with Spark)

Search Training(Batch with Spark)

Page 43: RecSys 2015 - Unifying the Problem of Search and Recommendations at OpenTable

Training DataFlow

Collaborative Filter Service

(Realtime)

Collaborative Filter HyperParameter Tuning

(Batch with Spark)

Collaborative Filter Training

(Batch with Spark)

Search Service(Realtime)

Search HyperParameter Tuning

(Batch with Spark)

Search Training(Batch with Spark)

User Interaction Logs(Kafka)

Frontends & Backend Services

Page 44: RecSys 2015 - Unifying the Problem of Search and Recommendations at OpenTable

Training DataFlow

Collaborative Filter Service

(Realtime)

Collaborative Filter HyperParameter Tuning

(Batch with Spark)

Collaborative Filter Training

(Batch with Spark)

Search Service(Realtime)

Search HyperParameter Tuning

(Batch with Spark)

Search Training(Batch with Spark)

User Interaction Logs(Kafka)

Online Learning

Frontends & Backend Services

Page 45: RecSys 2015 - Unifying the Problem of Search and Recommendations at OpenTable

Training DataFlow

Collaborative Filter Service

(Realtime)

Collaborative Filter HyperParameter Tuning

(Batch with Spark)

Collaborative Filter Training

(Batch with Spark)

Search Service(Realtime)

Search HyperParameter Tuning

(Batch with Spark)

Search Training(Batch with Spark)

User Interaction Logs(Kafka)

Online Learning

Frontends & Backend Services

A/B Validation

Page 46: RecSys 2015 - Unifying the Problem of Search and Recommendations at OpenTable

Compelling Recommendations

46

Page 47: RecSys 2015 - Unifying the Problem of Search and Recommendations at OpenTable

Recommendation Explanations• Amazon

• Ness

• Netflix

• Ness - Social

47

Page 48: RecSys 2015 - Unifying the Problem of Search and Recommendations at OpenTable

Summarizing Content

• Essential for Mobile• Balance Utility With Trust?

- Summarize, but surface raw data

• Example: - Initially, read every review- Later, use average star rating

48

Page 49: RecSys 2015 - Unifying the Problem of Search and Recommendations at OpenTable

Summarizing Restaurant Attributes

49

Page 50: RecSys 2015 - Unifying the Problem of Search and Recommendations at OpenTable

Dish Recommendation•What to try once I have arrived?

50

Page 51: RecSys 2015 - Unifying the Problem of Search and Recommendations at OpenTable

Thanks!

Jeremy Schiff, [email protected]

Other OpenTable Members @ RecSys:Sudeep Das & Pablo Delgado