在线交友背后的数学原理
全世界只有3.14 %?的人關(guān)注了
數(shù)據(jù)與算法之美
欣賞 TED-Ed 帶字幕視頻, 或者看下面編寫(xiě)的文字版. ?
01
交友網(wǎng)站的背后是算法帝國(guó)
大家好,我叫 Christian Rudder,我是 OKCupid 網(wǎng)站的創(chuàng)辦人之一。這個(gè)網(wǎng)站現(xiàn)在已經(jīng)是全美最大的交友網(wǎng)站。
就象這網(wǎng)站上大多數(shù)其他人一樣,我是學(xué)數(shù)學(xué)的,正如你想象的那樣,我們擅于分析。我們把這方法也應(yīng)用在愛(ài)情上。我們把它叫做"配對(duì)算法"。
基本上 OK Cupid 的配對(duì)算法幫助我們決定兩個(gè)人是否應(yīng)該約會(huì)。我們的整個(gè)業(yè)務(wù)都是基于這一點(diǎn)。
"算法"這個(gè)詞說(shuō)起來(lái)專(zhuān)業(yè)而高級(jí),大家喜歡把它想成很大的一件事,但其實(shí),算法只不過(guò)是一個(gè)系統(tǒng)的,一步一步的解決問(wèn)題的方法。根本沒(méi)有那么復(fù)雜。
現(xiàn)在,我將為大家解釋我們?cè)鯓拥贸鲞@一個(gè)特殊的算法。你會(huì)在這看到它是怎樣成形的。
為什么算法如此重要?為什么我們要有這堂課?請(qǐng)注意我剛才提到的一個(gè)很重要的詞:它們是一種"逐步"解決問(wèn)題的方法,你或許也知道,電腦擅長(zhǎng)于一步一步的運(yùn)算過(guò)程。沒(méi)有算法的電腦,基本上只是一個(gè)昂貴的鎮(zhèn)紙。
02
簡(jiǎn)單原理
既然電腦已經(jīng)普及到我們的日常生活,算法是無(wú)處不在。OK Cupid 配對(duì)算法背后的數(shù)學(xué)邏輯是非常簡(jiǎn)單的。就是一些加法,乘法,再來(lái)一點(diǎn)平方根。
不過(guò),設(shè)計(jì)這套算法的關(guān)鍵部分,在于要找出那些神秘的人與人之間的相互吸引力,并把它設(shè)計(jì)成電腦可以計(jì)算的步驟,我們要做的第一件事就把人和數(shù)據(jù)關(guān)聯(lián)起來(lái),這樣算法才能生效。
要最快的從人們那里得到數(shù)據(jù),最好就是直接詢問(wèn)他們。我們決定 OK Cupid 應(yīng)該向用戶問(wèn)問(wèn)題,比如說(shuō):
"你會(huì)想要小孩嗎?",
"你多久刷一次牙?",
"你喜歡看恐怖電影么?"。
也有嚴(yán)肅些的問(wèn)題,比如:"你相信上帝么?"。
目前有很多問(wèn)題在進(jìn)行同類(lèi)型配對(duì)上都很合適,就是當(dāng)雙方的答案相同時(shí)。比如,兩個(gè)人都喜歡看恐怖電影可能配對(duì)得更成功。而一個(gè)人喜歡,另外一個(gè)人不喜歡的情況下,適配度就差點(diǎn)。
但如果碰到下面的問(wèn)題 :"你喜歡成為關(guān)注的中心么?"如果交往中的雙方都回答是,那他們可有大問(wèn)題了。
我們很早就意識(shí)到了這一點(diǎn),所以我們覺(jué)得需要在每個(gè)問(wèn)題再收集多一些數(shù)據(jù)。我們不僅要人們回答自己的看法,也要他們回答所期待未來(lái)意中人如何回答。
這方法很有效,不過(guò)我們還要再多加一個(gè)維度。有些問(wèn)題能表達(dá)人們的與眾不同之處。比如,關(guān)于政治的問(wèn)題," 焚燒書(shū)籍或者國(guó)旗,哪個(gè)更糟糕 ?"這能展露人們電影口味之外的東西.?
同時(shí),并不是所有問(wèn)題都同等重要的,所以我們最后增加了一點(diǎn)判別數(shù)據(jù)權(quán)重的維度。任何 OK Cupid 的問(wèn)題,你都可以告訴我們這問(wèn)題對(duì)你的重要性,它的程度從"無(wú)關(guān)"到"必要"。
現(xiàn)在,每一個(gè)問(wèn)題,我們有三個(gè)資訊提供給算法:
你的答案;
你希望別人怎么回答;也就是你潛在的意中人的答案;
這個(gè)問(wèn)題對(duì)你有多重要?
有了這些信息,OK Cupid?可以知道兩個(gè)人相處和諧程度如何。算法吃進(jìn)數(shù)字,吐出打分后的結(jié)果。教你如何用數(shù)學(xué)找到真愛(ài),推薦閱讀《愛(ài)情數(shù)學(xué)》
03
舉例說(shuō)明
實(shí)際舉例來(lái)說(shuō)吧,看我們?cè)鯓影涯愫土硗庖粋€(gè)人進(jìn)行配對(duì),暫且稱他為 "B"。你和 B 的適配度是基于你們雙方都進(jìn)行過(guò)回答的問(wèn)題。姑且把這些共同問(wèn)題稱之為 "s"。
簡(jiǎn)單舉例,我們用小樣本的 "s",只需兩個(gè)共同回答過(guò)的問(wèn)題電腦會(huì)根據(jù)它算出適配度。
這里是我們的兩道簡(jiǎn)單問(wèn)題:
第一個(gè)是,"你有多雜亂無(wú)章?". 可供選擇的答案選項(xiàng)有非常雜亂無(wú)章,一般,和非常有條理。
我們假設(shè)你回答的是"非常有條理",你期待別人的回答是"非常有條理",并且對(duì)你來(lái)說(shuō),這個(gè)問(wèn)題非常重要。
從你的回答可以認(rèn)為, 基本上你就是個(gè)井井有條的有點(diǎn)潔癖的人。所以你也希望對(duì)方同樣如此, 就這樣簡(jiǎn)單。
我們假設(shè) B 有些不同。他的回答是自己非常有條理,但是他也接受意中人回答"一般",并且這個(gè)問(wèn)題于他而言不太重要。
好, 現(xiàn)在我們?cè)倏吹诙€(gè)問(wèn)題,就是我們最開(kāi)始舉例的:"你喜歡成為關(guān)注的中心么?"
答題項(xiàng)只有"是"或者"否"。現(xiàn)在你的回答是"否",你希望別人怎樣回答這欄答的是"否", 這個(gè)問(wèn)題對(duì)于你而言, 顯得不太重要。而B(niǎo)呢,他自己的回答是"是",他希望別人回答"否",因?yàn)樗M薪裹c(diǎn)都在他身上,而這個(gè)問(wèn)題對(duì)他還算重要。
04
計(jì)算匹配度
現(xiàn)在,我們讓電腦來(lái)處理一切。我們的第一步是,既然我們要用電腦來(lái)處理它,我們就需要給一些數(shù)值來(lái)定義比如"還算重要"和"非常重要",因?yàn)殡娔X需要把所有資料都轉(zhuǎn)化成數(shù)字。
在 OK Cupid 上我們按如下級(jí)別:
"無(wú)所謂"是 0,
"不太重要"的值是1,
"還算重要"的值是 10,
"非常重要"的值是 50,
"絕對(duì)必要"的值是 250.
接下來(lái), 算法要做兩個(gè)簡(jiǎn)單的計(jì)算。第一個(gè)是你對(duì)B的回答給多少分,另外一個(gè)是,你給對(duì)方答題的滿分是多少?
你可以指定 B 的答案在第一個(gè)有關(guān)條理性的問(wèn)題上,對(duì)你是非常重要。它值50分,B 答對(duì)了。
第二個(gè)問(wèn)題只有1分,因?yàn)槟阏f(shuō)這問(wèn)題對(duì)你不太重要,B 答錯(cuò)了。所以B的回答在51分滿分里拿到了50分。適配滿意度是 98%。非常好。
算法的第二個(gè)問(wèn)題是看 B 對(duì)你的滿意程度。B給對(duì)于你有關(guān)條理性的回答給1分,對(duì)于第二個(gè)問(wèn)題的答案給10分。滿分11分,就是1+10.你得到了10分。
在第二個(gè)問(wèn)題上,你倆彼此都滿意。你的回答在B的滿意度分?jǐn)?shù)是10/11,百分比是91%,還不錯(cuò)。
最后一步是把兩個(gè)適配度百分比放在一起,為你們倆個(gè)人打一個(gè)分?jǐn)?shù)。為得到這點(diǎn),算法把你們兩人的得分相乘,然后開(kāi)n次方根,n 就是問(wèn)題的數(shù)目。
因?yàn)?#34;s"-- 也就是問(wèn)題的數(shù)目,在這個(gè)例子里,只是"2",我們得到的適配度百分比等于98% 乘以 91% 再開(kāi)平方根,結(jié)果等于94%。
94%就是你和 B 之間的適配度百分比。這是通過(guò)數(shù)學(xué)方法來(lái)表達(dá)--你們彼此之間相處的愉快程度是怎樣。
基于我們所知道的信息。為什么算法要相乘,而不是除?比如,把兩個(gè)分?jǐn)?shù)求平均值以后再開(kāi)平方根?總的來(lái)說(shuō),這個(gè)公式叫幾何平均數(shù),它很適合處理差異很大的數(shù)據(jù),以及代表不同屬性的數(shù)據(jù)。
換句話說(shuō),它能完美的計(jì)算出浪漫愛(ài)情適配度。你有大范圍的,數(shù)不清的數(shù)據(jù)值,就像剛說(shuō)過(guò)的,有關(guān)電影的,有關(guān)政治的,有關(guān)宗教的,有關(guān)所有的一切。
憑直覺(jué)講,以下情況很有道理。兩個(gè)人彼此的滿意度是50%,會(huì)好過(guò)那些兩個(gè)人彼此滿意度是0或者100的。因?yàn)閻?ài)慕應(yīng)該是互相的。
在增加了對(duì)誤差幅度的小修改后 --這種情況在問(wèn)題量很小的時(shí)候會(huì)出現(xiàn),就像我們剛舉的運(yùn)算實(shí)例一樣--這套算法就可以運(yùn)作了。
任何時(shí)候當(dāng) OK Cupid 將兩個(gè)人配對(duì)時(shí),它按照我們剛介紹的步驟來(lái)運(yùn)作,首先它收集你的答題的數(shù)據(jù),然后它比較你的選項(xiàng)和你期待的對(duì)方選項(xiàng),以簡(jiǎn)單的,數(shù)學(xué)的方法來(lái)進(jìn)行。
這種能將現(xiàn)實(shí)世界的現(xiàn)象,轉(zhuǎn)化為電腦芯片能讀取的數(shù)據(jù)的能力,我認(rèn)為,是現(xiàn)代最重要的一種技術(shù)。就像你用話語(yǔ)來(lái)給一個(gè)人講故事,你是用算法來(lái)跟電腦講故事。如果你學(xué)會(huì)了這種語(yǔ)言,你就可以去講故事了。我希望我剛才的介紹能幫助你做到這點(diǎn)。
來(lái)源:遇見(jiàn)數(shù)學(xué)
版權(quán)歸原作者所有,轉(zhuǎn)載僅供學(xué)習(xí)使用,不用于任何商業(yè)用途,如有侵權(quán)請(qǐng)留言聯(lián)系刪除,感謝合作。
精品課程推薦:
選購(gòu)數(shù)學(xué)科普正版讀物
嚴(yán)選“數(shù)學(xué)思維好物”
送給孩子的益智禮物? ?| ??辦公室神器
算法工程師成長(zhǎng)閱讀? ?| ??居家高科技
理工科男女實(shí)用型禮物精選? ?
----點(diǎn)擊頭像關(guān)注----
超級(jí)數(shù)學(xué)建模
數(shù)據(jù)與算法之美
少年數(shù)學(xué)家
數(shù)銳學(xué)堂
驚喜醬(個(gè)人號(hào))
玩酷屋COOL
總結(jié)
以上是生活随笔為你收集整理的在线交友背后的数学原理的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Python的这几个常用库,你会用吗?
- 下一篇: 超级智能玩具《小小机器人》|全新50种玩