QQ 2012 版 QQ 圈子功能的推薦演算法是怎樣的?

了解到DrThinker是圈子的核心演算法主創人員~~~


QQ圈子:從哪裡來,到哪裡去

擺脫頓巴數的魔咒

社交是人類的一個最基本的需求。但是,自然給我們人類的大腦,只能讓我們維繫150-200個左右的好友。超出這個範圍,就會有好友慢慢地被淡忘。很多社會群體的平均大小是150,這個數也被稱為頓巴數(Dunbar Number)[1]。例如,公元前6000年左右,中東地區新石器時代村落的人數大約在120-150人之間。在羅馬共和國時期,羅馬軍隊的一個基本作戰單位的人數大約為130。20世紀50年代以來,社會學家了解到,150-200人之間的公司可以基於人際關係運作,一旦超過,就需要各類等級制度和管理結構[2]。

在近代以前,絕大部分人生活在150-200人之間的固定圈子裡。圈子裡的人之間有著良好的人際關係,而與圈子外的人很少有聯繫。因此,他們僅僅用大腦就可以管理整個圈子中的社交關係。當然,在這150個人中也有親疏不同。其中最親密的,大概包括3-5人,組成一個很小的核心圈。其次是稍大一些的圈子,大約30-50人[2]。再次就是整個圈子。

但是,現代社會的流動性改變了這一切。我們隨著成長,從一個地方遷移到另一個地方,從一個圈子遷移到另一個圈子。對於大多數人而言,我們在一個地方出生和長大,去一個新的地方求學,認識新的朋友。畢業後,我們再去一個新的地方工作,認識新的同事……在每一個階段,我們都會有好友,也會有密友。但是隨著遷移,舊的好友慢慢地被淡忘。Dunbar等人指出,每年我們會遺忘大約15%的好友,而舊時的密友也會從我們社交圈的中心,慢慢地退到圈子的邊緣,甚至最終消失[1]。

遺忘舊朋友並不是唯一的問題。當我們到一個新的地方,需要結識新的朋友,融入新的環境,這一過程又變得有些吃力。儘管我們有各種各樣的技術手段,但是,面對面的溝通和交流仍然是結識朋友的主要手段。據研究統計,我們每天40%的時間,只用來和5個人打交道。而這5個人,往往還是我們的密友[1]。在現在這樣一個快節奏的時代,面對面交流,對於快速地結交好友而言,效率顯然有些低下。

我們期望「結識新朋友,不忘老朋友」。可事實上,我們正處在一種「難交新朋友,忘卻老朋友」的尷尬處境中。現在社交網路類的網站和軟體,正在努力地幫我們改變這種尷尬的處境。通過社交網路,我們可以添加相當多的好友,數百個甚至數千個。這似乎解決了我們的問題,但這只是表面現象:實際上,我們還是管不過來。在一個成熟的社交網路中,用戶的平均好友數僅為120-130。當好友數超過150-200,有些好友幾乎就認不出來[1]。這昭示了一個可笑的,但是卻不得不讓人接受的事實:社交網路的確進化到了21世紀,可是我們大腦,並不比幾千年前有多大的改觀。看起來,頓巴數就像個魔咒。儘管我們做了很多努力,仍然擺脫不了。

可是,為什麼我們不直接把我們的生活圈子(包括過去的、當前的、正在進入的)直接地在社交網路中列出來呢?那樣的話,我們就可以很好地管理和識別我們多年來積攢的好友,有些也許已經淡忘,但是當把他們放回到他們所在的圈子中時,那些忘卻的姓名將再度清晰;我們也可以利用圈子中人脈的力量,去尋找失散多年的好友;我們也可以跟舊時的玩伴分享現在的故事,他們也一定很渴望知道我們的近況;當我們進入一個新的環境,只需要加幾個QQ好友,圈子就能為我們展示更多的潛在好友,幫助我們快速地融入新的環境……是啊,為什麼不呢?

QQ圈子,就這麼誕生了。

理念到實現的距離

理念到實現的距離,是一個合適的技術方案。QQ圈子的計算思想很簡單:第一步,找到可能的圈友;第二步,分圈。

