Return to Video

探索 OKCupid:當數學遇上交友網站 - Christian Rudder

  • 0:18 - 0:19
    大家好,我的名字叫 Christian Rudder,
  • 0:19 - 0:22
    我是 OK Cupid 的創辦者之一。
  • 0:22 - 0:25
    現在它是美國
    最大的交友網站之一。
  • 0:25 - 0:26
    跟這網站的其它負責人一樣,
  • 0:26 - 0:27
    我主修數學,而就如你所預期的,
  • 0:27 - 0:29
    我們較為人知的是
  • 0:29 - 0:30
    用分析方式研究戀愛行為。
  • 0:30 - 0:32
    我們把它叫做
    速配演算法。
  • 0:32 - 0:33
    基本上,OK Cupid 的速配演算法
  • 0:33 - 0:36
    幫助我們決定
    某兩個人該不該去約會。
  • 0:36 - 0:39
    這是我們事業的技術核心。
  • 0:39 - 0:41
    演算法聽起來很花俏,
  • 0:41 - 0:43
    而人們放棄搞懂因為它太複雜了
  • 0:43 - 0:45
    但說真的,演算法只是一個
    有系統的、
  • 0:45 - 0:48
    一步一步
    解決問題的方法。
  • 0:48 - 0:50
    不複雜也不花俏。
  • 0:50 - 0:52
    這個課程裡,我將會解釋
  • 0:52 - 0:54
    我們是怎麼設計我們的演算法
  • 0:54 - 0:56
    而它是如何運作的。
  • 0:56 - 0:58
    為什麼演算法如此重要?
  • 0:58 - 0:59
    又為什麼要有這個課程?
  • 0:59 - 1:02
    這個,請注意我剛用的那個
    非常重要的字:
  • 1:02 - 1:05
    演算法是一步一步
    解決問題的方法,
  • 1:05 - 1:06
    而就像你可能知道的,
  • 1:06 - 1:08
    電腦很擅長做一步步
    規劃好的程序。
  • 1:08 - 1:10
    一臺沒有演算法的電腦
  • 1:10 - 1:13
    基本上只是一個很貴的紙鎮而已。
  • 1:13 - 1:15
    由於電腦在日常生活中
    已經非常普及,
  • 1:15 - 1:17
    所以演算法也是無所不在。
  • 1:19 - 1:20
    而 OK Cupid 演算法背後的數學
  • 1:20 - 1:22
    其實異常地簡單。
  • 1:22 - 1:23
    只是一些加法、
  • 1:23 - 1:24
    乘法、
  • 1:24 - 1:25
    還有一些些開根號。
  • 1:25 - 1:28
    而要設計它比較麻煩的部份,反而是
  • 1:28 - 1:30
    想辦法把一些神秘的東西,
  • 1:30 - 1:31
    像是人類的吸引力,
  • 1:31 - 1:34
    把它變成電腦可以運算的東西。
  • 1:34 - 1:36
    好,要將人配對
    所需要的第一樣東西是數據,
  • 1:36 - 1:38
    也就是要讓演算法計算的東西。
  • 1:38 - 1:40
    要快速取得人們資料
    最好的方法
  • 1:40 - 1:42
    就是直接問他。
  • 1:42 - 1:44
    所以,我們決定 OK Cupid 應該要問
    使用者一些問題,
  • 1:44 - 1:47
    像是:「你未來希望有小孩嗎?」
  • 1:47 - 1:49
    還有「你多常刷牙?」
  • 1:49 - 1:50
    「你喜歡恐怖片嗎?」
  • 1:50 - 1:54
    以及較大的問題
    像是「你相信神嗎?」
  • 1:54 - 1:55
    而很多問題都有助於
  • 1:55 - 1:56
    將喜歡的人和喜歡的人
    配在一起,
  • 1:56 - 1:59
    這是當雙方都回答了同一個答案的情況。
  • 1:59 - 2:01
    舉例來說,兩個都喜歡恐怖片的人
  • 2:01 - 2:03
    也許就是不錯的配對,
  • 2:03 - 2:04
    比起將喜歡
  • 2:04 - 2:05
    和不喜歡的人配在一起好。
  • 2:05 - 2:06
    但如果是像這樣的問題:
  • 2:06 - 2:08
    「你喜歡成為眾人的焦點嗎?」
  • 2:08 - 2:11
    如果一對情侶的兩個人都說「喜歡」
  • 2:11 - 2:13
    那麼他們就有大問題了。
  • 2:13 - 2:14
    我們很早就知道這點,
  • 2:14 - 2:16
    所以我們決定
  • 2:16 - 2:18
    每個問題都需要再多一點資訊。
  • 2:18 - 2:20
    我們要求使用者
    不只是回答問題本身,
  • 2:20 - 2:23
    同時也回答他們對別人的期望。
  • 2:23 - 2:24
    這效果真的很好,
  • 2:24 - 2:26
    但我們還須要另一個思維。
  • 2:26 - 2:29
    有一些問題比其它問題
    更能提供一個人的個性。
  • 2:29 - 2:32
    比如說,像是政治的問題:
  • 2:32 - 2:35
    「哪一個比較糟:燒書或是燒國旗?」
  • 2:35 - 2:37
    比起對電影的品味,這可能透露更多
    這個人的個性。
  • 2:37 - 2:39
    而每個人看事情的輕重大小都不同
  • 2:39 - 2:42
    所以我們加入了最後一個資料點。
  • 2:42 - 2:43
    每一個 OK Cupid 問你的問題,
  • 2:43 - 2:45
    你都可以告訴我們
  • 2:45 - 2:46
    它在你生活中扮演的角色,
  • 2:46 - 2:49
    而選項是從「不相關」到「極重要」。
  • 2:49 - 2:51
    所以現在,每一個問題,
  • 2:51 - 2:53
    我們都有三筆資訊
    可以給我們的演算法:
  • 2:53 - 2:54
    第一,你的答案;
  • 2:54 - 2:56
    第二,你對別人期望的答案,
  • 2:56 - 2:57
    就是可能會跟你配對的人;
  • 2:57 - 2:59
    就是可能會跟你配對的人;
  • 2:59 - 3:02
    第三,這問題究竟對你有多重要。
  • 3:02 - 3:04
    有全部這些資訊,
  • 3:04 - 3:07
    OK Cupid 就可以算出
    這兩個人相處有多融洽。
  • 3:07 - 3:09
    這演算法會把數字吃進去
    然後給我們答案。
  • 3:09 - 3:11
    舉一個實際的例子,
  • 3:11 - 3:14
    我們來看看你和另一個人有多速配,
  • 3:14 - 3:16
    估且叫他作 B 君。
  • 3:16 - 3:17
    你和 B 君的速配指數
    是基於
  • 3:17 - 3:19
    你們雙方回答的答案。
  • 3:19 - 3:22
    我們把同樣的問題這集合叫做 s。
  • 3:22 - 3:25
    一個非常簡單的例子,
    我們用很小的集合 s,
  • 3:25 - 3:26
    只有兩個相同的問題,
  • 3:26 - 3:28
    然後由它算出速配程度。
  • 3:28 - 3:30
    這是兩個可能的問題。
  • 3:30 - 3:32
    第一個是:「你有多不愛乾淨?」
  • 3:32 - 3:35
    而可能的答案是
  • 3:35 - 3:36
    「很髒亂」、
  • 3:36 - 3:36
    「普通」、
  • 3:36 - 3:38
    「很愛乾淨」。
  • 3:38 - 3:40
    假設你的答案是「很愛乾淨」,
  • 3:40 - 3:43
    而你期望別人也回答「很愛乾淨」,
  • 3:43 - 3:45
    並且這問題對你來說「非常重要」。
  • 3:45 - 3:46
    基本上你有潔癖。
  • 3:46 - 3:47
    你愛乾淨、
  • 3:47 - 3:48
    你也希望別人愛乾淨,
  • 3:48 - 3:49
    就是這樣。
  • 3:49 - 3:51
    又假設 B 君回答有點不一樣。
  • 3:51 - 3:54
    他回答自己「很愛乾淨」,
  • 3:54 - 3:55
    但別人回答是「普通」
  • 3:55 - 3:57
    對他來說就可以了,
  • 3:57 - 3:59
    並且這問題對它只有「些許重要。」
  • 3:59 - 4:00
    接著我們來看第二個問題,
  • 4:00 - 4:02
    是我們先前說過的例子:
  • 4:02 - 4:04
    「你喜歡成為眾人的焦點嗎?」
  • 4:04 - 4:05
    而答案只有「是」或「否」。
  • 4:05 - 4:06
    假設你的答案是「否」,
  • 4:06 - 4:08
    而你希望對方回答「否」、
  • 4:08 - 4:11
    並且這問題對你只有「些許重要」。
  • 4:11 - 4:12
    換 B 君,他回答「是」,
  • 4:12 - 4:14
    而他希望對方回答「否」,
  • 4:14 - 4:16
    因為他希望焦點是在他身上,
  • 4:16 - 4:19
    而這問題對他「蠻重要的」。
  • 4:19 - 4:22
    好,讓我們試著來算看看。
  • 4:22 - 4:23
    第一個步驟,
  • 4:23 - 4:24
    因為我們是用電腦算,
  • 4:24 - 4:26
    我們必須給不同答案
    相對應的數字,
  • 4:26 - 4:29
    比如說「蠻重要的」和「非常重要」,
  • 4:29 - 4:31
    因為電腦須要每件事都是數字
    才能運算。
  • 4:31 - 4:34
    在 OK Cupid 裡我們訂定了這樣的量表:
  • 4:34 - 4:36
    「不相關」是 0、
  • 4:36 - 4:38
    「些許重要」是 1、
  • 4:38 - 4:40
    「蠻重要的」是 10、
  • 4:40 - 4:42
    「非常重要」是 50、
  • 4:42 - 4:46
    而「極重要」是 250。
  • 4:46 - 4:49
    接著,演算法會進行兩個簡單的運算。
  • 4:49 - 4:52
    第一是 B 君的答案
    有多符合你的期望。
  • 4:52 - 4:56
    也就是,B 君在你的量表上會得到幾分?
  • 4:56 - 4:58
    嗯,你在第一個愛乾淨的問題中
  • 4:58 - 5:00
    表示 B 君的答案
  • 5:00 - 5:01
    對你非常重要。
  • 5:01 - 5:04
    它佔 50 分而 B 正好符合。
  • 5:04 - 5:06
    而第二個問題只佔 1 分,
  • 5:06 - 5:08
    因為你說它只有些許重要,
  • 5:08 - 5:09
    而 B 君答得不對。
  • 5:09 - 5:12
    所以 B 君的答案
    在總數 51 分裡得到 50 分。
  • 5:12 - 5:14
    這樣是 98% 的滿意度。
  • 5:14 - 5:15
    相當不錯。
  • 5:15 - 5:17
    而演算法第二步要做的是
  • 5:17 - 5:19
    你有多符合 B 君。
  • 5:19 - 5:21
    嗯,B 君認為你對整潔問題
  • 5:21 - 5:22
    的答案佔 1 分,
  • 5:22 - 5:25
    而第二個問題的答案佔 10 分。
  • 5:25 - 5:27
    總共是 11 分,也就是 1 + 10,
  • 5:27 - 5:28
    你得到 10 分,
  • 5:28 - 5:31
    你們雙方在第二個問題
    符合兩方的條件。
  • 5:31 - 5:33
    所以你的答案是
    11 分裡得 10 分,
  • 5:33 - 5:35
    相當於 B 君 91% 的滿意度。
  • 5:35 - 5:36
    也是不錯。
  • 5:36 - 5:38
    而最後一步,
    是把這兩個數字
  • 5:38 - 5:40
    變成你們兩個速配指數。
  • 5:40 - 5:43
    要完成這件事,
    演算法會把你們的分數乘起來,
  • 5:43 - 5:44
    然後開 n 次方根,
    (譯註:在 OK Cupid 官網中都是開根號。)
  • 5:44 - 5:47
    這裡 n 是問題的數目。
  • 5:47 - 5:49
    因為在我們例子的 s 裡,
  • 5:49 - 5:52
    問題數只有 2,
  • 5:52 - 5:54
    我們就算出速配指數
  • 5:54 - 5:58
    是 98% 乘 91% 的開根號。
  • 5:58 - 6:00
    也就是 94%。
  • 6:00 - 6:03
    這 94% 就是你和 B 君的速配指數。
  • 6:03 - 6:05
    這是基於我們的了解,
  • 6:05 - 6:06
    你們兩個相處融洽的程度
  • 6:06 - 6:08
    的一種數學式。
  • 6:08 - 6:10
    而,為什麼演算法要用相乘
  • 6:10 - 6:12
    而不用相加,
  • 6:12 - 6:15
    並且要取平方根呢?
  • 6:15 - 6:16
    一般來說,這個公式叫作
    幾何平均數,
  • 6:16 - 6:18
    它是將範圍很廣、
  • 6:18 - 6:19
    並表達不同特性的數據合在一起的
  • 6:19 - 6:21
    一種很棒的方法。
  • 6:21 - 6:23
    也就是說,它對浪漫的配對來說
    是很完美的。
  • 6:23 - 6:24
    你會有很廣的數據、
  • 6:24 - 6:26
    你也許多不一樣的資訊,
  • 6:26 - 6:27
    比如說,關於電影、
  • 6:27 - 6:28
    關於政治、
  • 6:28 - 6:29
    關於信仰、
  • 6:29 - 6:30
    關於所有事。
  • 6:30 - 6:32
    直覺來說,這也合理。
  • 6:32 - 6:35
    兩個人互相有 50% 的滿意度
  • 6:35 - 6:36
    應該會比
  • 6:36 - 6:39
    一人是 0% 另一人是 100% 來得好,
  • 6:39 - 6:41
    因為感情是互相的。
  • 6:41 - 6:43
    再加上一些邊界錯誤的修正,
  • 6:43 - 6:46
    就是說當問題數很少的時候的修正,
  • 6:46 - 6:47
    像是我們這個例子,
  • 6:47 - 6:49
    我們就完成了。
  • 6:49 - 6:50
    每一次 OK Cupid 在幫兩人配對時,
  • 6:50 - 6:52
    都經過了我們所講的那些步驟。
  • 6:52 - 6:54
    首先從你的答案收集資訊,
  • 6:54 - 6:57
    然後用簡潔的數學方法
  • 6:57 - 7:00
    來將你和其它人的偏好作比較。
  • 7:00 - 7:02
    這樣把真實世界的現象
  • 7:02 - 7:05
    變成微晶片能運作的一種能力,
  • 7:05 - 7:06
    我認為,
  • 7:06 - 7:09
    是我們現今可以擁有的
    最重要的技能。
  • 7:09 - 7:11
    就像是你用句子來
    向別人說故事一樣,
  • 7:11 - 7:14
    你會用演算法來
    對電腦訴說故事。
  • 7:14 - 7:15
    如果你學會這種語言,
  • 7:15 - 7:16
    你就可以把你的故事告訴別人。
  • 7:16 - 7:19
    這就是我希望幫助你達成的事情。
Title:
探索 OKCupid:當數學遇上交友網站 - Christian Rudder
Speaker:
Christian Rudder
Description:

完整課程請見:http://ed.ted.com/lessons/inside-okcupid-the-math-of-online-dating-christian-rudder

當兩個人都加入了交友網站,他們會因為有相同的興趣、以及他們回答眾多問題的方式而被配對在一起。但是網站是如何計算成功配對的可能性呢?OKCupid 是一個有名的交友網站,它的創辦人之一 Christian Rudder 詳細說明了「速配」背後的演算法。

課程:Christian Rudder;動畫:TED-Ed

more » « less
Video Language:
English
Team:
closed TED
Project:
TED-Ed
Duration:
07:31

Chinese, Traditional subtitles

Revisions Compare revisions