際際滷

際際滷Share a Scribd company logo
Using Data Science to
Transform OpenTable Into
Your Local Dining Expert
Pablo Delgado @pablete
Sudeep Das @datamusing
 Over 32,000 restaurants worldwide
 more than 760 million diners seated since 1998, representing
more than $30 billion spent at partner restaurants
 Over 16 million diners seated every month
 OpenTable has seated over 190 million diners via a mobile
device. Almost 50% of our reservations are made via a
mobile device
 OpenTable currently has presence in US, Canada, Mexico,
UK, Germany and Japan
 OpenTable has nearly 600 partners including Facebook,
Google, TripAdvisor, Urbanspoon, Yahoo and Zagat.
2
OpenTable
the worlds leading provider of online restaurant
reservations
At OpenTable
we aim to power
the best dining
experiences!
Ingredients of a
magical experience
Understanding the diner Understanding the restaurant
Building up a profile of you as a diner
from explicit and implicit signals -
information you have provided,
reviews you have written, places you
have dined at etc.
What type of restaurant is it?
What dishes are they known for?
Is it good for a date night/ family
friendly/ has amazing views etc.
Whats trending?
Connecting the dots
we have a wealth
of data
30 million reviews
diner
requests and
notes
menus
external
ratings,
searches and
transactions
images
Making
meaningful
recommendation
7
diner-restaurant
Interactions
restaurant metadata
The basic ingredients
user metadata
ratings|searches|reviews

cuisine|price range|hours|topics

user profile
Making
recommendations
starts with collecting
the signal
9
 We are mining log data all the way back to 2010 with Spark
 The result is to compute the number of times each user has searched for a restaurant.
SingleSearches(timestamp, rid, uid, reservationSlot,
partySize)
2014-01-01 08:00:13 W3SVC1554668004 10.20.20.77 GET /opentables.aspx t=rest&r=11671&m=212&p=2&d=12/31/2013%2011:30:00%20PM&scpref=100 2020 -
64.145.88.235 Mozilla/5.0+(iPad;+CPU+OS+7_0_4+like+Mac+OS+X)+AppleWebKit/537.51.1+(KHTML,+like+Gecko)+Version/7.0+Mobile/11B554a+Safari/
9537.53GCSCU_1011230515163_H2=C=1011230515163.apps.googleusercontent.com:S=9cbd7893239881e8ac1f50262ff8508463c7b337.gSm24muLAXog5z3_.c2f1:I=
1388563131:X=1388649531;+__qca=P0-1372117488-1388563123763;+aCKE=e1722c4c-644b-413e-8173-
d9d5288b1682;+ftc=x=01%2f01%2f2014+11%3a00%3a10&p1=100&p1q=m%3d212%26mn%3d1075%26ref%3d13573%26sp
%3dppc_b_Anchorage_nontm&rf1=13573&rf2=13573&er=11671 302 0 0
Old data format: ETL with Spark
10
{userId:"xxxxxxxx","event":"personalizer_search","query_longitude":-77.16816,"latitude":38.918159,"req_attribute_tag_ids":
["pizza"],"req_geo_query":"Current Location,"sort_by":"best","longitude":-77.168156,"query_latitude":38.91816,"req_forward_minutes":
30,"req_party_size":2,"req_backward_minutes":30,"req_datetime":"2015-06-02T12:00","req_time":"12:00","res_num_results":
784,"calculated_radius":5.466253405962307,"req_date":"2015-06-02"},"type":"track","messageId":"b4f2fafc-
dd4a-45e3-99ed-4b83d1e42dcd","timestamp":"2015-06-02T10:02:34.323Z"}
New data format: ETL with Spark
11
KafkaUsers
backups
Query/Processing Layer
Spark SQL
Spark Streaming
Spark MLlib
JSON
Data Products
12
http://en.wikipedia.org/wiki/File:Collaborative_Filtering_in_Recommender_Systems.jpg
There are various approaches to
making meaningful recommendations
13
Neighborhood-based CF
Item/Item or Restaurant Similarity
Item-Based Collaborative Filtering Recommendation Algorithms
(Sarwar et al., 2001)
14
We use the Jaccard Index as a measure of similarity
J(A, B) =
|A  B|
|A [ B| +
where is a shrinkage parameter to penalize item pairs that have too few users.
15
Recommendations: Restaurant Similarity
16
17
Matrix Factorization:
Explicit ratings
Restaurant_1 Restaurant_2  Restaurant_M
Diner_1 5 ?  3
Diner_2 ? 3  ?
   
Diner_N 4 4  1
Explicit Case: Use ratings
U
V
'
Ndiners
Nfactors
Nfactors
X
Nrestaurants
Matrix
Factorization
18
Matrix Factorization:
Implicit preferences
Restaurant_1 Restaurant_2  Restaurant_M
Diner_1 50 ?  100
Diner_2 ? 1  ?
   
Diner_N 3 30  1
Collaborative Filtering for Implicit Feedback Datasets
(Hu, Koren, Volinsky 2008)
Confidence Matrix
Binary
Preference
Matrix
19
Matrix Factorization:
Implicit preferences
Collaborative Filtering for Implicit Feedback Datasets (Hu, Koren, Volinsky 2008)
20
Evaluation / Hyperparameter tuning
with Precison@K
Interactions
Users
Holdout set
Training set
21
Hyperparameter tuning using Precision@K
Precision@8 = 3/8
1
m
mX
i=1
Precision@K(i)
Precision@K =
1
K
|topK  holdout|
22
Ensemble of item-similarity and MF-
based recommendations
Weighted mean inverse rank
俗a =  1
r1
+ (1 ) 1
r2
23
Ensemble parameter is a function of the
user support
Purely Item Similarity
Purely Model based
24
Mining Content for
Recommendations
26
Our reviews are rich and verified,
and come in all shapes and sizes
Superb!
This really is a hidden gem and I'm not sure I want to
share but I will. :) The owner, Claude, has been here
for 47 years and is all about quality, taste, and not
overcharging for what he loves. My husband and I
don't often get into the city at night, but when we do
this is THE place. The Grand Marnier Sou鍖le' is the
best I've had in my life - and I have a few years on the
life meter. The custard is not over the top and the
texture of the entire dessert is superb. This is the only
family style French restaurant I'm aware of in SF. It
also doesn't charge you an arm and a leg for their
excellent quality and that also goes for the wine list.
Soup, salad, choice of main (try the lamb shank) and
choice of dessert - for around $42 w/o drinks.
Many restaurants have thousands of reviews.
27
We expect diner reviews to be broadly
composed of a handful of broad themes
Food &
Drinks
Ambiance Service
Value for
Money
Special
occasions
This motivated diving into the reviews with topic modeling
28
We approached the problem from the point of view
of summarizing each restaurant using its reviews
Analyze the corpus of reviews in a
geographic region to learn topics
Classify topics into categories
(food, ambiance, service etc)
Map topics back to restaurants
For each restaurant and a topic,
surface relevant reviews
29
We applied non-
negative matrix
factorization to
learn topics 
 stopword removal
 vectorization
 TFIDF
 NNMF