尋找可能的圈友,相對來說比較簡單。眾所周知,QQ使用的賬號是QQ號碼。正是QQ號碼,天然地成為了尋找好友的障礙——因為我們並不知道他們的QQ號碼是多少。但是,我們相信,如果他們有QQ號碼,總會有人知道。而這些人,就藏在我們的好友列表中。換句話說,那些失散多年的好友,很有可能就藏在我們的好友的好友(下文稱為潛在好友)中。經過長期的數據分析和評估,我們最後做了個簡單而又有效的設定,那就是把我們的圈友限定在好友和與我們關係緊密的潛在好友中。基於這個圈友列表,我們又設計了一套嚴謹的清洗、篩選和過濾演算法。設計這些清洗、篩選和過濾演算法的目的,一是為了保護隱私,二是為了提高推送的準確度。

分圈是最關鍵,也是最難的步驟。在真實的社交網路中,同一個圈子的人彼此熟識,而不同圈子的人之間,卻鮮有交情。映射到QQ的賬號體系中,這就等價於,同一個圈子的人互相加為好友,而不同圈子的人則彼此為「陌生人」。這一從現實生活中得來的經驗,是我們整個分圈演算法的基本假設。

其實,基於這一假設的分圈演算法並不罕見。學術界對與社交網路的分圈演算法早有研究,其中較為流行的是Newman等人提出的分圈演算法[3, 4]。我們在初期也嘗試了Newman等人的方法,卻發現這個演算法比較消耗計算能力,而分出來的效果,遠遠達不到我們的要求。我們還嘗試了文獻中的另外一些方法,如Raghavan 等人[5]的一種隨機擴散演算法等。Raghavan 等人的演算法大幅度地減少了運算量,可惜分出來的效果,仍然達不到我們的要求。我們想要展示的圈子,要更好一些,更準確一些。

最後我們決定自己開發一套演算法。經過長時間的嘗試和實驗,我們設計了一種「找朋友」演算法。如同已有的社交網路分圈演算法,「找朋友」演算法只使用了QQ號碼之間是否為好友這一最簡單而直接的數據。這一演算法的計算相對簡單,效果卻優於我們嘗試過的所有方法。在演算法里,每個圈子都在通過「找朋友」讓自己變得更好。這裡「好」的標準,也就是讓圈子內的好友聯繫儘可能地緊密,而與圈子外的好友則儘可能地沒有聯繫。

能讓大家更好地識別圈子和圈友,我們還設計了特別的演算法,嘗試為圈子和圈友提供參考名稱。在演算法設計的過程中,我們花了相當多的時間和精力去保護隱私。例如,在一個圈子裡,只有大部分圈子成員對某一個圈子成員都使用嚴格相同的備註名,這個備註名才會被聚合出來。而且這個備註名也僅僅只展現給這個圈子中的核心成員。所有的名稱也都經過了非常嚴格和全面的髒詞、敏感詞等的過濾。此外,我們還基於小世界網路的理論[6, 7]精心設計了圈友的排序。我們還做了智能備註這樣的功能,如果你願意,可以快速地將圈子上的備註名複製到QQ的好友列表中……

新的開始

我們所做的一切,都是為了幫助我們有限的大腦來應對現在多變的社交環境。QQ圈子將會是一個智能的平台。這個平台可以輔助我們做很多瑣碎的,有時也很困難的事情:譬如分組,備註,尋找好友。這個平台可以集成好友的通信方式,也能集成好友的消息動態,省去我們到處檢索和瀏覽的精力。這個平台可以幫助我們維繫現有關係,重拾失散的好友,也能幫助我們探索更多好友,拓展我們的社交網路。這個平台能幫助我們盤活我們的社會資本,為我們的生活帶來更多的精彩!

QQ圈子,將是一個嶄新的開始!

參考文獻:

1. Dunbar, R., You』ve Got to Have (150) Friends. The New York Times, The Opinion Pages, 2010.

2. Dunbar, R., How Many Friends Does One Person Need?: Dunbar"s Number and Other Evolutionary Quirks. 2010: Harvard Univ Pr.

3. Newman, M.E.J., Modularity and community structure in networks. Proceedings of the National Academy of Sciences, 2006. 103(23): p. 8577.

