SlideShare a Scribd company logo
1 of 47
Download to read offline
THE RECOMMENDATION
ENGINE
EDMOND CHEUNG &TERRY CHAY
(PART OF THE AWESOME COLLEGE DISCOVERY CREW)
RAISEME OFFSITE
2017-11-01T15:25-15:55 PDT
CLARKE’S THREE LAWS (NOT IN ORDER)
WHY MAKE A
RECOMMENDATION ENGINE?
IMPROVE
STUDENT-
COLLEGE
MATCHING
STUDENTS ARE MORE ACTIVE IF THEY
FIND SCHOOLS THEY CARE ABOUT.
BUSINESS METRICS ARE BASED ON
APPLICATION RATE, NOT FOLLOW
RATE.
MAKE
PRODUCT
FLOW
INTUITIVE
GETTING MORE/BETTER
DATA WILL IMPROVETHE
MATCHING
1. CLARKE'S FIRST LAW
“WHEN A DISTINGUISHED BUT ELDERLY
SCIENTIST STATESTHAT SOMETHING IS
POSSIBLE, HE IS ALMOST CERTAINLY
RIGHT.WHEN HE STATES THAT SOMETHING
IS IMPOSSIBLE, HE IS VERY PROBABLY
WRONG.”
— ARTHUR C. CLARK, “HAZARDS OF PROPHECY:THE FAILURE
OF IMAGINATION,” PROFILES OF THE FUTURE (1962)
I THINK IT SHOULD BE
POSSIBLE TO RECOMMEND
COLLEGES TO STUDENTS. IT'LL BE
LIKE COLLEGE SEARCH BUT
WITHOUT ANY INPUT FROM
THE USER.
OUR
DISTINGUISHED,
BUT ELDERLYCTO
…AND I TAKE EXCEPTION TO
"ELDERLY." I DO CROSSFIT SO I'M
QUITE SPRY.
OUR
DISTINGUISHED,
BUT ELDERLYCTO
…AND I TAKE EXCEPTION TO
"ELDERLY." I DO CROSSFIT SO I'M
QUITE SPRY.
OUR
DISTINGUISHED,
BUT ELDERLYCTO
IN FACT, YOU SHOULD TRY
CROSSFIT TOO,TERRY. IT'D BE
IMPOSSIBLE FOR YOU NOT TO
LOVE IT LIKE I DO!
“VERY
PROBABLY
WRONG”
ALMOST CERTAINLY RIGHT
AMAZON
“CUSTOMERS ALSO
BOUGHT”
AMAZON
“FREQUENTLY BOUGHT
TOGETHER”
AMAZON
“RECOMMENDATION TO
YOU…”
ALMOST CERTAINLY RIGHT
NETFLIX
“BECAUSE YOU
WATCHED ORANGE IS
THE NEW BLACK”
NETFLIX
“POPULAR ON NETFLIX”
NETFLIX
“% MATCH”
RECOMMENDATIONS EVERYWHERE!
TWITTER
“WHO TO FOLLOW”
“TRENDING NOW”,
“MOMENTS”
SPOTIFY
“RECOMMENDED
SONGS”
“RELATED ARTISTS”, “YOUR
DAILY MIXES”, RADIO
OKCUPID
“DOUBLETAKE”
“BROWSE MATCHES”, % MATCH
REQUEST PIPELINE
GET
BUCKETS
/COLLEGES/RECOMMENDATIONS
FRONT-END ASKS API FOR LIST OF
BUCKETS
GET RECOMMENDATIONS
FOR BUCKET
/V1/COLLEGES/DISCOVER/WEST
RUBY API IS GIVEN BUCKET
NAME (E.G.WEST) AND USES
"EXTRA" DATA TO CALL GO
API FOR RECOMMENDATIONS
LIST OF
BUCKETS
/V1/COLLEGES/DISCOVER
LIKE "MOVIES WITH A STRONG
FEMALE LEAD” BUT ARE THINGS
LIKE "BECAUSE YOU LIVE IN THE
WEST” (STORING "EXTRA"
DATA ON SERVER)
RENDER
RESULTS IN
BUCKET
/COLLEGES/RECOMMENDATIONS
SIMILAR TO HOW COLLEGE
SEARCH RENDERS SEARCH
RESULTS.
JAVASCRIPT
RUBY
THE RECOMMENDATION
ENGINE
THIS IS HOW THE REC ENGINE GENERATES
RECOMMENDATIONS FOR A BUCKET "WEST"
ROR API FOR BUCKET
“WEST”
/V1/COLLEGES/DISCOVER/WEST
RUBY API IS GIVEN BUCKET
NAME
POST EXTRA DATA TO GO
API
HTTPS://PROD-
RECOMMEND.RAISE.ME/API/V1/
DISCOVER/
CURL -I -H "CONTENT-TYPE: APPLICATION/JSON" -X
POST -D '{"CONTENT":{"STATES":["CA", "AK", "AZ",
"CO", "HI", "ID", "MT", "NM", "NV", "OR", "UT",
"WA", "WY"]}, "RANKING":"STUDENT-STUDENT",
"SCHOOL_ID":"535432DA385C8D490D000001",
"STATE":"CA",
"USERID":"5992010DE87EB427B1ECE416",
"ZIPCODE":"94121"}' HTTPS://PROD-
RECOMMEND.RAISE.ME/API/V1/DISCOVER/
EXTRACTS "RANKING"
AND UPLOADS RELEVANT
DATA TO PYTHON
COLLABORATIVE
FILTER (OR QUERIES
PYTHON PRE-COMPUTED
POPULARITY TABLE)
RANKING: "STUDENT-STUDENT",
STUDENTID:"5992010DE87EB427B1ECE416"
LOOK UP EXTRA DATA
/V1/COLLEGES/DISCOVER/WEST
{"CONTENT"=>{"STATES"=>["CA",
"AK", "AZ", "CO", "HI", "ID",
"MT", "NM", "NV", "OR", "UT",
"WA", "WY"]}, "RANKING"=>"STUDENT-
STUDENT",
"SCHOOL_ID"=>"535432DA385C8D490D00
0001", "STATE"=>"CA",
"USERID"=>"5992010DE87EB427B1ECE41
6", "ZIPCODE"=>"94121"}
JAVASCRIPT
RUBY
GOLANG
PYTHON
THE RECOMMENDATION
ENGINE
PYTHON MAGIC
HAPPENS
EXEC /USR/BIN/PYTHON34
STUDENTRANKS.PY
5992010DE87EB427B1ECE416
VIEWS_PLUS_FOLLOWING
IN THIS CASE IT'S A COLLABORATIVE
FILTER SO IT QUERIES THE PYTHON
MODEL AND GETS BACK A RANKED LIST
OF COLLEGE IDS
RUN RESULT THROUGH
CONTENT FILTER RDS
SELECT T1.ID, X.RANK FROM COLLEGE_CONTENT_FILTER
AS T1 INNER JOIN ( STUFF FROM PYTHON ) AS X (ID,
RANK) ON X.ID = T1.ID WHERE X.ID IS NOT NULL
AND SCHOOL_STATE IN ("CA", "AK", "AZ", "CO", "HI",
"ID", "MT", "NM", "NV", "OR", "UT", "WA", "WY"]) ORDER
BY X.RANK
RUBY RECEIVES AND
DOES EXTRA
PROCESSING
/V1/COLLEGES/DISCOVER/WEST
E.G. MAPS
"5498FFD56E670ECD4E00010C
" TO "UNIVERSITY OF SAN
DIEGO", ADDS ICON AND
FOLLOW STATUS, ETC.
RETURN
RECOMMENDATIONS TO
JAVASCRIPT FOR
RENDERING
/V1/COLLEGES/DISCOVER/WEST
RUBY API IS GIVEN BUCKET
NAME (E.G.WEST
JAVASCRIPT
RUBY
GOLANG
PYTHON
RUBY ON RAILS
ASIDE:WHY THREE LANGUAGES (+ JAVASCRIPT)?
RUBY PYTHON
DJANGO
JAVASCRIPT
RUBY
GOLANG
PYTHON
BAD MARKETING DJANGO
…FOUR YEARS AGO
IN MY ONLY SLIGHTLY LESS
DISTINGUISHED, BUT STILL SPRY
YOOT, I WAS A LITERAL ROCKSTAR SO
I TOTALLY PREFER PYTHON ON A
PLANE!! 🎸
(IN AN ALTERNATE GIT TIMELINE BRANCH)
DJANGO REINHARDT
FRENCH JAZZ GUITARIST (1910-1953)
JAZZ IS NOT ROCK AND ROLL!!
MONTY PYTHON (1969)
WHAT?! AND PYTHON IS
NAMED AFTER MONTY PYTHON AND
NOT THE SNAKE?
WHAT HAS MONTY
PYTHON EVER DONE FOR US?
BUFFY COULD TOTALLY RAMMED A
HOLY HAND GRENADE OF
ANTIOCH DOWN THE SPANISH
INQUISITION’S THROAT AND
THEN DRIVEN A STAKE IN THEM
JUST TO MAKE SURE!
I CHOOSE RUBY ON RAILS
…AND
THAT IS
WHY I HAD
TO SPEND
TWO WEEKS
LEARNING
GOLANG
2. CLARKE'S THIRD LAW
“ANY SUFFICIENTLY ADVANCED
TECHNOLOGY IS
INDISTINGUISHABLE FROM
MAGIC.”
— ARTHUR C. CLARK, “HAZARDS OF PROPHECY:THE FAILURE
OF IMAGINATION,” PROFILES OF THE FUTURE (1973)
CLARKE'S THIRD
LAW
RECOMMENDO
COLLEGIA!
ANY SUFFICIENTLY ADVANCED
TECHNOLOGY IS INDISTINGUISHABLE FROM
MAGIC.
—ARTHUR C. CLARK, “HAZARDS OF PROPHECY:
THE FAILURE OF IMAGINATION,” PROFILES OF THE
FUTURE(1973)
RECOMMENDATIONS
➤ Student-student
• Recommend colleges based on similar
students
➤ College-college
• Recommend colleges based on similar
colleges
➤ State-college
• Recommend colleges based on state
➤ High school-college
• Recommend colleges based on high
school
➤ ZIP-college
• Recommend colleges based on ZIP
code
Collaborative filtering
Popularity tables
RECOMMENDATIONS
Collaborative filtering
Popularity tables
College
W
College
X
College
Y
College
Z
Student
A
1 2 3 4
Student
B
1 ? 3 4
Student
C
4 3 2 1
Student
D
? 3 2 1
Student
E
? 1 ? 1
➤ Based on college page views
➤ Find two smaller matrices that
approximate this large matrix
Collaborative filtering
Collaborative filtering
X College Factors
StudentFactors
College
W
College
X
College
Y
College
Z
Student
A
1 2 3 4
Student
B
1 ? 3 4
Student
C
4 3 2 1
Student
D
? 3 2 1
Student
E
? 1 ? 1
Collaborative filtering
~2
~4
~1 ~2
➤ Recommend colleges with the
highest predicted values
RECOMMENDATIONS
Collaborative filtering
Popularity tables
Popularity tables
College
W
College
X
College
Y
College
Z
State
Student
A
1 2 3 4 CA
Student
B
1 7 8 4 NY
Student
C
4 3 2 1 WA
Student
D
3 3 2 1 CA
Student
E
12 1 3 1 NY
Student
F
8 5 9 3 CA
Popularity tables
College
W
College
X
College
Y
College
Z
State
Student
A
1 2 3 4 CA
Student
D
3 3 2 1 CA
Student
F
8 5 9 3 CA
Student
B
1 ? 3 4 NY
Student
E
? 1 ? 1 NY
Student
C
4 3 2 1 WA
Popularity tables
College
W
College
X
College
Y
College
Z
State
Student
A, D, F
12 10 14 8 CA
Student
B, E
1 1 3 5 NY
Student
C
4 3 2 1 WA
➤ CA recommendations:
1. College Y
2. College W
3. College X
4. College Z
RECOMMENDATIONS
Collaborative filtering
Popularity tables
Live demo
THINGS LEFT TO DO
•ADD SEGMENT TRACKING (FOR FEEDBACK)
•REPLACE COLLEGE-LISTING PAGE SUGGESTIONS WITH COLLEGE-COLLEGE
RECOMMENDATION ENGINE
•PORT OVER NEW MAJORS RANKING
•IMPROVE AND ITERATE ENGINE (HAVE CONTENT FILTER INTERACT WITH
RANKINGS?)
3. CLARKE'S SECOND LAW
“THE ONLY WAY OF DISCOVERING
THE LIMITS OF THE POSSIBLE IS
TO VENTURE A LITTLE WAY PAST
THEM INTO THE IMPOSSIBLE.”
— ARTHUR C. CLARK, “HAZARDS OF PROPHECY:THE FAILURE
OF IMAGINATION,” PROFILES OF THE FUTURE (1973)
“THE ONLY WAY OF DISCOVERING
THE LIMITS OF THE POSSIBLE IS
TO VENTURE A LITTLE WAY PAST
THEM INTO THE IMPOSSIBLE.”
— ARTHUR C. CLARK, “HAZARDS OF PROPHECY:THE FAILURE
OF IMAGINATION,” PROFILES OF THE FUTURE (1973)
CLARKE'S SECOND
LAW
THE ONLY WAY OF DISCOVERING THE LIMITS
OF THE POSSIBLE IS TO VENTURE A LITTLE
WAY PAST THEM INTO THE IMPOSSIBLE.
—ARTHUR C. CLARK, “HAZARDS OF PROPHECY:
THE FAILURE OF IMAGINATION,” PROFILES OF THE
FUTURE (1962)
HELP
IMPROVE IT!
• ON PRODUCTION RIGHT
NOW
• IN TOP SECRET URL
• BEHIND FEATURE FLAG
(ONLY @RAISE.ME OR RAISE
HIGH STUDENTS) THAT WILL
SELF DESTRUCT WHEN IT GOES
LIVE
• HAS IMPOSTER MODE SO
YOU CAN "FACE/OFF" AS
OTHER USERS
HELP
IMPROVE IT!
• DEFAULT COLLEGE-COLLEGE
POPULARITY RANKING BASED ON
SIMILARITY SCORING (BM25
DISTANCE) INSTEAD OF VIEWS/
FOLLOWS
• "MAJORS" BUCKET USES IT’S OWN
POPULARITY TABLE INSTEAD
OF BEING A CONTENT FILTER
• THE CONTENT FILTER FOR
"LOW COST" BUCKET LOWERED
FROM $50,000/YEAR
HTTPS://WWW.RAISE.ME/COLLEGES/
RECOMMENDATIONS
HELP IMPROVE IT!
MORE THAN
COLLEGE
RECOMMENDATIONS
MORE THAN
COLLEGE
RECOMMENDATIONS
• COLLABORATIVE FILTER
• POPULARITY TABLE
• CONTENT FILTER
• (OR COMBINATION
THEREOF)
(ANYTHING REALLY!)
THANK YOU!Q&A

More Related Content

More from terry chay

2011 07 Living without your Linemen—OSCON
2011 07 Living without your Linemen—OSCON2011 07 Living without your Linemen—OSCON
2011 07 Living without your Linemen—OSCONterry chay
 
PHP Without PHP—Automattic
PHP Without PHP—AutomatticPHP Without PHP—Automattic
PHP Without PHP—Automatticterry chay
 
Broken Jewel—Automattic
Broken Jewel—AutomatticBroken Jewel—Automattic
Broken Jewel—Automatticterry chay
 
Photo to Finished
Photo to FinishedPhoto to Finished
Photo to Finishedterry chay
 
Tales of Virality—Automattic
Tales of Virality—AutomatticTales of Virality—Automattic
Tales of Virality—Automatticterry chay
 
PHP Without PHP—Confoo
PHP Without PHP—ConfooPHP Without PHP—Confoo
PHP Without PHP—Confooterry chay
 
Chinese Proverbs—PHP|tek
Chinese Proverbs—PHP|tekChinese Proverbs—PHP|tek
Chinese Proverbs—PHP|tekterry chay
 
PHP Without PHP—IPC
PHP Without PHP—IPCPHP Without PHP—IPC
PHP Without PHP—IPCterry chay
 

More from terry chay (8)

2011 07 Living without your Linemen—OSCON
2011 07 Living without your Linemen—OSCON2011 07 Living without your Linemen—OSCON
2011 07 Living without your Linemen—OSCON
 
PHP Without PHP—Automattic
PHP Without PHP—AutomatticPHP Without PHP—Automattic
PHP Without PHP—Automattic
 
Broken Jewel—Automattic
Broken Jewel—AutomatticBroken Jewel—Automattic
Broken Jewel—Automattic
 
Photo to Finished
Photo to FinishedPhoto to Finished
Photo to Finished
 
Tales of Virality—Automattic
Tales of Virality—AutomatticTales of Virality—Automattic
Tales of Virality—Automattic
 
PHP Without PHP—Confoo
PHP Without PHP—ConfooPHP Without PHP—Confoo
PHP Without PHP—Confoo
 
Chinese Proverbs—PHP|tek
Chinese Proverbs—PHP|tekChinese Proverbs—PHP|tek
Chinese Proverbs—PHP|tek
 
PHP Without PHP—IPC
PHP Without PHP—IPCPHP Without PHP—IPC
PHP Without PHP—IPC
 

Recently uploaded

Magic exist by Marta Loveguard - presentation.pptx
Magic exist by Marta Loveguard - presentation.pptxMagic exist by Marta Loveguard - presentation.pptx
Magic exist by Marta Loveguard - presentation.pptxMartaLoveguard
 
VIP Call Girls Kolkata Ananya 🤌 8250192130 🚀 Vip Call Girls Kolkata
VIP Call Girls Kolkata Ananya 🤌  8250192130 🚀 Vip Call Girls KolkataVIP Call Girls Kolkata Ananya 🤌  8250192130 🚀 Vip Call Girls Kolkata
VIP Call Girls Kolkata Ananya 🤌 8250192130 🚀 Vip Call Girls Kolkataanamikaraghav4
 
定制(Lincoln毕业证书)新西兰林肯大学毕业证成绩单原版一比一
定制(Lincoln毕业证书)新西兰林肯大学毕业证成绩单原版一比一定制(Lincoln毕业证书)新西兰林肯大学毕业证成绩单原版一比一
定制(Lincoln毕业证书)新西兰林肯大学毕业证成绩单原版一比一Fs
 
Chennai Call Girls Alwarpet Phone 🍆 8250192130 👅 celebrity escorts service
Chennai Call Girls Alwarpet Phone 🍆 8250192130 👅 celebrity escorts serviceChennai Call Girls Alwarpet Phone 🍆 8250192130 👅 celebrity escorts service
Chennai Call Girls Alwarpet Phone 🍆 8250192130 👅 celebrity escorts servicevipmodelshub1
 
Git and Github workshop GDSC MLRITM
Git and Github  workshop GDSC MLRITMGit and Github  workshop GDSC MLRITM
Git and Github workshop GDSC MLRITMgdsc13
 
定制(AUT毕业证书)新西兰奥克兰理工大学毕业证成绩单原版一比一
定制(AUT毕业证书)新西兰奥克兰理工大学毕业证成绩单原版一比一定制(AUT毕业证书)新西兰奥克兰理工大学毕业证成绩单原版一比一
定制(AUT毕业证书)新西兰奥克兰理工大学毕业证成绩单原版一比一Fs
 
Packaging the Monolith - PHP Tek 2024 (Breaking it down one bite at a time)
Packaging the Monolith - PHP Tek 2024 (Breaking it down one bite at a time)Packaging the Monolith - PHP Tek 2024 (Breaking it down one bite at a time)
Packaging the Monolith - PHP Tek 2024 (Breaking it down one bite at a time)Dana Luther
 
定制(UAL学位证)英国伦敦艺术大学毕业证成绩单原版一比一
定制(UAL学位证)英国伦敦艺术大学毕业证成绩单原版一比一定制(UAL学位证)英国伦敦艺术大学毕业证成绩单原版一比一
定制(UAL学位证)英国伦敦艺术大学毕业证成绩单原版一比一Fs
 
Contact Rya Baby for Call Girls New Delhi
Contact Rya Baby for Call Girls New DelhiContact Rya Baby for Call Girls New Delhi
Contact Rya Baby for Call Girls New Delhimiss dipika
 
A Good Girl's Guide to Murder (A Good Girl's Guide to Murder, #1)
A Good Girl's Guide to Murder (A Good Girl's Guide to Murder, #1)A Good Girl's Guide to Murder (A Good Girl's Guide to Murder, #1)
A Good Girl's Guide to Murder (A Good Girl's Guide to Murder, #1)Christopher H Felton
 
Blepharitis inflammation of eyelid symptoms cause everything included along w...
Blepharitis inflammation of eyelid symptoms cause everything included along w...Blepharitis inflammation of eyelid symptoms cause everything included along w...
Blepharitis inflammation of eyelid symptoms cause everything included along w...Excelmac1
 
办理多伦多大学毕业证成绩单|购买加拿大UTSG文凭证书
办理多伦多大学毕业证成绩单|购买加拿大UTSG文凭证书办理多伦多大学毕业证成绩单|购买加拿大UTSG文凭证书
办理多伦多大学毕业证成绩单|购买加拿大UTSG文凭证书zdzoqco
 
Call Girls in Uttam Nagar Delhi 💯Call Us 🔝8264348440🔝
Call Girls in Uttam Nagar Delhi 💯Call Us 🔝8264348440🔝Call Girls in Uttam Nagar Delhi 💯Call Us 🔝8264348440🔝
Call Girls in Uttam Nagar Delhi 💯Call Us 🔝8264348440🔝soniya singh
 
VIP Kolkata Call Girl Salt Lake 👉 8250192130 Available With Room
VIP Kolkata Call Girl Salt Lake 👉 8250192130  Available With RoomVIP Kolkata Call Girl Salt Lake 👉 8250192130  Available With Room
VIP Kolkata Call Girl Salt Lake 👉 8250192130 Available With Roomishabajaj13
 
Call Girls In The Ocean Pearl Retreat Hotel New Delhi 9873777170
Call Girls In The Ocean Pearl Retreat Hotel New Delhi 9873777170Call Girls In The Ocean Pearl Retreat Hotel New Delhi 9873777170
Call Girls In The Ocean Pearl Retreat Hotel New Delhi 9873777170Sonam Pathan
 
Complet Documnetation for Smart Assistant Application for Disabled Person
Complet Documnetation   for Smart Assistant Application for Disabled PersonComplet Documnetation   for Smart Assistant Application for Disabled Person
Complet Documnetation for Smart Assistant Application for Disabled Personfurqan222004
 
Call Girls South Delhi Delhi reach out to us at ☎ 9711199012
Call Girls South Delhi Delhi reach out to us at ☎ 9711199012Call Girls South Delhi Delhi reach out to us at ☎ 9711199012
Call Girls South Delhi Delhi reach out to us at ☎ 9711199012rehmti665
 
VIP Kolkata Call Girl Alambazar 👉 8250192130 Available With Room
VIP Kolkata Call Girl Alambazar 👉 8250192130  Available With RoomVIP Kolkata Call Girl Alambazar 👉 8250192130  Available With Room
VIP Kolkata Call Girl Alambazar 👉 8250192130 Available With Roomdivyansh0kumar0
 

Recently uploaded (20)

Magic exist by Marta Loveguard - presentation.pptx
Magic exist by Marta Loveguard - presentation.pptxMagic exist by Marta Loveguard - presentation.pptx
Magic exist by Marta Loveguard - presentation.pptx
 
VIP Call Girls Kolkata Ananya 🤌 8250192130 🚀 Vip Call Girls Kolkata
VIP Call Girls Kolkata Ananya 🤌  8250192130 🚀 Vip Call Girls KolkataVIP Call Girls Kolkata Ananya 🤌  8250192130 🚀 Vip Call Girls Kolkata
VIP Call Girls Kolkata Ananya 🤌 8250192130 🚀 Vip Call Girls Kolkata
 
定制(Lincoln毕业证书)新西兰林肯大学毕业证成绩单原版一比一
定制(Lincoln毕业证书)新西兰林肯大学毕业证成绩单原版一比一定制(Lincoln毕业证书)新西兰林肯大学毕业证成绩单原版一比一
定制(Lincoln毕业证书)新西兰林肯大学毕业证成绩单原版一比一
 
Chennai Call Girls Alwarpet Phone 🍆 8250192130 👅 celebrity escorts service
Chennai Call Girls Alwarpet Phone 🍆 8250192130 👅 celebrity escorts serviceChennai Call Girls Alwarpet Phone 🍆 8250192130 👅 celebrity escorts service
Chennai Call Girls Alwarpet Phone 🍆 8250192130 👅 celebrity escorts service
 
Git and Github workshop GDSC MLRITM
Git and Github  workshop GDSC MLRITMGit and Github  workshop GDSC MLRITM
Git and Github workshop GDSC MLRITM
 
定制(AUT毕业证书)新西兰奥克兰理工大学毕业证成绩单原版一比一
定制(AUT毕业证书)新西兰奥克兰理工大学毕业证成绩单原版一比一定制(AUT毕业证书)新西兰奥克兰理工大学毕业证成绩单原版一比一
定制(AUT毕业证书)新西兰奥克兰理工大学毕业证成绩单原版一比一
 
Packaging the Monolith - PHP Tek 2024 (Breaking it down one bite at a time)
Packaging the Monolith - PHP Tek 2024 (Breaking it down one bite at a time)Packaging the Monolith - PHP Tek 2024 (Breaking it down one bite at a time)
Packaging the Monolith - PHP Tek 2024 (Breaking it down one bite at a time)
 
定制(UAL学位证)英国伦敦艺术大学毕业证成绩单原版一比一
定制(UAL学位证)英国伦敦艺术大学毕业证成绩单原版一比一定制(UAL学位证)英国伦敦艺术大学毕业证成绩单原版一比一
定制(UAL学位证)英国伦敦艺术大学毕业证成绩单原版一比一
 
Hot Sexy call girls in Rk Puram 🔝 9953056974 🔝 Delhi escort Service
Hot Sexy call girls in  Rk Puram 🔝 9953056974 🔝 Delhi escort ServiceHot Sexy call girls in  Rk Puram 🔝 9953056974 🔝 Delhi escort Service
Hot Sexy call girls in Rk Puram 🔝 9953056974 🔝 Delhi escort Service
 
Contact Rya Baby for Call Girls New Delhi
Contact Rya Baby for Call Girls New DelhiContact Rya Baby for Call Girls New Delhi
Contact Rya Baby for Call Girls New Delhi
 
A Good Girl's Guide to Murder (A Good Girl's Guide to Murder, #1)
A Good Girl's Guide to Murder (A Good Girl's Guide to Murder, #1)A Good Girl's Guide to Murder (A Good Girl's Guide to Murder, #1)
A Good Girl's Guide to Murder (A Good Girl's Guide to Murder, #1)
 
Blepharitis inflammation of eyelid symptoms cause everything included along w...
Blepharitis inflammation of eyelid symptoms cause everything included along w...Blepharitis inflammation of eyelid symptoms cause everything included along w...
Blepharitis inflammation of eyelid symptoms cause everything included along w...
 
办理多伦多大学毕业证成绩单|购买加拿大UTSG文凭证书
办理多伦多大学毕业证成绩单|购买加拿大UTSG文凭证书办理多伦多大学毕业证成绩单|购买加拿大UTSG文凭证书
办理多伦多大学毕业证成绩单|购买加拿大UTSG文凭证书
 
Call Girls in Uttam Nagar Delhi 💯Call Us 🔝8264348440🔝
Call Girls in Uttam Nagar Delhi 💯Call Us 🔝8264348440🔝Call Girls in Uttam Nagar Delhi 💯Call Us 🔝8264348440🔝
Call Girls in Uttam Nagar Delhi 💯Call Us 🔝8264348440🔝
 
VIP Kolkata Call Girl Salt Lake 👉 8250192130 Available With Room
VIP Kolkata Call Girl Salt Lake 👉 8250192130  Available With RoomVIP Kolkata Call Girl Salt Lake 👉 8250192130  Available With Room
VIP Kolkata Call Girl Salt Lake 👉 8250192130 Available With Room
 
young call girls in Uttam Nagar🔝 9953056974 🔝 Delhi escort Service
young call girls in Uttam Nagar🔝 9953056974 🔝 Delhi escort Serviceyoung call girls in Uttam Nagar🔝 9953056974 🔝 Delhi escort Service
young call girls in Uttam Nagar🔝 9953056974 🔝 Delhi escort Service
 
Call Girls In The Ocean Pearl Retreat Hotel New Delhi 9873777170
Call Girls In The Ocean Pearl Retreat Hotel New Delhi 9873777170Call Girls In The Ocean Pearl Retreat Hotel New Delhi 9873777170
Call Girls In The Ocean Pearl Retreat Hotel New Delhi 9873777170
 
Complet Documnetation for Smart Assistant Application for Disabled Person
Complet Documnetation   for Smart Assistant Application for Disabled PersonComplet Documnetation   for Smart Assistant Application for Disabled Person
Complet Documnetation for Smart Assistant Application for Disabled Person
 
Call Girls South Delhi Delhi reach out to us at ☎ 9711199012
Call Girls South Delhi Delhi reach out to us at ☎ 9711199012Call Girls South Delhi Delhi reach out to us at ☎ 9711199012
Call Girls South Delhi Delhi reach out to us at ☎ 9711199012
 
VIP Kolkata Call Girl Alambazar 👉 8250192130 Available With Room
VIP Kolkata Call Girl Alambazar 👉 8250192130  Available With RoomVIP Kolkata Call Girl Alambazar 👉 8250192130  Available With Room
VIP Kolkata Call Girl Alambazar 👉 8250192130 Available With Room
 

2017-11 Recommendation Engine @ RaiseMe

  • 1. THE RECOMMENDATION ENGINE EDMOND CHEUNG &TERRY CHAY (PART OF THE AWESOME COLLEGE DISCOVERY CREW) RAISEME OFFSITE 2017-11-01T15:25-15:55 PDT
  • 2. CLARKE’S THREE LAWS (NOT IN ORDER)
  • 4. IMPROVE STUDENT- COLLEGE MATCHING STUDENTS ARE MORE ACTIVE IF THEY FIND SCHOOLS THEY CARE ABOUT. BUSINESS METRICS ARE BASED ON APPLICATION RATE, NOT FOLLOW RATE.
  • 7. “WHEN A DISTINGUISHED BUT ELDERLY SCIENTIST STATESTHAT SOMETHING IS POSSIBLE, HE IS ALMOST CERTAINLY RIGHT.WHEN HE STATES THAT SOMETHING IS IMPOSSIBLE, HE IS VERY PROBABLY WRONG.” — ARTHUR C. CLARK, “HAZARDS OF PROPHECY:THE FAILURE OF IMAGINATION,” PROFILES OF THE FUTURE (1962)
  • 8. I THINK IT SHOULD BE POSSIBLE TO RECOMMEND COLLEGES TO STUDENTS. IT'LL BE LIKE COLLEGE SEARCH BUT WITHOUT ANY INPUT FROM THE USER. OUR DISTINGUISHED, BUT ELDERLYCTO
  • 9. …AND I TAKE EXCEPTION TO "ELDERLY." I DO CROSSFIT SO I'M QUITE SPRY. OUR DISTINGUISHED, BUT ELDERLYCTO
  • 10. …AND I TAKE EXCEPTION TO "ELDERLY." I DO CROSSFIT SO I'M QUITE SPRY. OUR DISTINGUISHED, BUT ELDERLYCTO IN FACT, YOU SHOULD TRY CROSSFIT TOO,TERRY. IT'D BE IMPOSSIBLE FOR YOU NOT TO LOVE IT LIKE I DO! “VERY PROBABLY WRONG”
  • 11. ALMOST CERTAINLY RIGHT AMAZON “CUSTOMERS ALSO BOUGHT” AMAZON “FREQUENTLY BOUGHT TOGETHER” AMAZON “RECOMMENDATION TO YOU…”
  • 12. ALMOST CERTAINLY RIGHT NETFLIX “BECAUSE YOU WATCHED ORANGE IS THE NEW BLACK” NETFLIX “POPULAR ON NETFLIX” NETFLIX “% MATCH”
  • 13. RECOMMENDATIONS EVERYWHERE! TWITTER “WHO TO FOLLOW” “TRENDING NOW”, “MOMENTS” SPOTIFY “RECOMMENDED SONGS” “RELATED ARTISTS”, “YOUR DAILY MIXES”, RADIO OKCUPID “DOUBLETAKE” “BROWSE MATCHES”, % MATCH
  • 14. REQUEST PIPELINE GET BUCKETS /COLLEGES/RECOMMENDATIONS FRONT-END ASKS API FOR LIST OF BUCKETS GET RECOMMENDATIONS FOR BUCKET /V1/COLLEGES/DISCOVER/WEST RUBY API IS GIVEN BUCKET NAME (E.G.WEST) AND USES "EXTRA" DATA TO CALL GO API FOR RECOMMENDATIONS LIST OF BUCKETS /V1/COLLEGES/DISCOVER LIKE "MOVIES WITH A STRONG FEMALE LEAD” BUT ARE THINGS LIKE "BECAUSE YOU LIVE IN THE WEST” (STORING "EXTRA" DATA ON SERVER) RENDER RESULTS IN BUCKET /COLLEGES/RECOMMENDATIONS SIMILAR TO HOW COLLEGE SEARCH RENDERS SEARCH RESULTS. JAVASCRIPT RUBY
  • 15. THE RECOMMENDATION ENGINE THIS IS HOW THE REC ENGINE GENERATES RECOMMENDATIONS FOR A BUCKET "WEST" ROR API FOR BUCKET “WEST” /V1/COLLEGES/DISCOVER/WEST RUBY API IS GIVEN BUCKET NAME POST EXTRA DATA TO GO API HTTPS://PROD- RECOMMEND.RAISE.ME/API/V1/ DISCOVER/ CURL -I -H "CONTENT-TYPE: APPLICATION/JSON" -X POST -D '{"CONTENT":{"STATES":["CA", "AK", "AZ", "CO", "HI", "ID", "MT", "NM", "NV", "OR", "UT", "WA", "WY"]}, "RANKING":"STUDENT-STUDENT", "SCHOOL_ID":"535432DA385C8D490D000001", "STATE":"CA", "USERID":"5992010DE87EB427B1ECE416", "ZIPCODE":"94121"}' HTTPS://PROD- RECOMMEND.RAISE.ME/API/V1/DISCOVER/ EXTRACTS "RANKING" AND UPLOADS RELEVANT DATA TO PYTHON COLLABORATIVE FILTER (OR QUERIES PYTHON PRE-COMPUTED POPULARITY TABLE) RANKING: "STUDENT-STUDENT", STUDENTID:"5992010DE87EB427B1ECE416" LOOK UP EXTRA DATA /V1/COLLEGES/DISCOVER/WEST {"CONTENT"=>{"STATES"=>["CA", "AK", "AZ", "CO", "HI", "ID", "MT", "NM", "NV", "OR", "UT", "WA", "WY"]}, "RANKING"=>"STUDENT- STUDENT", "SCHOOL_ID"=>"535432DA385C8D490D00 0001", "STATE"=>"CA", "USERID"=>"5992010DE87EB427B1ECE41 6", "ZIPCODE"=>"94121"} JAVASCRIPT RUBY GOLANG PYTHON
  • 16. THE RECOMMENDATION ENGINE PYTHON MAGIC HAPPENS EXEC /USR/BIN/PYTHON34 STUDENTRANKS.PY 5992010DE87EB427B1ECE416 VIEWS_PLUS_FOLLOWING IN THIS CASE IT'S A COLLABORATIVE FILTER SO IT QUERIES THE PYTHON MODEL AND GETS BACK A RANKED LIST OF COLLEGE IDS RUN RESULT THROUGH CONTENT FILTER RDS SELECT T1.ID, X.RANK FROM COLLEGE_CONTENT_FILTER AS T1 INNER JOIN ( STUFF FROM PYTHON ) AS X (ID, RANK) ON X.ID = T1.ID WHERE X.ID IS NOT NULL AND SCHOOL_STATE IN ("CA", "AK", "AZ", "CO", "HI", "ID", "MT", "NM", "NV", "OR", "UT", "WA", "WY"]) ORDER BY X.RANK RUBY RECEIVES AND DOES EXTRA PROCESSING /V1/COLLEGES/DISCOVER/WEST E.G. MAPS "5498FFD56E670ECD4E00010C " TO "UNIVERSITY OF SAN DIEGO", ADDS ICON AND FOLLOW STATUS, ETC. RETURN RECOMMENDATIONS TO JAVASCRIPT FOR RENDERING /V1/COLLEGES/DISCOVER/WEST RUBY API IS GIVEN BUCKET NAME (E.G.WEST JAVASCRIPT RUBY GOLANG PYTHON
  • 17. RUBY ON RAILS ASIDE:WHY THREE LANGUAGES (+ JAVASCRIPT)? RUBY PYTHON DJANGO JAVASCRIPT RUBY GOLANG PYTHON
  • 19. …FOUR YEARS AGO IN MY ONLY SLIGHTLY LESS DISTINGUISHED, BUT STILL SPRY YOOT, I WAS A LITERAL ROCKSTAR SO I TOTALLY PREFER PYTHON ON A PLANE!! 🎸 (IN AN ALTERNATE GIT TIMELINE BRANCH)
  • 20. DJANGO REINHARDT FRENCH JAZZ GUITARIST (1910-1953) JAZZ IS NOT ROCK AND ROLL!!
  • 21. MONTY PYTHON (1969) WHAT?! AND PYTHON IS NAMED AFTER MONTY PYTHON AND NOT THE SNAKE? WHAT HAS MONTY PYTHON EVER DONE FOR US? BUFFY COULD TOTALLY RAMMED A HOLY HAND GRENADE OF ANTIOCH DOWN THE SPANISH INQUISITION’S THROAT AND THEN DRIVEN A STAKE IN THEM JUST TO MAKE SURE! I CHOOSE RUBY ON RAILS
  • 22. …AND THAT IS WHY I HAD TO SPEND TWO WEEKS LEARNING GOLANG
  • 24. “ANY SUFFICIENTLY ADVANCED TECHNOLOGY IS INDISTINGUISHABLE FROM MAGIC.” — ARTHUR C. CLARK, “HAZARDS OF PROPHECY:THE FAILURE OF IMAGINATION,” PROFILES OF THE FUTURE (1973)
  • 25. CLARKE'S THIRD LAW RECOMMENDO COLLEGIA! ANY SUFFICIENTLY ADVANCED TECHNOLOGY IS INDISTINGUISHABLE FROM MAGIC. —ARTHUR C. CLARK, “HAZARDS OF PROPHECY: THE FAILURE OF IMAGINATION,” PROFILES OF THE FUTURE(1973)
  • 26. RECOMMENDATIONS ➤ Student-student • Recommend colleges based on similar students ➤ College-college • Recommend colleges based on similar colleges ➤ State-college • Recommend colleges based on state ➤ High school-college • Recommend colleges based on high school ➤ ZIP-college • Recommend colleges based on ZIP code Collaborative filtering Popularity tables
  • 28. College W College X College Y College Z Student A 1 2 3 4 Student B 1 ? 3 4 Student C 4 3 2 1 Student D ? 3 2 1 Student E ? 1 ? 1 ➤ Based on college page views ➤ Find two smaller matrices that approximate this large matrix Collaborative filtering
  • 29. Collaborative filtering X College Factors StudentFactors
  • 30. College W College X College Y College Z Student A 1 2 3 4 Student B 1 ? 3 4 Student C 4 3 2 1 Student D ? 3 2 1 Student E ? 1 ? 1 Collaborative filtering ~2 ~4 ~1 ~2 ➤ Recommend colleges with the highest predicted values
  • 32. Popularity tables College W College X College Y College Z State Student A 1 2 3 4 CA Student B 1 7 8 4 NY Student C 4 3 2 1 WA Student D 3 3 2 1 CA Student E 12 1 3 1 NY Student F 8 5 9 3 CA
  • 33. Popularity tables College W College X College Y College Z State Student A 1 2 3 4 CA Student D 3 3 2 1 CA Student F 8 5 9 3 CA Student B 1 ? 3 4 NY Student E ? 1 ? 1 NY Student C 4 3 2 1 WA
  • 34. Popularity tables College W College X College Y College Z State Student A, D, F 12 10 14 8 CA Student B, E 1 1 3 5 NY Student C 4 3 2 1 WA ➤ CA recommendations: 1. College Y 2. College W 3. College X 4. College Z
  • 37. THINGS LEFT TO DO •ADD SEGMENT TRACKING (FOR FEEDBACK) •REPLACE COLLEGE-LISTING PAGE SUGGESTIONS WITH COLLEGE-COLLEGE RECOMMENDATION ENGINE •PORT OVER NEW MAJORS RANKING •IMPROVE AND ITERATE ENGINE (HAVE CONTENT FILTER INTERACT WITH RANKINGS?)
  • 39. “THE ONLY WAY OF DISCOVERING THE LIMITS OF THE POSSIBLE IS TO VENTURE A LITTLE WAY PAST THEM INTO THE IMPOSSIBLE.” — ARTHUR C. CLARK, “HAZARDS OF PROPHECY:THE FAILURE OF IMAGINATION,” PROFILES OF THE FUTURE (1973)
  • 40. “THE ONLY WAY OF DISCOVERING THE LIMITS OF THE POSSIBLE IS TO VENTURE A LITTLE WAY PAST THEM INTO THE IMPOSSIBLE.” — ARTHUR C. CLARK, “HAZARDS OF PROPHECY:THE FAILURE OF IMAGINATION,” PROFILES OF THE FUTURE (1973)
  • 41. CLARKE'S SECOND LAW THE ONLY WAY OF DISCOVERING THE LIMITS OF THE POSSIBLE IS TO VENTURE A LITTLE WAY PAST THEM INTO THE IMPOSSIBLE. —ARTHUR C. CLARK, “HAZARDS OF PROPHECY: THE FAILURE OF IMAGINATION,” PROFILES OF THE FUTURE (1962)
  • 42. HELP IMPROVE IT! • ON PRODUCTION RIGHT NOW • IN TOP SECRET URL • BEHIND FEATURE FLAG (ONLY @RAISE.ME OR RAISE HIGH STUDENTS) THAT WILL SELF DESTRUCT WHEN IT GOES LIVE • HAS IMPOSTER MODE SO YOU CAN "FACE/OFF" AS OTHER USERS
  • 43. HELP IMPROVE IT! • DEFAULT COLLEGE-COLLEGE POPULARITY RANKING BASED ON SIMILARITY SCORING (BM25 DISTANCE) INSTEAD OF VIEWS/ FOLLOWS • "MAJORS" BUCKET USES IT’S OWN POPULARITY TABLE INSTEAD OF BEING A CONTENT FILTER • THE CONTENT FILTER FOR "LOW COST" BUCKET LOWERED FROM $50,000/YEAR
  • 46. MORE THAN COLLEGE RECOMMENDATIONS • COLLABORATIVE FILTER • POPULARITY TABLE • CONTENT FILTER • (OR COMBINATION THEREOF) (ANYTHING REALLY!)