30
 and obtained a pretty clean set of topics
31
Topics fell nicely into categories
DrinksFood Ambiance
32
Topics fell nicely into categories
ServiceValue Occasions
Topics
to
Insights
34
Our topics reveal the unique aspects of each
restaurant without having to read the reviews 
Each review
for a given
restaurant
has certain
topic
distribution
Combining
them, we
identify the
top topics
for that
restaurant.
Looking at the
topics and the top
reviews associated
with it , we know
Espetus
Churrascaria is
not just about
meat and steak,
but has good salad
as well! The service
is top notch, its kid
friendly, and
people go for
special occasions,
36
 while Fog
Harbor Fish
House is not
just about
fish, crab and
local seafood,
but boasts an
excellent view
of the bay,
specially
during
sunset!
37
 Rendle (2010) www.libfm.org
Including everything + context:
Factorization Machines
W
ORK
IN
PROGRESS
Sentiment
&
Snippets
39
Sentiments - we use ratings as labels
for positive and negative sentiments
Ingredients of a stellar experience
40
Sentiments - we use ratings as labels
for positive and negative sentiments
Ingredients of a terrible experience
41
Training on
Spark
42
We are using nlp+sentiments to
surface relevant snippets around tags
43
The model knows that to die for, crispy, moist
are actually indicative of positive sentiment when it
comes to food!
The lobster andavocado eggs Benedictare to die for.
 We finished out meal with the their blackberrybread puddingwhich was so moist and