4. Newman, M.E.J. and M. Girvan, Finding and evaluating community structure in networks. Physical review E, 2004. 69(2): p. 026113.

5. Raghavan, U.N., R. Albert, and S. Kumara, Near linear time algorithm to detect community structures in large-scale networks. Physical review E, 2007. 76(3): p. 036106.

6. Adamic, L., The small world web. Research and Advanced Technology for Digital Libraries, 1999: p. 852-852.

7. Collins, J.J. and C.C. Chow, It』s a small world. Nature, 1998. 393(6684): p. 409-410.


[前言:乾脆把我這篇回答擴充成文章了,雖然好像文不對題]

我們需要什麼樣的社交工具?

——兼論騰訊圈子的功能設計為何惡評如潮

首先說兩句道德判斷,1我認為騰訊敢於嘗試、敢於挨罵的勇氣是值得肯定的,即使在一些人看來圈子已經接近於作惡,我仍然覺得,至少比不做強。

1. 工具,制度與社會結構

工具,制度與社會結構在多數時間總是處於一種匹配狀態,變革的時候除外。社交工具也是工具——通訊靠吼、存檔靠腦子就是一種解決方案;通訊有書信、存檔靠秘書又是一種解決方案。鄧巴的著名理論,就是關於(動物和人類)大腦的社交處理能力與社群規模的對應關係。對於人類來說,我們都能夠觀察到從古到今的、各式各樣的、具有相似人數上限的部落形態:村落,兵團,城市社區......

可以把這樣的、人數不超過150規模的社群,看作是一種利用人類使用默認安裝的社交工具形成的社會結構。這裡還沒提到制度——或者,也可以說沒有制度——現代意義上的制度正是在酋長管轄地這樣的聯合社會出現時,為了管理超過規模超過150人的群體而形成的行為規範。但是,就像「沒有工具」時代的工具一樣,「沒有制度」時代的制度也是存在的。這制度,就是每個人默認安裝的行為模式——而行使這種本能的前提是每個人都知道其他人是誰、並且了解那些人之間的關係,也就是說,每個人頭腦中都有一個全圖。

鄧巴的理論不涉及工具進步與制度演化的問題:為什麼現代社會能夠形成如此複雜的社會結構、而且使每個人都比原始部落時生活得更好?而這才是開發社交工具要回答的核心問題。例如公司(也是一種社群):為什麼大公司,例如騰訊,可以達到成千上萬人而保持高效率運轉,而且會出現大公司的人均產出高於小公司這樣明顯不符合邊際效率遞減的現象?例如教會:這樣一種集權結構,是如何擴張到全世界、並且在世俗勢力的衝擊下保持自己的運轉?種種現代社會的組織形態,使用了什麼制度?這種制度又被什麼社交工具支撐?

2. 六度分隔,小世界與意外三角形

現在市面上的文章言必稱六度分隔和鄧巴150。其實,六度分隔和鄧巴150恰恰描述了現代社會網性質的兩個極端。六度分隔體現的是現代社會網路的連通性,這隻有在現代社會,例如中國農民和美國農民之間才成立,而瑪雅農民和殷商農民之間則是無限大分隔。而鄧巴150,則解釋了當代社會的很多子結構仍然具有傳統部落特徵的原因——在沒有更先進的社交工具和制度的時候,人們的協作和信任仍然要依靠行為本能,以及「每個人都知道其他人是誰、並且了解那些人之間的關係」。這種緊密聚集結構的基本元素,是一個個三角形(既A認識B也認識C,也知道BC互相認識)。齊美爾(社會學奠基人之一、被追認為社會網研究先驅、物理社會學先驅...)稱之為穩定的三角形結構。

正是因為人們不斷走出原有的部落社群,建立跨越社群的新型組織,同時,人的行為仍然在相當程度上依靠原始本能,所以,現代社會才形成了的現在我們看到的網路結構特徵——低平均路徑長度和高集聚係數的混合,(有爭議地)概括為小世界網。「小世界效應」描述了一種意外感受:人們和他們之前從未謀面的人很可能找到共同認識的人、從而驚嘆「世界真小」!

