Inside OKCupid: The math of online dating - Christian Rudder

1,237,397 views ・ 2013-02-13

TED-Ed


Please double-click on the English subtitles below to play the video.

00:00
Translator: Andrea McDonough Reviewer: Bedirhan Cinar
0
0
7000
00:17
Hello, my name is Christian Rudder,
1
17903
1714
00:19
and I was one of the founders of OkCupid.
2
19641
2209
00:21
It's now one of the biggest dating sites in the United States.
3
21874
2918
00:24
Like most everyone at the site, I was a math major,
4
24816
2391
00:27
As you may expect, we're known for the analytic approach we take to love.
5
27231
3440
00:30
We call it our matching algorithm.
6
30695
1638
00:32
Basically, OkCupid's matching algorithm helps us decide
7
32357
2588
00:34
whether two people should go on a date.
8
34969
1876
00:36
We built our entire business around it.
9
36869
1872
00:38
Now, algorithm is a fancy word,
10
38765
1960
00:40
and people like to drop it like it's this big thing.
11
40749
2485
00:43
But really, an algorithm is just a systematic,
12
43258
2288
00:45
step-by-step way to solve a problem.
13
45570
2223
00:47
It doesn't have to be fancy at all.
14
47817
2177
00:50
Here in this lesson,
15
50018
1151
00:51
I'm going to explain how we arrived at our particular algorithm,
16
51193
3008
00:54
so you can see how it's done.
17
54225
1411
00:55
Now, why are algorithms even important?
18
55660
1934
00:57
Why does this lesson even exist?
19
57618
1580
00:59
Well, notice one very significant phrase I used above:
20
59222
3420
01:02
they are a step-by-step way to solve a problem,
21
62666
2339
01:05
and as you probably know, computers excel at step-by-step processes.
22
65029
3418
01:08
A computer without an algorithm
23
68471
1589
01:10
is basically an expensive paperweight.
24
70084
2724
01:12
And since computers are such a pervasive part of everyday life,
25
72832
2989
01:15
algorithms are everywhere.
26
75845
1547
01:18
The math behind OkCupid's matching algorithm is surprisingly simple.
27
78590
3197
01:21
It's just some addition, multiplication, a little bit of square roots.
28
81811
4002
01:25
The tricky part in designing it
29
85837
1690
01:27
was figuring out how to take something mysterious,
30
87551
2565
01:30
human attraction,
31
90140
1150
01:31
and break it into components that a computer can work with.
32
91314
2784
01:34
The first thing we needed to match people up was data,
33
94122
2553
01:36
something for the algorithm to work with.
34
96699
1992
01:38
The best way to get data quickly from people is to just ask for it.
35
98715
3158
01:41
So we decided that OkCupid should ask users questions,
36
101897
2727
01:44
stuff like, "Do you want to have kids one day?"
37
104648
2357
01:47
"How often do you brush your teeth?"
38
107029
1758
01:48
"Do you like scary movies?"
39
108811
1392
01:50
And big stuff like, "Do you believe in God?"
40
110675
2077
01:53
Now, a lot of the questions are good for matching like with like,
41
113843
3064
01:56
that is, when both people answer the same way.
42
116931
2156
01:59
For example, two people who are both into scary movies
43
119111
2548
02:01
are probably a better match than one person who is and one who isn't.
44
121683
3321
02:05
But what about a question like,
45
125028
1493
02:06
"Do you like to be the center of attention?"
46
126545
2062
02:08
If both people in a relationship are saying yes to this,
47
128631
2628
02:11
they're going to have massive problems.
48
131283
2093
02:13
We realized this early on,
49
133400
1245
02:14
and so we decided we needed a bit more data from each question.
50
134669
3269
02:17
We had to ask people to specify not only their own answer,
51
137962
2763
02:20
but the answer they wanted from someone else.
52
140749
2265
02:23
That worked really well.
53
143038
1501
02:24
But we needed one more dimension.
54
144563
1604
02:26
Some questions tell you more about a person than others.
55
146191
2643
02:28
For example, a question about politics, something like,
56
148858
3395
02:32
"Which is worse: book burning or flag burning?"
57
152277
2288
02:34
might reveal more about someone than their taste in movies.
58
154589
2810
02:37
And it doesn't make sense to weigh all things equally,
59
157423
2619
02:40
so we added one final data point.
60
160066
1596
02:41
For everything that OkCupid asks you,
61
161686
2024
02:43
you have a chance to tell us the role it plays in your life.
62
163734
2829
02:46
And this ranges from irrelevant to mandatory.
63
166587
2319
02:49
So now, for every question, we have three things for our algorithm:
64
169446
3222
02:52
first, your answer;
65
172692
1352
02:54
second, how you want someone else -- your potential match -- to answer;
66
174617
4140
02:58
and third, how important the question is to you at all.
67
178781
2788
03:02
With all this information,
68
182710
1252
03:03
OkCupid can figure out how well two people will get along.
69
183986
3118
03:07
The algorithm crunches the numbers and gives us a result.
70
187128
3006
03:10
As a practical example,
71
190158
1152
03:11
let's look at how we'd match you with another person.
72
191334
2525
03:13
Let's call him "B."
73
193883
1189
03:16
Your match percentage with B is based on questions you've both answered.
74
196023
3482
03:19
Let's call that set of common questions "s."
75
199529
2425
03:22
As a very simple example, we use a small set "s"
76
202559
2349
03:24
with just two questions in common,
77
204932
1641
03:26
and compute a match from that.
78
206597
1828
03:28
Here are our two example questions.
79
208449
1671
03:30
The first one, let's say, is, "How messy are you?"
80
210144
2381
03:32
And the answer possibilities are:
81
212549
2096
03:34
very messy, average and very organized.
82
214669
3361
03:38
And let's say you answered "very organized,"
83
218054
2060
03:40
and you'd like someone else to answer "very organized,"
84
220138
2760
03:42
and the question is very important to you.
85
222922
2256
03:45
Basically, you're a neat freak.
86
225202
1492
03:46
You're neat, you want someone else to be neat, and that's it.
87
226718
2868
03:49
And let's say B is a little bit different.
88
229610
2015
03:51
He answered "very organized" for himself,
89
231649
2039
03:53
but "average" is OK with him as an answer from someone else,
90
233712
3007
03:56
and the question is only a little important to him.
91
236743
2402
03:59
Let's look at the second question, from our previous example:
92
239169
2893
04:02
"Do you like to be the center of attention?"
93
242086
2056
04:04
The answers are "yes" and "no."
94
244166
1514
04:05
You've answered "no," you want someone else to answer "no,"
95
245704
2995
04:08
and the question is only a little important to you.
96
248723
2391
04:11
Now B, he's answered "yes."
97
251138
1621
04:12
He wants someone else to answer "no,"
98
252783
1776
04:14
because he wants the spotlight on him,
99
254583
2274
04:16
and the question is somewhat important to him.
100
256881
2430
04:19
So, let's try to compute all of this.
101
259335
1999
04:21
Our first step is, since we use computers to do this,
102
261972
2503
04:24
we need to assign numerical values
103
264499
1867
04:26
to ideas like "somewhat important" and "very important,"
104
266390
2627
04:29
because computers need everything in numbers.
105
269041
2211
04:31
We at OkCupid decided on the following scale:
106
271276
2403
04:33
"Irrelevant" is worth 0.
107
273703
1946
04:36
"A little important" is worth 1.
108
276173
1889
04:38
"Somewhat important" is worth 10.
109
278538
1809
04:40
"Very important" is 50.
110
280831
1754
04:42
And "absolutely mandatory" is 250.
111
282609
3612
04:46
Next, the algorithm makes two simple calculations.
112
286245
2631
04:48
The first is: How much did B's answers satisfy you?
113
288900
3246
04:52
That is, how many possible points did B score on your scale?
114
292170
3793
04:55
Well, you indicated that B's answer to the first question,
115
295987
3212
04:59
about messiness,
116
299223
1166
05:00
was very important to you.
117
300413
1350
05:01
It's worth 50 points and B got that right.
118
301787
2230
05:04
The second question is worth only 1,
119
304375
1737
05:06
because you said it was only a little important.
120
306136
2278
05:08
B got that wrong,
121
308438
1197
05:09
so B's answers were 50 out of 51 possible points.
122
309659
2782
05:12
That's 98% satisfactory. Pretty good.
123
312465
2608
05:15
The second question the algorithm looks at is: How much did you satisfy B?
124
315097
3949
05:19
Well, B placed 1 point on your answer to the messiness question
125
319070
3259
05:22
and 10 on your answer to the second.
126
322353
1953
05:24
Of those 11, that's 1 plus 10, you earned 10 --
127
324745
3387
05:28
you guys satisfied each other on the second question.
128
328156
2595
05:30
So your answers were 10 out of 11 equals 91 percent satisfactory to B.
129
330775
4242
05:35
That's not bad.
130
335041
1151
05:36
The final step is to take these two match percentages
131
336216
2507
05:38
and get one number for the both of you.
132
338747
1866
05:40
To do this, the algorithm multiplies your scores,
133
340637
2611
05:43
then takes the nth root,
134
343272
1665
05:44
where "n" is the number of questions.
135
344961
2183
05:47
Because s, which is the number of questions in this sample,
136
347168
2830
05:50
is only 2,
137
350022
1841
05:51
we have: match percentage equals the square root
138
351887
3665
05:55
of 98 percent times 91 percent.
139
355576
2896
05:58
That equals 94 percent.
140
358496
1784
06:00
That 94 percent is your match percentage with B.
141
360304
3204
06:03
It's a mathematical expression of how happy you'd be with each other,
142
363532
3243
06:06
based on what we know.
143
366799
1183
06:08
Now, why does the algorithm multiply,
144
368006
1786
06:09
as opposed to, say, average the two match scores together,
145
369816
2769
06:12
and do the square-root business?
146
372609
1670
06:14
In general, this formula is called the geometric mean.
147
374303
2529
06:16
It's a great way to combine values that have wide ranges
148
376856
2627
06:19
and represent very different properties.
149
379507
1915
06:21
In other words, it's perfect for romantic matching.
150
381446
2413
06:23
You've got wide ranges and you've got tons of different data points,
151
383883
3247
06:27
like I said, about movies, politics, religion -- everything.
152
387154
3438
06:30
Intuitively, too, this makes sense.
153
390616
1838
06:32
Two people satisfying each other 50 percent
154
392478
2775
06:35
should be a better match than two others who satisfy 0 and 100,
155
395277
3952
06:39
because affection needs to be mutual.
156
399253
1814
06:41
After adding a little correction for margin of error,
157
401091
2491
06:43
in the case where we have a small number of questions,
158
403606
2571
06:46
like we do in this example,
159
406201
1317
06:47
we're good to go.
160
407542
1172
06:48
Any time OkCupid matches two people,
161
408738
1912
06:50
it goes through the steps we just outlined.
162
410674
2032
06:52
First it collects data about your answers,
163
412730
2269
06:55
then it compares your choices and preferences to other people's
164
415023
2985
06:58
in simple, mathematical ways.
165
418032
1967
07:00
This, the ability to take real-world phenomena
166
420023
2923
07:02
and make them something a microchip can understand,
167
422970
2415
07:05
is, I think, the most important skill anyone can have these days.
168
425409
3277
07:08
Like you use sentences to tell a story to a person,
169
428710
2423
07:11
you use algorithms to tell a story to a computer.
170
431157
2484
07:14
If you learn the language, you can go out and tell your stories.
171
434349
3033
07:17
I hope this will help you do that.
172
437406
1753
About this website

This site will introduce you to YouTube videos that are useful for learning English. You will see English lessons taught by top-notch teachers from around the world. Double-click on the English subtitles displayed on each video page to play the video from there. The subtitles scroll in sync with the video playback. If you have any comments or requests, please contact us using this contact form.

https://forms.gle/WvT1wiN1qDtmnspy7