年輕時在國內工作過幾天的,難免有被介紹對象的歷史。記得那些熱心的大姐大媽,開口通常都是這樣的:“我覺得你們的條件很般配啊!”然後列舉對方的年齡,身高,學歷,工作四大指標,再對性格,長相,家世背景略提一二,剩下的就是相親程序了。也許不少人就是這樣找到了自己的另一半,但是對於一心要尋找心靈伴侶(soul mate) 的小資文青而言,相親對上眼的成功率肯定跟對着林子放槍,打到一隻畫眉的機會差不多。 世界進入互聯網時代,婚戀交友網站層出不窮,估計搶了不少熱心大媽的業務,不過他們的牽線搭橋水平,比“膚白貌美”配“有房有車”能高明多少,還真是個問號。國外的交友網站據說也是各種不靠譜。 偶然間在《Wired》雜誌上讀到下面這個故事,覺得非常有趣。適逢情人節加元宵節,講給大家聽聽稀罕。願已相依相守的人們更加珍惜彼此,願還在尋找真愛的,月上柳梢頭時,有約黃昏後!
失意宅男 來認識一下Chris
McKinlay,這個故事裡的男主角。2012年初夏的時候, McKinlay還是UCLA數學系的一名博士生,日夜煎熬着在趕寫他關於大規模數據處理的畢業論文。但是更讓他念念不忘的,是他在交友網站OkCupid上的收件箱。35歲的小伙子,單身9個多月了,渴望着OkCupid 能幫他開始一段新的浪漫之旅。 據統計,全美有約4000萬人通過Match.com, e-Harmony和J-Date之類的交友網站,尋找浪漫和緣分。其中的在線約會網站OkCupid,由哈佛的數學專業高才生創建,其特別之處在於這個網站使用數學計算方法給人們配對。每一位OkCupid的會員都需要填寫一份調查問卷,涵蓋生活中的各個方面,包括政治,宗教信仰,家庭,愛好,性向,手機等等。OkCupid的服務器上有成千上萬道多項選擇題,會員們每人平均回答350題左右,比如 “哪些因素會更吸引你去看某一部電影?”,或者“在你的生活中,宗教/上帝有多重要?”之類。對每個問題,用戶要先給出自己的答案,再指出希望未來的對象做怎樣的選項,還要回答這個問題對自己有多麼重要(1-5分),等等。根據這些答案,OkCupid系統會自動計算用戶間的匹配程度;匹配度高的,系統會優先推薦給會員去聯繫。(下面的視頻,簡單介紹了OkCupid的配對系統是怎麼工作的)
在洛杉磯地區,至少有8萬名女性OkCupid用戶,可是系統給McKinlay找出來的適合對象(即90%以上匹配度)只有區區不足百人,她們大多數還不理踩McKinlay的搭訕。好幾個月過去了,他只約會過六次,而且都是見了一次就再沒有下文。McKinlay的鬱悶可想而知。你也許想象McKinlay是個不懂人情世故的書呆子,其實並不盡然。他本科畢業於Middlebury College中文專業,第一份工作是在紐約做中文翻譯;隨後,他加入了著名的MIT學生 21點賭博小分隊,出入於紐約與拉斯維加斯各大賭場之間,每年也能賺到六萬美元。正是這段經歷,使他對應用數學產生了濃厚的興趣,這才來到UCLA,讀他的數學博士。 變身駭客 2012年6月的一個清晨,面對着論文研究的滿屏代碼和OkCupid里他那無人理睬的賬戶,McKinlay想明白了:OkCupid的配對,歸根結底是個數學模型;身為一個數學家,當然要用數學方法解決自己的找對象問題。因為OkCupid的算法僅是根據參與者都作答過的題目進行比較匹配,那麼顯然,自己以前答過的問題和姑娘們關心的事驢唇不對馬嘴。如果借用抽樣統計,弄明白自己喜歡的那類女性都關心什麼樣的問題,然後有的放矢地回答這些問題,重塑自己的形象檔案,不就可以找出更多的匹配對象了嗎? 說干就干。任何統計分析,首先少不了數據。McKinlay自己編寫程序,又設置了一堆“殭屍”帳號,到處訪問頁面,隨機兼做答案,專門收集目標人群(25到45的異性戀或雙性戀女士)各方面的數據。這樣幹了不久,麻煩來了-- 像OkCupid這樣的技術公司,當然要防範這類的大規模數據收集,保護其核心技術與用戶資料。OkCupid的防禦系統探測到這些反常的計算機行為,於是McKinlay的小替身們一個接一個被廢掉了武功。 道高一尺,魔高一丈,McKinlay迅速了改變策略。他找到同為OkCupid用戶的朋友Sam,說服Sam讓他在計算機上裝了一個新程序,可以模擬 Sam 的點擊頻率和打字速度,從而騙過了OkCupid的監測系統,繼續瘋狂收集資料。 分析歸類 僅僅用了3周時間,McKinlay獲得了2萬名女用戶6百多萬個問題/回答的數據。他把博士論文拋到腦後,一頭扎進這些數據的分析中。 McKinlay 的目標是要從這幾百萬的數據中找出一些模式,就是識別出一些特別的共性而給人們歸類。他運用貝爾實驗室的 K-Modes 算法來分析這些數據,期間不斷進行一些參數微調。終於,神奇的結果出現了!兩萬名女子,依據她們的問題和答案,被自然歸類到7個各具特色的集群中,就是下圖中的一個個彩球: 
看人下菜 通過對這些群組的觀察和分析,McKinlay把注意力集中到兩個群組上:A組是些特立獨行,從事音樂或藝術,二十來歲的年輕姑娘;B組則是些年齡稍長,主要從事創造性強,如編輯,設計類工作的職業女性。McKinlay有針對性地為自己建立了兩份OkCupid檔案,面向A組的檔案配了張攀岩的照片;面向B組的照片,顯示他正在音樂俱樂部里彈吉他。他還做了點文本挖掘,發現教師似乎比較吃香,就在自己簡歷中教授數學的內容強化了一番。 最核心的當然還是那份OkCupid的調查問卷。McKinlay選取了在這兩個群組中最常見的500個問題,然後認真誠實地給出了自己的回答,因為他既然想找一個真正契合的心靈伴侶,就不能只為投其所好,用謊言誤導計算機,毀了自己的幸福。不過,McKinlay還是運用了一種稱為“自適應增強”的機器學習方法,計算出每一個問題對於不同群組的重要程度,並照此下單。比如這個問題: 如此這般答完了最後一個問題,McKinlay長吸一口氣,點擊搜索,想看看OkCupid現在能給他找出多少匹配的女性。Oh my …… 結果顯示的頂端,是一整頁匹配度高達99%的女士!他不斷的向下拉動頁面,一行行一頁頁,掃過一萬位女士,匹配度依在90%以上,而且全在本地! 這還是原來那個匹配人數不到100,乏人問津的McKinlay嗎?! 吸引眼球 酒好也怕巷子深。McKinlay還要再做點工作,吸引姑娘們的注意。OkCupid的系統,在有人來訪問個人主頁時,主頁用戶會得到通知。於是,McKinlay又寫了一個程序,周期性地去所有匹配度高的主頁訪問踩點,留下痕跡。來而不往非禮也。很快,McKinlay的主頁也變得熱鬧起來,有時一天有400人次的訪問量,各種信息,悄悄話也開始不斷進來。McKinlay一下子成了香餑餑! 至此,技術宅男McKinlay的“網絡速配研究”的數學部分完美成功,接下來就是實際進行約會了。每赴一次約會,McKinlay都會做詳細的記錄,於是又積累了點新的數據,比如A組的女孩,往往有幾個紋身,多住在洛杉磯東部;而B組的女士,不少人養了條不大不小的狗,諸如此類。由於技術含量有限,這裡就不囉嗦了。 到夏季結束時,McKinlay已經約會了好幾十次。只能說,社會複雜,人心難測,只有三個姑娘給了他第二次機會,與一位約會了三次,然後統統沒有了下文。深受打擊的McKinlay開始懷疑自己,也懷疑自己的數據挖掘模型,到底有沒有意義。 終遇佳人 正所謂山重水複,柳暗花明。第88次約會的時候,McKinlay 終於遇到了那個“她”,28歲的C.T. Wang 姑娘,UCLA美術專業的一位碩士生,91%的匹配度。事實上,還是Wang 姑娘主動先給他發信息打招呼的。倆人在學校花園見了面,一起在壽司店吃了飯,討論書籍,藝術和音樂,然後她又成了他的第 89 次約會,接下來一次又一次。兩周后,兩人各自停止了在 OkCupid 的賬戶;一年後,McKinlay通過Skype求婚,Wang 姑娘答應了! 人海茫茫,亂花迷眼。錯過風景無數,只求得卿一人! 再後來,McKinlay拿下了博士學位,還把自己在OkCupid上的經歷寫成了一本書。在Wang姑娘看來,McKinlay扮駭客,做數據挖掘的尋愛故事很有趣,但是所有的數學工具和程序代碼不過是兩人愛情故事的序曲,真正早就這段姻緣的還是在見面之後。“人們遠比自己的檔案資料要複雜得多。我們如何得以相見,只是表層的部分,但是隨後發生的一切絕不膚淺,其中有很多的用心和努力。”她還要特別提醒McKinlay:“記住,不是你網到了我,是我找到了你!” 正應了那句:眾里尋他千百度,驀然回首,那人卻在燈火闌珊處。 附上情歌一首,"True Love Will Find You in the End",真愛到底找到你。Happy Valentine's Day! |