2019-02 The Recommendation Engine @ SunshinePHP

terry chay
terry chayDirector of Features Engineering
THE RECOMMENDATION
ENGINE:A CASE STUDY
TERRY CHAY (@TYCHAY)
HEAD OF ENGINEERING, CLARA HEALTH
SUNSHINEPHP 2019, MIAMI, FLORIDA
2019-02-09T16:00-17:00 EST
HTTPS://JOIND.IN/TALK/76824
WHO AM I? TERRY CHAY
PHP SOFTWARE
PHP PROGRAMMER SINCE 2000
DIRECTOR OF ENGINEERING, QIXO
2000-2001 (FIRST TRAVEL SEARCH
ENGINE)
SENIOR WEB ENGINEER, MYCASA
NETWORK 2002-2004 ("INTERNET
OF THINGS")
SCIENTIST, PLAXO 2004-2006 (ONE OF
THE FIRST "VIRAL-TUNED" WEBSITES)
SOFTWARE ARCHITECT,TAGGED,
2007-2009 (3RD LARGEST SOCIAL
NETWORK IN THE US)
PLANET TAKER,AUTOMATTIC
2009-2012 (AKA "WORDPRESS")
DIRECTOR OF FEATURES ENGINEERING,
WIKIMEDIA FOUNDATION, 2012-2014
(AKA "WIKIPEDIA")
PHP SOFTWARE
PHP PROGRAMMER SINCE 2000
DIRECTOR OF ENGINEERING, QIXO
2000-2001 (FIRST TRAVEL SEARCH
ENGINE)
SENIOR WEB ENGINEER, MYCASA
NETWORK 2002-2004 ("INTERNET
OF THINGS")
SCIENTIST, PLAXO 2004-2006 (ONE OF
THE FIRST "VIRAL-TUNED" WEBSITES)
SOFTWARE ARCHITECT,TAGGED,
2007-2009 (3RD LARGEST SOCIAL
NETWORK IN THE US)
PLANET TAKER,AUTOMATTIC
2009-2012 (AKA "WORDPRESS")
DIRECTOR OF FEATURES ENGINEERING,
WIKIMEDIA FOUNDATION, 2012-2014
(AKA "WIKIPEDIA")
YES, I WAS A PHP
PROGRAMMER…
SOMEWHERE IN THERE THIS HAPPENED…
AT OSCON ONE
DAY…
“…AND TERRY STARTED TAKING PICTURES AS
TERRY DOES WITH EVERYTHING.”
—CAL EVANS, EDITOR OF ZEND DEV ZONE,
IN A PRO::PHP WEBCAST
ABOUT THE ORIGIN OF PHP CARDS (2005)
AT OSCON ONE DAY…
ANDREI
ZMIEVSKI: LEAD
DEVELOPER PHP 6
WEZ FURLONG:
KING OF PECL
IF YOU ACTIVATE THIS
CARD’S PROFANITY SPECIAL
ABILITY, THE AUDIENCE IS
FROZEN FOR ONE TURN.
ME!
THE GEORGE
SCHLOSSNAGLE CARD
LOOKS A LOT LIKE ZAK
GRAENT. RARE &
POWERFUL!
AT OSCON ONE DAY…
AT ZENDCON ONE DAY…
PHPTERRORIST
"CHAY" GUEVARA
POWERED BY: THE
BLOOD OF YOUNG RUBY
DEVELOPERS
PHP
TERRORIST
ABOUT RUBY
ON RAILS
THE YEAR BEFORE…
ABOUT RUBY
ON RAILS
2006 -YEAR OF THE DOG
“IS PHP DOOMED?"
“FIRST THEY IGNORE YOU, THEN
THEY LAUGH AT YOU, THEN
THEY FIGHT YOU, THEN YOU
WIN.” —MAHATMA GHANDI
“UNLESS YOU’RE RUBY.” —
DANNY O'BRIEN, OSCON,
2006
IGNORE
GHANDI
STATE DIAGRAM
LAUGH
FIGHT
YOU WIN!
IGNORE
RUBY WINS!
RUBY ON RAILS
STATE DIAGRAM
(YEAR OF THE DOG - 2006)
THAT'S SOME SERIOUS
OPTIMIZATION! (RUBY MUST
HAVE A GREAT PORT OF
XDEBUG)
ABOUT RUBY
ON RAILS
2006 -YEAR OF THE DOG
TIOBE LANGUAGE OF
THE YEAR
IGNORE
LAUGH
FIGHT
YOU WIN!
GHANDI
STATE DIAGRAM
IGNORE
RUBY WINS!
RUBY ON RAILS
STATE DIAGRAM
(YEAR OF THE DOG - 2006)
ABOUT RUBY
ON RAILS
2006 -YEAR OF THE DOG
TIOBE LANGUAGE OF
THE YEAR
2007 -YEAR OF THE PIG
MY BIRTH YEAR
2007 - “IS RUBY THE
DOG AND PHP THE
DOGFOOD?”
2019-ALSO YEAR OF PIG
IGNORE
LAUGH
FIGHT
YOU WIN!
GHANDI
STATE DIAGRAM
IGNORE
RUBY WINS!
RUBY ON RAILS
STATE DIAGRAM
(YEAR OF THE PIG - 2007)
I LAUGH
TIOBE SOFTWARE RANKING
2002 2006 2019
PHP #5 (LoY) #6 #7
Ruby #39 #8 (LoY) #16
IGNORE
RUBY WINS!
RUBY ON RAILS
STATE DIAGRAM
(YEAR OF THE PIG - 2019)
I LAUGHSTILL LAUGHING!
ABOUT
FRAMEWORKS
“RAILS IS LIKE A
ROUNDED
RECTANGLE
AND PHP IS LIKE
A BALL OF
NAILS.”
— ME (2007 -YEAR OF THE
DOG)
“WHEN I SAY THAT PHP IS A BALL OF
NAILS, BASICALLY, PHP IS JUST THIS PIECE OF
SHIT THAT YOU JUST PUT TOGETHER—PUT ALL
THE PARTS TOGETHER—AND YOU THROW IT
AGAINST THE WALL AND IT FUCKING
STICKS.”
— ME (2007 -YEAR OF THE DOG)
IN THIS TALK, WHEN I SAY… YOU CAN DO IT IN…
RUBY, PYTHON, JAVA PHP
RUBY ON RAILS, DJANGO LARAVEL, CODEIGNITER, SYMFONY, CAKEPHP, WORDPRESS…
NUMPY, PANDA R, MATLAB, <INSERT MATRIX LIBRARY>…
2018-CURRENT
CLARA HEALTH
HEAD OF ENGINEERING
PATIENT-CENTRIC APPROACH TO
CONNECTING PEOPLE TO
CLINICAL TRIALS
PYTHON/DJANGO
2016-2018
RAISEME
PRINCIPAL ENGINEER
HELP STUDENTS EARN MONEY
FOR COLLEGE IN THE FORM OF
MICRO-SCHOLARSHIPS
RUBY ON RAILS
DAVE
CTO & CO-FOUNDER RAISEME (BY
ANSWERING AN AD ON CRAIGSLIST HIS
WIFE FOUND) — HIRED ME
BEEN A CONSULTANT SINCE THE
LATE 1990'S (BEEN DOING THIS
LONGER THAN ME!)
BEFORE THAT WAS IN A ROCK BAND
(CAN STILL DOWNLOAD HIS MUSIC ON
SPOTIFY)
QUIT SMOKING BY TAKING UP CROSS-
FIT
DOG NAMED BUFFY (HE IS REALLY
INTO BUFFY THE VAMPIRE
SLAYER)
CLARKE’S THREE LAWS (NOT IN ORDER)
1. CLARKE'S FIRST LAW
“WHEN A DISTINGUISHED BUT ELDERLY
SCIENTIST STATES THAT 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.
MY
DISTINGUISHED,
BUT ELDERLY CTO
…AND I TAKE EXCEPTION TO
"ELDERLY." I DO CROSSFIT SO I'M
QUITE SPRY.
MY
DISTINGUISHED,
BUT ELDERLY CTO
…AND I TAKE EXCEPTION TO
"ELDERLY." I DO CROSSFIT SO I'M
QUITE SPRY.
MY
DISTINGUISHED,
BUT ELDERLY CTO
IN FACT, YOU SHOULD TRY
CROSSFIT TOO,TERRY. IT'D BE
IMPOSSIBLE FOR YOU NOT TO
LOVE IT LIKE I DO!
“VERY
PROBABLY
WRONG”
WHAT IS A RECOMMENDATION
ENGINE?
WHAT IS A
RECOMMENDATI
ON ENGINE?
A RECOMMENDER SYSTEM OR A
RECOMMENDATION SYSTEM
(SOMETIMES REPLACING
"SYSTEM" WITH A SYNONYM
SUCH AS PLATFORM OR
ENGINE) IS A SUBCLASS OF
INFORMATION FILTERING SYSTEM
THAT SEEKS TO PREDICT THE
"RATING" OR "PREFERENCE" A
USER WOULD GIVE TO AN ITEM.
—WIKIPEDIA
WHAT IS A
RECOMMENDATI
ON ENGINE?
USES ANALYTICAL DATA (AS
OPPOSED TO
TRANSACTIONAL DATA)
FOR A USER-CENTRIC
PURPOSE (AS OPPOSED TO A
BUSINESS-CENTRIC ONE).
ANALYTICAL DATA
BUSINESS-CENTRIC
TRANSACTIONAL DATA
USER-CENTRIC
ANALYTICAL DATA
BUSINESS-CENTRIC
TRANSACTIONAL DATA
USER-CENTRIC
SELECT COUNT(*)
FROM USERS AS U
INNER JOIN ACTIVITY AS A
ON A.USER_ID = U.USER_ID
WHERE A.TIMESTAMP > NOW()
- INTERVAL '30 DAYS'
HOW MANY USERS DID WE HAVE IN THE
LAST MONTH?USER WANTS TO LOG IN.
SELECT PASSWORD, USER_ID
FROM USERS
WHERE EMAIL =
'TYCHAY@PHP.NET'
ONLINE TRANSACTION PROCESSOR
(OLTP) (E.G. RDBMS)
ONLINE ANALYTICAL PROCESSOR
(OLAP) (E.G. "DATA WAREHOUSE")
PARACCEL (AT TAGGED)
• COLUMNAR-STORAGE
• MPP
• AWS REDSHIFT (AT RAISEME)
MYSQL/POSTGRESQL
• ROW-BASED RELATIONAL
STORAGE
• PARTITIONING
• AWS RDS
RECOMMENDATION ENGINE
ETL
EXTRACT
TRANSFORM
LOAD
AWESOME COLLEGE DISCOVERY CREW
ACDC?YEAH!!!
IMPROVE
STUDENT-
COLLEGE
MATCHING
STUDENTS ARE MORE ACTIVE IF THEY
FIND SCHOOLS THEY CARE ABOUT.
BUSINESS REVENUE WAS BASED
ON APPLICATION RATES OF FOLLOWED
COLLEGES
MAKE
PRODUCT
FLOW
INTUITIVE
GETTING MORE/BETTER
DATA WILL IMPROVE THE
MATCHING
“WHEN A DISTINGUISHED BUT ELDERLY
SCIENTIST STATES THAT SOMETHING IS
POSSIBLE, HE IS ALMOST CERTAINLY RIGHT.
WHEN HE STATES THAT SOMETHING IS
IMPOSSIBLE, HE IS VERY PROBABLY
WRONG.”
“I THINK IT SHOULD BE POSSIBLE TO
RECOMMEND COLLEGES TO STUDENTS. IT'LL
BE LIKE COLLEGE SEARCH BUT WITHOUT ANY
INPUT FROM THE USER.”
— ARTHUR C. CLARK,“HAZARDS OF PROPHECY:THE
FAILURE OF IMAGINATION,” PROFILES OF THE FUTURE (1962)
— DAVE, CO-FOUNDER, CTO RAISEME & MY BOSS (2017)
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
…FIVE 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
A little more fleshing out here
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)
ANY SUFFICIENTLY
ADVANCED
TECHNOLOGY IS
INDISTINGUISHABLE FROM
MAGIC.
—ARTHUR C. CLARK,
“HAZARDS OF
PROPHECY:THE FAILURE
OF IMAGINATION,”
PROFILES OF THE FUTURE
(1973)
ANY
ADVANCED
TECHNOLOGY
SUFFICIENTLY
MAGIC
INDISTINGUISHABLE FROM
.
IS
ADVANCED
TECHNOLOGY SUFFICIENTLY
MAGIC
INDISTINGUISHABLE FROM
.
IS
ADVANCED
TECHNOLOGY SUFFICIENTLY
MAGIC
INDISTINGUISHABLE FROM
?
IS
PYTHON SUFFICIENTLY
MAGIC
INDISTINGUISHABLE FROM
?
IS
IS
PYTHON SUFFICIENTLY
INDISTINGUISHABLE FROM
MAGIC?
A NON-TECH FRIEND WHO
HAD RECENTLY MOVED TO SAN
FRANCISCO…
OVERHEARD TWO GUYS
TALKING NEXT TO HER
“WHAT ARE YOU UP TO?"
"OH, I'M TRYING TO LEARN
PYTHON."
"EXCUSE ME, BUT I BELIEVE IT'S
CALLED PARSELTONGUE."
IS
PYTHON SUFFICIENTLY
INDISTINGUISHABLE FROM
MAGIC?
A NON-TECH FRIEND WHO
HAD RECENTLY MOVED TO SAN
FRANCISCO…
OVERHEARD TWO GUYS
TALKING NEXT TO HER
“WHAT ARE YOU UP TO?"
"OH, I'M TRYING TO LEARN
PYTHON."
"EXCUSE ME, BUT I BELIEVE IT'S
CALLED PARSELTONGUE."
RECOMMENDER SYSTEMS
RANKING FILTER
Content-based Filter
RANKING
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
RECOMMENDER SYSTEMS
Collaborative
Filter (CF)
RANKING
RANKING
Content-based
PopularityTable
FILTER
Content-based
Filter
RECOMMENDER
RANKINGS
Collaborative
Filter (CF)
RANKING
RANKING
Content-based
PopularityTable
STUDENT-STUDENT: RANK
COLLEGES BASED ON SIMILAR
STUDENTS
COLLEGE-COLLEGE: RANK
COLLEGES BASED ON SIMILAR
COLLEGES
STATE-COLLEGE: RANK
COLLEGES BASED ON STUDENT'S
HOME STATE
HIGH SCHOOL-COLLEGE:
RANK COLLEGES BASED ON
STUDENT'S HIGH SCHOOL
ZIP-COLLEGE: RANK COLLEGES
BASED ON STUDENT'S ZIP CODE
STUDENT-STUDENT RECOMMENDER
Collaborative
Filter (CF)
RANKING
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
TABLE IS BASED ON COLLEGE PAGE VIEWS (YOU CAN ADD/USE OTHER DATA
LIKE "FOLLOWS")
FIND TWO SMALLER MATRICES THAT APPROXIMATE THIS LARGE MATRIX (AKA
MATRIX FACTORIZATION(MF)) (THERE ARE OTHER APPROACHES)
USING NUMPY AND PANDAS MODULES IN PYTHON
StudentFactors
College FactorsX
STUDENT-STUDENT RECOMMENDER
Collaborative
Filter (CF)
RANKING
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
StudentFactors
College FactorsX
STUDENT-STUDENT RECOMMENDER
Collaborative
Filter (CF)
RANKING
College
W
College
X
College
Y
College
Z
Student
A
1 2 3 4
Student
B
1 ~2 3 4
Student
C
4 3 2 1
Student
D
? 3 2 1
Student
E
? 1 ? 1
StudentFactors
College FactorsX
STUDENT-STUDENT RECOMMENDER
Collaborative
Filter (CF)
RANKING
College
W
College
X
College
Y
College
Z
Student
A
1 2 3 4
Student
B
1 ~2 3 4
Student
C
4 3 2 1
Student
D
? 3 2 1
Student
E
? 1 ? 1
StudentFactors
College FactorsX
STUDENT-STUDENT RECOMMENDER
Collaborative
Filter (CF)
RANKING
College
W
College
X
College
Y
College
Z
Student
A
1 2 3 4
Student
B
1 ~2 3 4
Student
C
4 3 2 1
Student
D
~4 3 2 1
Student
E
? 1 ? 1
StudentFactors
College FactorsX
STUDENT-STUDENT RECOMMENDER
Collaborative
Filter (CF)
RANKING
College
W
College
X
College
Y
College
Z
Student
A
1 2 3 4
Student
B
1 ~2 3 4
Student
C
4 3 2 1
Student
D
~4 3 2 1
Student
E
? 1 ? 1
StudentFactors
College FactorsX
STUDENT-STUDENT RECOMMENDER
Collaborative
Filter (CF)
RANKING
College
W
College
X
College
Y
College
Z
Student
A
1 2 3 4
Student
B
1 ~2 3 4
Student
C
4 3 2 1
Student
D
~4 3 2 1
Student
E
~1 1 ~2 1
StudentFactors
College FactorsX
STUDENT-STUDENT RECOMMENDER
Collaborative
Filter (CF)
RANKING
College
W
College
X
College
Y
College
Z
Student
A
1 2 3 4
Student
B
1 ~2 3 4
Student
C
4 3 2 1
Student
D
~4 3 2 1
Student
E
~1 1 ~2 1
RECOMMEND COLLEGES WITH THE HIGHEST PREDICTED VALUES
STUDENT B WE RECOMMEND Z,Y, X, THEN W LAST
STUDENT D WE RECOMMEND W, X,Y, AND Z LIST
STUDENT E WE RECOMMEND Y, THEN W, X OR Z
StudentFactors
College FactorsX
CF RANKING IMPLEMENTATION
Collaborative
Filter (CF)
RANKING
StudentFactors
College FactorsX
EC2
(1/HR)
AWS REDSHIFT
GO API SERVER
PICKLED MF MODEL
RECOMMENDER SYSTEMS
Collaborative
Filter (CF)
RANKING
RANKING
Content-based
PopularityTable
FILTER
Content-based
Filter
STATE-COLLEGE RECOMMENDER
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 3 2 1
NY
Student
F
8 5 9 3 CA
RANKING
Content-based
PopularityTable
STATE-COLLEGE RECOMMENDER
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 3 2 1
NY
Student
F
8 5 9 3 CA
RANKING
Content-based
PopularityTable
STATE-COLLEGE RECOMMENDER
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 7 8 4 NY
Student
E
12 3 2 1
NY
Student
C
4 3 2 1 WA
RANKING
Content-based
PopularityTable
STATE-COLLEGE RECOMMENDER
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
RANKING
Content-based
PopularityTable
CA STUDENTS ARE RECOMMENDED…
1. COLLEGE Y
2. COLLEGE W
3. COLLEGE X
4. COLLEGE Z
POPULARITY TABLE RANKING IMPLEMENTATION
RANKING
Content-based
PopularityTable
AWS REDSHIFT
EC2
(1/DAY)
GO API SERVER
RDS
XPLENTY ETL
RECOMMENDER SYSTEMS
Collaborative
Filter (CF)
RANKING
RANKING
Content-based
PopularityTable
FILTER
Content-based
Filter
CONTENT-BASED FILTER IMPLEMENTATION
GO API SERVER
RDS
FILTER
Content-based
Filter
MONGODB
FILTER
Content-based
FilterXPLENTY ETL
SELECT T1.ID, X.RANK FROM
COLLEGE_CONTENT_FILTER AS T1
INNER JOIN ( RANKINGS FROM
CF ) 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
AWS REDSHIFTXPLENTY ETL
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)
YOUR MISSION
SHOULD YOU CHOOSE
TO ACCEPT IT…
• USE RECOMMENDERS ON
YOUR PROJECT! (TO BUILD
USER-CENTRIC, INTUITIVE
UI)
• COLLABORATIVE FILTER
• POPULARITY TABLE
• CONTENT FILTER
• …OR HYBRID COMBINATION
OF THE ABOVE OR OTHER
CREATIVE APPROACHES
MY OTHER
MISSIONS
(SEQUELS)…
1. THIS MISSION'S POST
CREDITS EASTER EGG
2. AUTOCOMPLETE @
CLARAHEALTH
3. MEETME @TAGGED
COLLEGE-
RECOMMENDATION
ENGINE MISSION
DEBRIEF (2018)
COLLEGE-
RECOMMENDATION
ENGINE MISSION
DEBRIEF (2018)
• JULY 2018: RAISEME CLOSED
THEIR SERIES B FUNDRAISING
($15M)
• AUGUST 2018: THEY FIRED
THE CTO/CO-FOUNDER
(DAVE)
• SEPTEMBER 2018: LATER THEY
FIRED THE PRINCIPAL ENGINEER
(ME)
• …ON THE OTHER HAND, I
HEAR THEY'RE HIRING ;-)
D
ISA
V
O
W
ED
D
ISA
V
O
W
ED
STARTED OCTOBER 2018
HEAD OF ENGINEERING
AUTOCOMPLETE
RECOMMENDER IN
DECEMBER 2018 FOR
CLINICAL TRIALS SEARCH
TERMS
EXAMPLE OF
RECOMMENDER
WITHOUT DATA
WAREHOUSE OR MATRIX/
STATS LIBRARY
CLARAHEALTH
CLARAHEALTH
PROBLEM:
AUTOCOMPLETE MEDICAL
TERMS FOR MEDICAL
SUBJECT HEADINGS
(MESH) TOO SLOW AND
INACCURATE:
POSTGRESQL TRIGRAM
TEXT-MATCHING ONLY
REQUIRES LARGE NESTED
QUERY
MESH RDSAWS ZAPPA
LAMBDA SERVERLESS
CLARAHEALTH
1. BUILD ETL OF POPULARITY
TABLES OF MESH TERMS IN
ACTUAL STUDIES
2. LOAD ELASTICSEARCH
COMPLETION SUGGESTER
3. WEIGHT SUGGEST TERMS
BASED ON TERM POPULARITY
IN STUDIES TABLE
(CAN BE IMPROVED LATER BY
CHANGING ETLS TO USE SEARCH
POPULARITY INSTEAD OF STUDY
POPULARITY)
AWS LAMBDA
MESH RDSAWS ZAPPA
LAMBDA SERVERLESS
STUDIES RDS
ELASTIC CLOUD
MEETME @
TAGGED (2008)
EXAMPLE OF A NON-
TRADITIONAL USE OF A
RECOMMENDER SYSTEM
MEETME @
TAGGED (2008)
PROBLEM: SITE HAD ONLY 20 MILLION
PAGE VIEWS PER DAY
WE HAD 40 MILLION USERS!
4 TOP PEOPLE (CEO, CTO, ME, DIR. OF
ENGINEERING) EACH WORKING ON
OWN PROJECT TO FIX THIS…
IN MAY 2007, HUNG OUT WITH
HOTORNOT.COM AT FACEBOOK'S FIRST
F8
"MEET ME" APP FAILED HARD!
I HAD THEORY THAT IT FAILED BECAUSE
FACEBOOK API ONLY SHOWS YOU YOUR
FRIENDS.
“WHO WANTS TO MEET THEIR FRIENDS?”
MEETME @
TAGGED (2008)
COULDN'T SHOW FRIENDS OR
FOAF
NOT RANDOM, RECOMMEND
PEOPLE YOU'D WANT TO MEET..
1. BUILD A NETWORK OF USERS AND
THEIR RELATIONSHIPS/SIMILAR
DATA (LOCATION, AGE, ETC.)
2. USE MONTE-CARLO RANDOM
WALK: 9,11 STEPS ENDING ON A
PERSON
3. MAP: DO IT 40 MILLION TIMES
4. REDUCE: SORT, KEEP TOP 1000
RESULTS
5. CACHE IT, RETURN TOP 20 TO
PHP
6. CONTENT FILTER THE LIST DOWN
AND PASS IT TO WEB CLIENT
7. AS MORE ARE RATED, PULL FROM
CACHE OR REPEAT GOTO 2.
PARAACCEL
ORACLE
MEMCACHE
MEETME @
TAGGED (2008)
(DON'T EVEN REMEMBER THE
OTHER 3 PEOPLE'S PROJECTS.)
FIRST WEEK: DOUBLED TRAFFIC
(40 MILLION PAGES/DAY)
AVERAGE USER WAS RATING 200
PEOPLE/SESSION
BY 2009, MEETME WAS DOING
100 MILLION PAGES/DAY
SITE WAS 250 MILLION PAGES/
DAY, 3RD LARGEST US SOCIAL
NETWORK
MEETME @
TAGGED (2008)
RATING PROFILE PIC TO MEET
STRANGERS SOUND FAMILIAR?
2011 MEETME.COM COPIED
IT (TAGGED SUES)
2012 MATCH.COM COPIED
THEM BUT APP SWIPE-LEFT/
SWIPE-RIGHT (TINDER)
2016 MEETME.COM BUYS
TAGGED
2009 I WAS GONE (IPHONE
APPS DIDN'T EXIST YET)
PLUS, I STOLE THE IDEA
FROM HOTORNOT.COM
FAILED FACEBOOK APP
ANYWAY.
I WAS DONE WITH DOING
EVIL SHIT.
SUMMARY
RECOMMENDER SYSTEM ARE CERTAINLY
POSSIBLE (FIRST LAW)
BUSINESS ANALYTICS
USED FOR TO BENEFIT USER
BUSINESS ANALYTICS - MAGIC →
TECHNOLOGY (THIRD LAW)
DATA WAREHOUSE (MANY USE SQL
AS THE QUERY LANGUAGE)
ETL: EXTRACT-TRANSFORM-LOAD
MATRIX FACTORIZATION
RDS, MODELS, ELASTICSEARCH
YOU CAN DO 90% IN PHP +
SERVICES
YOUR MISSION (IMPOSSIBLE) IS TO USE
RECOMMENDERS TO BUILD: INTUITIVE UIS
(SECOND LAW)
3 EXAMPLES: MEETME, COLLEGE
RECOMMENDATIONS,AUTOCOMPLETE
… ALSO, FUCK RUBY!
THANK YOU!
⟵ PLEASE RATE THIS TALK!HTTPS://JOIND.IN/TALK/76824
ADD ME! (SAY WE MET AT #SUNPHP19)
1 of 95

Recommended

2019-03 Recomendation Engine @ Confoo by
2019-03 Recomendation Engine @ Confoo2019-03 Recomendation Engine @ Confoo
2019-03 Recomendation Engine @ Confooterry chay
292 views94 slides
2019-03 PHP without PHP Architecture @ Confoo by
2019-03 PHP without PHP Architecture @ Confoo2019-03 PHP without PHP Architecture @ Confoo
2019-03 PHP without PHP Architecture @ Confooterry chay
577 views89 slides
Hitting the accessibility high notes with ARIA by
Hitting the accessibility high notes with ARIAHitting the accessibility high notes with ARIA
Hitting the accessibility high notes with ARIATed Drake
6.9K views52 slides
The web you were used to is gone. Architecture and strategy for your mobile c... by
The web you were used to is gone. Architecture and strategy for your mobile c...The web you were used to is gone. Architecture and strategy for your mobile c...
The web you were used to is gone. Architecture and strategy for your mobile c...Alberta Soranzo
25.5K views60 slides
How to Design for the Future - Cross Channel Experience Design by
How to Design for the Future - Cross Channel Experience DesignHow to Design for the Future - Cross Channel Experience Design
How to Design for the Future - Cross Channel Experience DesignOSCON Byrum
59.5K views274 slides
Closing Event - Watson Innovation Course by
Closing Event - Watson Innovation CourseClosing Event - Watson Innovation Course
Closing Event - Watson Innovation CourseLora Aroyo
914 views32 slides

More Related Content

Similar to 2019-02 The Recommendation Engine @ SunshinePHP

SoundCloud API Learnings by
SoundCloud API LearningsSoundCloud API Learnings
SoundCloud API LearningsEric Wahlforss
1.6K views52 slides
Serendip Media - Public Deck by
Serendip Media - Public DeckSerendip Media - Public Deck
Serendip Media - Public DeckSagee Ben Zedeff
484 views33 slides
Prototyping: Helping to take away the suck by
Prototyping: Helping to take away the suckPrototyping: Helping to take away the suck
Prototyping: Helping to take away the suckHarvard Web Working Group
1.6K views67 slides
Taking the Top Sport | How To Earn More Featured Snippets by
Taking the Top Sport | How To Earn More Featured SnippetsTaking the Top Sport | How To Earn More Featured Snippets
Taking the Top Sport | How To Earn More Featured SnippetsDFWSEM
3K views80 slides
SearchLove London 2016 | Rob Bucci | Taking the Top Spot: How to Earn More Fe... by
SearchLove London 2016 | Rob Bucci | Taking the Top Spot: How to Earn More Fe...SearchLove London 2016 | Rob Bucci | Taking the Top Spot: How to Earn More Fe...
SearchLove London 2016 | Rob Bucci | Taking the Top Spot: How to Earn More Fe...Distilled
13.2K views80 slides
⛳️ Votre API passe-t-elle le contrôle technique ? by
⛳️ Votre API passe-t-elle le contrôle technique ?⛳️ Votre API passe-t-elle le contrôle technique ?
⛳️ Votre API passe-t-elle le contrôle technique ?François-Guillaume Ribreau
3.2K views204 slides

Similar to 2019-02 The Recommendation Engine @ SunshinePHP(20)

Taking the Top Sport | How To Earn More Featured Snippets by DFWSEM
Taking the Top Sport | How To Earn More Featured SnippetsTaking the Top Sport | How To Earn More Featured Snippets
Taking the Top Sport | How To Earn More Featured Snippets
DFWSEM3K views
SearchLove London 2016 | Rob Bucci | Taking the Top Spot: How to Earn More Fe... by Distilled
SearchLove London 2016 | Rob Bucci | Taking the Top Spot: How to Earn More Fe...SearchLove London 2016 | Rob Bucci | Taking the Top Spot: How to Earn More Fe...
SearchLove London 2016 | Rob Bucci | Taking the Top Spot: How to Earn More Fe...
Distilled13.2K views
Collaboration between LINE, Microsoft and AI by the developers, for the devel... by LINE Corporation
Collaboration between LINE, Microsoft and AI by the developers, for the devel...Collaboration between LINE, Microsoft and AI by the developers, for the devel...
Collaboration between LINE, Microsoft and AI by the developers, for the devel...
LINE Corporation1.8K views
Of Gaps, Fillers and Empty Spaces… Fronteers2015 closing keynote by Christian Heilmann
Of Gaps, Fillers and Empty Spaces… Fronteers2015 closing keynoteOf Gaps, Fillers and Empty Spaces… Fronteers2015 closing keynote
Of Gaps, Fillers and Empty Spaces… Fronteers2015 closing keynote
"Whatever I can get..." by Dan Brickley
"Whatever I can get...""Whatever I can get..."
"Whatever I can get..."
Dan Brickley7K views
Building SADI Services Tutorial - SIB Workshop, Geneva, December 2015 by Mark Wilkinson
Building SADI Services Tutorial - SIB Workshop, Geneva, December 2015Building SADI Services Tutorial - SIB Workshop, Geneva, December 2015
Building SADI Services Tutorial - SIB Workshop, Geneva, December 2015
Mark Wilkinson977 views
Jim Hendler's Presentation at SSSW 2011 by sssw2011
Jim Hendler's Presentation at SSSW 2011Jim Hendler's Presentation at SSSW 2011
Jim Hendler's Presentation at SSSW 2011
sssw2011865 views
Linked Data in Use: Schema.org, JSON-LD and hypermedia APIs - Front in Bahia... by Ícaro Medeiros
Linked Data in Use: Schema.org, JSON-LD and hypermedia APIs  - Front in Bahia...Linked Data in Use: Schema.org, JSON-LD and hypermedia APIs  - Front in Bahia...
Linked Data in Use: Schema.org, JSON-LD and hypermedia APIs - Front in Bahia...
Ícaro Medeiros3.2K views
The Unrealized Dream by Greg Aper
The Unrealized DreamThe Unrealized Dream
The Unrealized Dream
Greg Aper104 views
Hip Hop & The Web: How A Culture Can Define A Process by Travis Miller
Hip Hop & The Web: How A Culture Can Define A ProcessHip Hop & The Web: How A Culture Can Define A Process
Hip Hop & The Web: How A Culture Can Define A Process
Travis Miller729 views
Beyond Squishy: The Principles of Adaptive Design by Brad Frost
Beyond Squishy: The Principles of Adaptive DesignBeyond Squishy: The Principles of Adaptive Design
Beyond Squishy: The Principles of Adaptive Design
Brad Frost116.7K views
SearchLove San Diego 2018 | Rob Bucci | Featured Snippets: From Then to Now, ... by Distilled
SearchLove San Diego 2018 | Rob Bucci | Featured Snippets: From Then to Now, ...SearchLove San Diego 2018 | Rob Bucci | Featured Snippets: From Then to Now, ...
SearchLove San Diego 2018 | Rob Bucci | Featured Snippets: From Then to Now, ...
Distilled8.3K views
SearchLove Boston 2016 | Will Critchlow | The Emerging Future of Search by Distilled
SearchLove Boston 2016 | Will Critchlow | The Emerging Future of SearchSearchLove Boston 2016 | Will Critchlow | The Emerging Future of Search
SearchLove Boston 2016 | Will Critchlow | The Emerging Future of Search
Distilled12.9K views
Cannes Cyber Lions 2011 — Winners and Trends by Jakob Kahlen
Cannes Cyber Lions 2011 — Winners and TrendsCannes Cyber Lions 2011 — Winners and Trends
Cannes Cyber Lions 2011 — Winners and Trends
Jakob Kahlen2.8K views

More from terry chay

2017-11 Recommendation Engine @ RaiseMe by
2017-11 Recommendation Engine @ RaiseMe2017-11 Recommendation Engine @ RaiseMe
2017-11 Recommendation Engine @ RaiseMeterry chay
127 views47 slides
2009-02 Oops! by
2009-02 Oops!2009-02 Oops!
2009-02 Oops!terry chay
587 views135 slides
2013-08 10 evil things - Northeast PHP Conference Keynote by
2013-08 10 evil things - Northeast PHP Conference Keynote2013-08 10 evil things - Northeast PHP Conference Keynote
2013-08 10 evil things - Northeast PHP Conference Keynoteterry chay
26.1K views126 slides
10 Evil(ish) Things and how they relate to Features Engineering at the WMF by
10 Evil(ish) Things and how they relate to Features Engineering at the WMF10 Evil(ish) Things and how they relate to Features Engineering at the WMF
10 Evil(ish) Things and how they relate to Features Engineering at the WMFterry chay
3.4K views20 slides
2011 07 Tales of Virality—OSCON by
2011 07 Tales of Virality—OSCON2011 07 Tales of Virality—OSCON
2011 07 Tales of Virality—OSCONterry chay
3.2K views108 slides
2011 07 Living without your Linemen—OSCON by
2011 07 Living without your Linemen—OSCON2011 07 Living without your Linemen—OSCON
2011 07 Living without your Linemen—OSCONterry chay
2.2K views114 slides

More from terry chay(13)

2017-11 Recommendation Engine @ RaiseMe by terry chay
2017-11 Recommendation Engine @ RaiseMe2017-11 Recommendation Engine @ RaiseMe
2017-11 Recommendation Engine @ RaiseMe
terry chay127 views
2009-02 Oops! by terry chay
2009-02 Oops!2009-02 Oops!
2009-02 Oops!
terry chay587 views
2013-08 10 evil things - Northeast PHP Conference Keynote by terry chay
2013-08 10 evil things - Northeast PHP Conference Keynote2013-08 10 evil things - Northeast PHP Conference Keynote
2013-08 10 evil things - Northeast PHP Conference Keynote
terry chay26.1K views
10 Evil(ish) Things and how they relate to Features Engineering at the WMF by terry chay
10 Evil(ish) Things and how they relate to Features Engineering at the WMF10 Evil(ish) Things and how they relate to Features Engineering at the WMF
10 Evil(ish) Things and how they relate to Features Engineering at the WMF
terry chay3.4K views
2011 07 Tales of Virality—OSCON by terry chay
2011 07 Tales of Virality—OSCON2011 07 Tales of Virality—OSCON
2011 07 Tales of Virality—OSCON
terry chay3.2K views
2011 07 Living without your Linemen—OSCON by terry chay
2011 07 Living without your Linemen—OSCON2011 07 Living without your Linemen—OSCON
2011 07 Living without your Linemen—OSCON
terry chay2.2K views
PHP Without PHP—Automattic by terry chay
PHP Without PHP—AutomatticPHP Without PHP—Automattic
PHP Without PHP—Automattic
terry chay3.4K views
Broken Jewel—Automattic by terry chay
Broken Jewel—AutomatticBroken Jewel—Automattic
Broken Jewel—Automattic
terry chay775 views
Photo to Finished by terry chay
Photo to FinishedPhoto to Finished
Photo to Finished
terry chay906 views
Tales of Virality—Automattic by terry chay
Tales of Virality—AutomatticTales of Virality—Automattic
Tales of Virality—Automattic
terry chay665 views
PHP Without PHP—Confoo by terry chay
PHP Without PHP—ConfooPHP Without PHP—Confoo
PHP Without PHP—Confoo
terry chay7.2K views
Chinese Proverbs—PHP|tek by terry chay
Chinese Proverbs—PHP|tekChinese Proverbs—PHP|tek
Chinese Proverbs—PHP|tek
terry chay1K views
PHP Without PHP—IPC by terry chay
PHP Without PHP—IPCPHP Without PHP—IPC
PHP Without PHP—IPC
terry chay2.1K views

Recently uploaded

IETF 118: Starlink Protocol Performance by
IETF 118: Starlink Protocol PerformanceIETF 118: Starlink Protocol Performance
IETF 118: Starlink Protocol PerformanceAPNIC
414 views22 slides
Building trust in our information ecosystem: who do we trust in an emergency by
Building trust in our information ecosystem: who do we trust in an emergencyBuilding trust in our information ecosystem: who do we trust in an emergency
Building trust in our information ecosystem: who do we trust in an emergencyTina Purnat
110 views18 slides
Marketing and Community Building in Web3 by
Marketing and Community Building in Web3Marketing and Community Building in Web3
Marketing and Community Building in Web3Federico Ast
14 views64 slides
hamro digital logics.pptx by
hamro digital logics.pptxhamro digital logics.pptx
hamro digital logics.pptxtupeshghimire
10 views36 slides
How to think like a threat actor for Kubernetes.pptx by
How to think like a threat actor for Kubernetes.pptxHow to think like a threat actor for Kubernetes.pptx
How to think like a threat actor for Kubernetes.pptxLibbySchulze1
5 views33 slides
ATPMOUSE_융합2조.pptx by
ATPMOUSE_융합2조.pptxATPMOUSE_융합2조.pptx
ATPMOUSE_융합2조.pptxkts120898
35 views70 slides

Recently uploaded(9)

IETF 118: Starlink Protocol Performance by APNIC
IETF 118: Starlink Protocol PerformanceIETF 118: Starlink Protocol Performance
IETF 118: Starlink Protocol Performance
APNIC414 views
Building trust in our information ecosystem: who do we trust in an emergency by Tina Purnat
Building trust in our information ecosystem: who do we trust in an emergencyBuilding trust in our information ecosystem: who do we trust in an emergency
Building trust in our information ecosystem: who do we trust in an emergency
Tina Purnat110 views
Marketing and Community Building in Web3 by Federico Ast
Marketing and Community Building in Web3Marketing and Community Building in Web3
Marketing and Community Building in Web3
Federico Ast14 views
How to think like a threat actor for Kubernetes.pptx by LibbySchulze1
How to think like a threat actor for Kubernetes.pptxHow to think like a threat actor for Kubernetes.pptx
How to think like a threat actor for Kubernetes.pptx
LibbySchulze15 views
ATPMOUSE_융합2조.pptx by kts120898
ATPMOUSE_융합2조.pptxATPMOUSE_융합2조.pptx
ATPMOUSE_융합2조.pptx
kts12089835 views
The Dark Web : Hidden Services by Anshu Singh
The Dark Web : Hidden ServicesThe Dark Web : Hidden Services
The Dark Web : Hidden Services
Anshu Singh14 views

2019-02 The Recommendation Engine @ SunshinePHP