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