tasty.
The pork andchive dumplingswere perfectly crispy and full of flavor.
I had the Leg ofLamb Tagineand it was "melt in-your-mouth" wonderful.
≒ we did our best with the scrumptious apple tart andcreme brulee.
My husband'slamb porterhousewas a novelty and extremely tender.
We resisted ordering thebacon beignetsbut gave in and tried them and were glad we did---
Yumm!
Some early
exploration
with
Word2Vec
45
Wine pairings with Word2Vec !
Halibut: Chardonnay
Lamb: ?
46
Halibut: Chardonnay
Lamb: Zinfandel
Wine pairings with Word2Vec !
47
Harris
Steakhouse in
Downtown area
~v(Harris) + ~v(jazz)
Broadway
Jazz Club
Steakhouse
with live jazz
~v(Harris) + ~v(patio)
~v(Harris) + ~v(scenic) Celestial
Steakhouse
Steakhouse
with a view
Patio at Las
Sendas
Steakhouse
with amazing
patio
Translating restaurants
via concepts
48
bouillabaisse
muscles
diavalo
linguini
clams
mussels
diavlo
pescatore
risotto
linguine
pescatora
seafood
rissoto
diabolo
mussles
ciopino
swordfish
mussel
fettuccine
gumbo
brodetto
ciopinno
capellini
cockles
langostines
cannelloni
rockfish
bisques
diavolo
cockle
stew
shrimp
prawns
fettucine
cardinale
bouillabaise
pasta
jambalaya
chippino
Find synonyms for c庄看沿沿庄稼看
49
Sushi of Gari,
Gari Columbus, NYC
Masaki Sushi
Chicago
Sansei Seafood Restaurant &
Sushi Bar, Maui
A restaurant like your favorite one but in a
different city.
Find the synonyms of the restaurant in question, then filter by location!
Akikos, SF
San Francisco Maui Chicago New York
'
Downtown upscale sushi experience with sushi bar
50
nigiri
sashimi
gari
maki
roku
rolls
roll
godzilla
chirashi
robata
zushi
omakase
yellowtail
unagi
samba
toro
gyoza
aburi
spider
starburst
nakazawa
shabu
sasa
katana
sake
hapa
maguro
tsunami
raku
kappo
yasuda
otoro
seki
tamari
ra
teppanyaki
caterpillar
japan
shashimi
hamasaku
Early explorations with Word2vec:
Find synonyms for Sushi
We use Apache Sparks Implementation of Word2Vec (skip-gram model)
51
The
Sicilian
gelato
was
extremely
rich.
The
Italian
ice-cream
was
very
velvety.
Sicilian
Italian
gelato
ice-cream
extremely
very
rich
velvety
word2vec embedding
52
 This restaurant is SO LOUD we couldnt speak across our table.
 The food was okay, but the restaurant was so noisy that no
conversation during diner was possible.
 It was a little loud because of the number of tables and hard surfaces
but we were able to hear each other.
 An obnoxiously loud and impersonal restaurant, churning out
uninteresting, tasteless food.
 This place was busy and extremely loud - very hard to carry on a
conversation here.
 If only the noise level was lowered this would be the best restaurant in
SF.
 This restaurant has a lot to offer but easy conversation is not there.
 I asked for a round table and was given a rectangle table in a corner
which made talking difficult.
 Was squeezed into a corner with little room beside the adjoining table,
which had the loudest couple in SF, so communication was near
impossible, coupled with a crowded restaurant.
 Always hesitated trying the new location as it seemed too loud sterile
and impersonal.
53
 They were good, but I can get better spring rolls at almost any vietnamese
restaurant in my neighborhood - nothing to deserve all the hype.
 Appetizers were great (spring rolls particularly tasty), but the entrees were
only "very good."
 As someone who has eaten at many Asian restaurants, I would say that the
food here is good but nothing outstanding - definitely not worth the hype.
 Food was very good, but there isn't an amazing difference in flavors than
what you wouldn't get at an authentic Vietnamese-style restaurant.
 The food, while generally good, was not substantially better than what we
could purchase at a Vietnamese restaurant in our home city for a fifth of the
cost.
 Restaurant receives a lot of hype, but does not live up to its culinary
reputation.
 I am sure there are many equally good Vietnamese restaurants in San
Francisco that are 1/2 the costs.
 The food was good but not something I would expect for those prices on the
hype.
 I've had very good vietnamese food, but at a much lower cost.
 There was so much hype about Slanted Door that I was expecting an
incredible dining experience but instead it was just good.
54
 Not only was the food wonderful, but the staff attentive,
knowledgable and very accommodating.
 Not only was the food appetizing; the staff was particularly attentive
and cordial!
 The staff was friendly and our food came at all the right times.
 The atmosphere was wonderful, the food was incredible, and the
service couldn't have been better.
 The staff was so helpful in customizing our food requirements with the
specific food restrictions and size of our party.
 Excellent food and waitress was very helpful in knowing how much
food to order and made excellent recommendations.
 The many wonderful flavors and presentation of the food assures my
return.
 The food is wonderful and the view of the Bay and the bridge are
wonderful.
 We had a great table with a view, the service was very attentive, our
waiter gave wonderful suggestions.
CONFIDENTIAL
keep in touch
@pablete
@datamusing

More Related Content

Using Data Science to Transform OpenTable Into Your Local Dining Expert