這種特性,既可能成為「通天塔」式的協作陷阱,也是「助推」的關鍵。例如,齊美爾三角形的最佳實踐可能要數營銷和公關的核心策略——背書(endorsement),通過與第三方證言和目標受眾建立三角形結構,從而實現信任傳遞。

社交工具的邏輯也脫離不開「助推」。現在看看騰訊圈子做了什麼。總的來說,騰訊圈子的核心功能——將網路中原本不可見的圈子變為可見,是一種意外三角型關係的實現。這既可能擴充圈子成員、從而加強群體內的凝聚力,也可能造成不快——讓你發現「哦!原來世界這麼小——我室友和我初中同學還有一腿」、「那個下屬和我哥們一塊出現在勞教09群里,世界真小!」

用戶體驗如此,這兩天的反饋如何也就不言而喻。

3. 我需要什麼樣的社交產品

我沒有調研,不想代表別人,只談個人感受。和QQ、Facebook初創時期用戶規模和產品革新同步進行時的商業環境不同,現在人們並不缺乏平庸的工具。在未來能夠成功的革命性產品,必須在正確的方向上打破用戶維護社交關係的能力限制。

  • 我不需要垃圾信息

人需要遺忘,需要隱藏,需要欺騙。圈子裡有失散多年的好友,但也有很多我不想見到的人——他們沒有錯,但是被圈中了,悲催地成為垃圾信息。我當然需要推薦演算法,而且要做到"需要的在眼前,不需要的看不見",絕非越全越好,而是越准越好。要達到這目標,須知道關係是互動的(帶時間衰減的)總和——除了基於用戶認知的QQ好友關係,還應該基於用戶行為的互動歷史數據。

  • 我需要尊重用戶選擇的產品

在很大程度上,用戶的選擇是被操縱的——而工具和制度則是操縱的手段。但是,說到底,自由意志也可能是錯覺——但是用戶的確需要這種錯覺,社會的運行也需要這種錯覺。這需要產品規劃之初做好制度設計。

  • 我需要嵌入制度的產品

有用的工具需要起到助推作用,這必須考慮到起點在哪。對中國社會來說,起點和美國是不同的。中國的社會關係比美國的複雜,這使得適合美國用戶的SNS產品,在中國只能對用戶產生有限價值。這還有一個前提,就是SNS產品不僅是一對一通信工具,而且是群件,不僅考慮一階效應(所有成員之間的兩兩關係),還要考慮高階效應(兩兩關係形成的網路結構的影響),這當然是顯而易見的。有 一種類比性質的解釋(還不能算是非常靠譜的理論):美國的社會關係是一維的,衡量人際關係的指標、同時也是待人的基本原則,只有遠近 (closeness),而像印度這樣的傳統文化發揮重要影響的社會關係則是多維的(參考Jonathan Haidt &)。我認為(未經實證研究),中國的社會關係至少是二維的,不僅有遠近(交往的密切程度),還有權威等級(來源於官本位,或者父權等級)。再打個不恰當的比喻,對美國人來說,一個房間可以被看作會議室,但是對中國人來說,一個帶主席台的房間才可以被看作是會議室。(參考這裡 人人網如何走出目前的困局?)


可能更多的是借鑒了自己的分組(包括之前的),還有就是朋友網的數據。


【亂猜測,或許和隱私竊取無關】

一,圈子形成的演算法:對好友關係進行系統遍歷,每當有4個人兩兩加為好友時,判定他們4人在某個圈子中。

二,圈子擴散的演算法:對不同的圈子再遍歷,如果兩個圈子,出現了兩個相同的成員,這判斷這兩個圈子屬於同一個圈子。

如果突然這個產品的產品經理告訴我,就這這個算的,那就太開心啦,嘎嘎~(雖然不太可能。。。就當自己yy)


通過這個介紹發現,「備註」一項早就讓我們的qq實名制了啊


基於QQ關係建立social network,然後利用複雜網路中的社團發現演算法(community detection)進行聚類。而後利用備註和qq上的分組信息進行圈子的命名和排序。

當然Community detection的問題本身就是一個很複雜的問題,包括社團的定義以及社團發現。

一, 社團的定義目前來說基本上還是採用Modularity(模塊度函數)來衡量,簡單來說就是找到一個子圖,這個子圖內部緊密聚合而子圖與子圖之間聯繫盡量少(軟體工程上有所謂"高內聚,低耦合",思想一致);具體來說就是當前子圖的內部的聚合程度與隨即分布下的點的聚合程度之"差"稱為模塊度.

社團發現的演算法,主要的思想與聚類中應用的類似,分為劃分式和聚合式的演算法.相應的有Newman的Fast Algorithm,還有GN的演算法等等。

個人覺得這個過程中應該還利用了很多群、以及每個賬戶的qq分組等信息進行關係網的補充。我試用了下,總體來說還可以,但是隱約感覺對群的依賴挺多的。


qq圈子給我的分組很亂很爛。。。。因為我平常的好友都是隨便亂放,qq本來的分組我有20個,想放那個放哪個。。。

最後圈子除了同學一組列出來的基本正確之外,其他的基本都是錯的。。。。

敗給我了吧


QQ的備註和分組都應該屬於個人隱私,企鵝如果用備註和分組的名稱等來做匹配演算法是不是就明擺著打臉了?

公正的說 匹配很精準 對於關係網的擴展作用很大

但是缺點是過於企業理念已經定型 如果是注重隱私的做法應該默認關閉圈子功能 默認開啟的話無異於強奸。不過對企鵝,在保護隱私方面我就不抱希望了,希望他們知道這是錯誤的,只是無賴慣了...


要想做小白鼠,就公開你的一切吧,給騰訊做試驗品,其實QQ經過這麼多年的積累,很多個人隱私,但都已經被綁在QQ上了,騰訊掌握了幾億人的隱私呵。


無論如何,我對自己的QQ分組跟備註被利用很不爽


人人也可以看到好友的「好友列表」。所以qq可能會覺得委屈:我不過是主動了點。

問題有兩點:1.QQ比人人更有私密性。親戚、朋友、同事、炮友都在上面,而且積累了很久,就這麼公布出去,一般人(社交狂除外)接受不了。2.主動和被動意義完全不同,本來我不會有那個閑心去把人人上好友的列表全看一遍,除非我很關心某人或心理變態。而QQ不僅主動地替你做了這件變態的事,而且做的更好:分門別類,甚至連備註都挖出來了(thanks 2 the innovative technology)。

個人覺得圈子這個想法看似人文,其實很工程師,完全沒考慮用戶的感受。


補充 @走X人圭 的,加多一個QQ群。所以可能是 QQ分組+備註+QQ群+朋友網。

官方說法:QQ圈子會嚴格保護您的隱私安全,QQ圈子是基於QQ好友關係、分組名、備註名,通過聚合分類數學演算法進行人脈推薦。這是社交網路類產品進行人脈推薦所採用的技術,不會涉及任何用戶的聊天內容、歷史操作等個人信息。

更多詳見http://im.qq.com/quan/index.html


貝葉斯演算法


騰訊侵犯隱私好像是早就有的事了。 不過公正地說圈子對我的分組還是很準確的,連爸爸家的親戚和媽媽家的親戚都分開了……


...

「找朋友」演算法只使用了QQ號碼之間是否為好友這一最簡單而直接的數據

...

感覺應該是以QQ群、各種騰訊遊戲群為基礎來做的,要不然那麼大的用戶量,算每兩個人的關係豈不悲催。還有兩個人之間聊天的頻率、一個人在某個群中的活躍程度。


A和B是好友,且A在B的同學組,A和C是好友,且A在C的同學組,則B將出現在C的同學圈


很明顯,是基於分組和備註!演算法應該不複雜。

通過「圈裡的好友大多叫我~~」可以看出,絕對是用了備註。


感覺和圖論中的connectivity有關哈,不知道multiscale的演算法會不會更精確一些


推薦閱讀:

用戶為什麼放棄了博客?
為什麼現在很多產品都開始提出用「列表」的方式來重構內容?
現在還在用人人網是怎麼樣一種體驗?
如何評價網易旗下網易BoBo推出手機直播產品?
直播形式越來越多樣化,但是看網路直播的到底能獲得什麼,有意義嗎?

TAG:騰訊 | 演算法 | 社交產品 | 推薦演算法 | QQ圈子 |