張翠蓮
摘要:社交網(wǎng)絡(luò)之“熱”讓人們對(duì)它的研究也越來越深入,推薦系統(tǒng)是現(xiàn)今社交網(wǎng)絡(luò)的重要組成部分,通過網(wǎng)站推薦操作也能夠更好地提高商業(yè)效益,因此也成為人們研究社交網(wǎng)絡(luò)的重點(diǎn)。而推薦系統(tǒng)作為一種應(yīng)用程序,程序的完成都需要有推薦算法作支撐。該文詳細(xì)介紹各類有關(guān)的推薦算法,其主要目的是為了能夠?qū)ι缃痪W(wǎng)絡(luò)推薦系統(tǒng)的推薦機(jī)制有更加深入的認(rèn)識(shí),并能夠掌握和應(yīng)用其中的一些推薦算法。
論文從對(duì)社交網(wǎng)絡(luò)的介紹開始,通過詳細(xì)對(duì)各個(gè)算法闡述,能夠?qū)ι缃痪W(wǎng)絡(luò)的推薦機(jī)制有更好的理解。
關(guān)鍵詞:社交網(wǎng)絡(luò);推薦算法;數(shù)據(jù)挖掘
中圖分類號(hào):TP393 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2016)27-0250-03
1 社交網(wǎng)絡(luò)現(xiàn)狀
網(wǎng)絡(luò)作為21世紀(jì)人們互動(dòng)的平臺(tái),給予人類另外一個(gè)包含大量資源的世界。人們可以方便快捷地獲取所要的資源。 早期的社交網(wǎng)絡(luò),主要是指web1.0的社區(qū),主要是由論壇,聊天室等形式組成,這一時(shí)期的社交網(wǎng)絡(luò)系統(tǒng)單一,規(guī)模也不大。出現(xiàn)web2.0社區(qū)之后,逐漸出現(xiàn)了社交網(wǎng)站,社交網(wǎng)站擁有web2.0的特點(diǎn),并且希望能夠?yàn)橛脩籼峁┮环N類似真是社會(huì)交流的網(wǎng)絡(luò)服務(wù)平臺(tái)。
社交網(wǎng)絡(luò)如今已經(jīng)擁有著成千上百萬個(gè)用戶,并且占據(jù)著一些用戶生活的不小的一部分。 在美國Facebook被很多民眾使用,在日本,Mixi被人們熟知,在中國,新浪微博,騰訊qq, 微信等幾乎被所有網(wǎng)民知曉。
社交網(wǎng)絡(luò)使得網(wǎng)絡(luò)與人的關(guān)系更加緊密,但同時(shí)也產(chǎn)生了大量的數(shù)據(jù),這些數(shù)據(jù)的產(chǎn)生不僅給互聯(lián)網(wǎng)公司造成了煩惱,更使得用戶面對(duì)海量的數(shù)據(jù)信息不知作何選擇?,F(xiàn)今的社交網(wǎng)絡(luò),通過分析用戶的行為為用戶選擇他們所感興趣的資源,從而有效地保持網(wǎng)站用戶量并且獲得更多的用戶,能夠促進(jìn)產(chǎn)品的開發(fā)以及企業(yè)更好的運(yùn)營,讓公司更好的發(fā)展。因此我們需要一種或多種有效的推薦算法來更好地更為準(zhǔn)確地達(dá)到這種效果。
2 社交網(wǎng)絡(luò)推薦系統(tǒng)概念
2.1 社交網(wǎng)絡(luò)
SNS是social network service的縮寫,翻譯為社會(huì)性網(wǎng)絡(luò)服務(wù),是為了幫助人們建立一種全球化社會(huì)化的網(wǎng)絡(luò)服務(wù),SNS網(wǎng)站就是運(yùn)用這一社會(huì)性網(wǎng)絡(luò)服務(wù)的社交網(wǎng)站。社交網(wǎng)絡(luò)即social network就是由這類網(wǎng)站建立起來的網(wǎng)絡(luò)。
2003年,在線社交網(wǎng)絡(luò)首次被提出,但是2006年才開始出現(xiàn)SNS比較完整的定義。
社交網(wǎng)絡(luò)的核心在于用戶之間的聯(lián)系,其理論主要源于“六度分隔理論”。
該理論闡述,任何兩個(gè)陌生人之間可以通過六個(gè)人就可以有所聯(lián)系,通過這一理論,任何人的社交網(wǎng)絡(luò)圈子都會(huì)繼續(xù)擴(kuò)張,形成一個(gè)關(guān)聯(lián)全部人員的“社會(huì)化網(wǎng)絡(luò)”。
2.2 推薦系統(tǒng)
推薦系統(tǒng)最初的研究是在其他領(lǐng)域中,例如認(rèn)知科學(xué),信息檢索等。由于互聯(lián)網(wǎng)以及電子商務(wù)的快速發(fā)展,推薦系統(tǒng)逐漸成為互聯(lián)網(wǎng)領(lǐng)域中的重要研究對(duì)象。
推薦系統(tǒng)是利用一些可行的推薦方法向用戶推薦候選對(duì)象的一種系統(tǒng)。用戶可以主動(dòng)向推薦系統(tǒng)提供他們的偏好或者請(qǐng)求,或者通過推薦系統(tǒng)來發(fā)現(xiàn)用戶的隱式需求,由推薦系統(tǒng)來采集用戶的偏好,然后將推薦信息給用戶使用。推薦系統(tǒng)的模型圖如圖1所示:
推薦系統(tǒng)形式定義為:設(shè)S是所有要研究的用戶對(duì)象集合,C是所有能夠被推薦給該用戶的那些對(duì)象的集合。C中的特定對(duì)象c相對(duì)于用戶s的推薦度大小我們用函數(shù)f()表示,其中f:S*C→R,R是一定范圍中的非負(fù)數(shù),那么我們的推薦問題就是尋找能夠使得R最大的對(duì)象,如式(1):
推薦系統(tǒng)中偏好獲取的方式有如下兩點(diǎn):
顯式獲取:
通過網(wǎng)絡(luò)中的問卷調(diào)查等相關(guān)反饋,讓用戶選取自己的喜好對(duì)象,從調(diào)研中發(fā)現(xiàn)用戶的偏好行為。然而這一獲取方式并非十分有效,因?yàn)榇蠖鄶?shù)用戶會(huì)由于各種原因而不會(huì)積極參與到調(diào)研之中,從而使得數(shù)據(jù)的準(zhǔn)確性收到干擾。顯示獲取中主要要求用戶對(duì)各種對(duì)象進(jìn)行評(píng)分或評(píng)論,最好能夠提出自己的建議。
隱式獲?。?/p>
隱式獲取不需要用戶的主動(dòng)參與,通過用戶以往的行為來判斷用戶將來可能的操作,這一獲取方式能夠更好地得出結(jié)果,一般來說,隱式獲取主要研究用戶的瀏覽記錄或者反復(fù)性的行為操作等。本研究中將用到的獲取用戶偏好的方法就是隱式獲取的方式。
3 推薦系統(tǒng)算法
推薦系統(tǒng)算法,即通過分析已有對(duì)象的行為或者屬性,利用一些數(shù)學(xué)上的算法來得出更可能滿足該對(duì)象需求或者與該對(duì)象更加相似的對(duì)象。 此類算法很多,不同的算法分析多種多樣,得到的結(jié)果也不盡相同,以下簡單介紹一些相關(guān)的算法。
3.1 協(xié)同過濾算法
協(xié)同過濾算法被人們研究的比較深入,此算法也經(jīng)常被應(yīng)用到推薦系統(tǒng)中,協(xié)同過濾算法通過分析用戶興趣,在用戶中找到與目標(biāo)用戶有相似興趣的用戶,通過這些用戶對(duì)某一信息的相似評(píng)價(jià)來達(dá)到對(duì)這一信息的預(yù)測。此類算法可以細(xì)分為以下幾種:
3.1.1 基于用戶相似算法(user similarity)
基于用戶相似算法的目的是為了通過對(duì)很多其他用戶的喜好進(jìn)行搜集評(píng)價(jià)來對(duì)某些用戶自動(dòng)進(jìn)行預(yù)測。尤其是通過對(duì)那些與目標(biāo)用戶相似性程度高的用戶進(jìn)行喜好搜集。
用表示用戶u對(duì)某一屬性a的評(píng)分,并且讓表示用戶u屬性的集合,那么對(duì)于用戶u給屬性a的平均評(píng)分為:
根據(jù)協(xié)同過濾,預(yù)測用戶u對(duì)屬性a的評(píng)分r為:
其中表示最相似于用戶u的用戶集合,表示用戶u和用戶v之間的相似度,是一個(gè)正態(tài)因子。如果只知道一些個(gè)體用戶的屬性集合,這時(shí)候我們不是明確的評(píng)估,而是主要預(yù)測將來最可能被用戶偏好的屬性集合。這樣一來,上式可由式(4)替代:
其中表示用戶u的屬性a的推薦分?jǐn)?shù),是用戶屬性的二分網(wǎng)絡(luò)的一個(gè)鄰接矩陣的一元(如果用戶v搜集了屬性a,=1,否則=0)。
上述式子中,只有與用戶u最相似的用戶才會(huì)被考慮在內(nèi)。為了保證,鄰居選擇策略經(jīng)常被應(yīng)用在:1) 相關(guān)閾值,它基于選擇所有用戶v,他們的相似度suv超過一個(gè)給定的閾值;2) 矩陣中最大化數(shù)目的鄰居包括選擇k個(gè)最相似于用戶u的用戶,這里k是算法的一個(gè)參數(shù)。這種選擇最接近用戶的計(jì)算通常會(huì)導(dǎo)致更好的結(jié)果。
3.1.2 基于項(xiàng)相似算法(item similarity)
這里我們暫且把項(xiàng)理解為屬性,我們用屬性-屬性相似度替代用戶-用戶相似度,最簡單的方式就是用平均加權(quán)的方式估算未知的排序優(yōu)先權(quán):
其中T是被用戶u評(píng)估的屬性的集合。
這個(gè)算法的一個(gè)優(yōu)點(diǎn)就是其屬性之間的相似度相比于用戶之間更加趨與靜態(tài)化,這樣就允許它們之間的值可以在線下的時(shí)候也能夠用于計(jì)算。
3.1.3 slope-one算法
slope-one 算法最簡單的表達(dá)式為,其中b是一個(gè)常量,x是變量表示評(píng)分。它除去屬性的平均評(píng)分,然后比較一個(gè)屬性(item)比另外一個(gè)屬性的相似度多多少。例如,考慮一種情況,當(dāng)用戶i給屬性 a評(píng)分為1,給屬性b分?jǐn)?shù)為1.5,而用戶j給屬性a 2分。slope-one算法就預(yù)測用戶j將對(duì)屬性b評(píng)分分為2+(1.5-1)=2.5。
slope-one算法既考慮其他用戶對(duì)同一屬性的評(píng)價(jià)相關(guān)信息,也考慮了此用戶對(duì)其他屬性的評(píng)價(jià)。特殊情況下,只有已經(jīng)評(píng)價(jià)了那些與目標(biāo)用戶相同的屬性的用戶以及目標(biāo)用戶已經(jīng)進(jìn)行了評(píng)估的屬性是我們包含在我們要預(yù)測所要用到的過程中的。用W(a,b)表示那些已經(jīng)對(duì)屬性a和b進(jìn)行評(píng)估的用戶集合,屬性b與a之間的平均偏差表示為:
給定一個(gè)一直的評(píng)級(jí)r,slope-one預(yù)測u在屬性b上的評(píng)估為,一個(gè)合理的整體預(yù)測就是他們的平均值:
其中S是已經(jīng)被u評(píng)價(jià)過的并且和屬性b同時(shí)被評(píng)價(jià)的屬性的集合。要注意預(yù)測時(shí)候,不管此時(shí)有多少用戶同時(shí)評(píng)價(jià)過a和b,要保證不同的屬性a都有相同的加權(quán)??紤]到的可信度依賴于|W(a,b)|,我們可以引進(jìn)一個(gè)加權(quán)過得slope-one算法:
另外一個(gè)對(duì)基礎(chǔ)slope-one算法的改進(jìn)的方法是通過一個(gè)給定用戶將所有屬性的集合分割為偏好屬性和非偏好屬性兩個(gè)集合。從這些偏好屬性和非偏好屬性中,兩個(gè)分開的預(yù)測相結(jié)合而派生出一個(gè)最終的預(yù)測。用和分別表示用戶的偏好屬性和非偏好屬性,我們先認(rèn)為這兩個(gè)集合中都有屬性a,b。那么偏好屬性與非偏好屬性之間的偏差為:
那么基于屬性a的評(píng)分而對(duì)屬性b上的預(yù)測是或是,具體選擇取決于目標(biāo)用戶是否偏好屬性a,那么我們就有二維slope-one算法:
公式中的加權(quán)的選擇與上一slope-one類似。
以上論述也表明了,slope-one算法可以超越線性回歸的方式(比如評(píng)估表達(dá)式為f(x)=ax+b)并且計(jì)算所有變量的一半。這種簡單的接近預(yù)測同樣也減少了我們的存儲(chǔ)空間以及我們運(yùn)算的復(fù)雜度。slope-one算法已經(jīng)成為一種其他算法改進(jìn)的借鑒,能夠更好地提高預(yù)測準(zhǔn)確度。
3.2 聚類
聚類算法通過一定的評(píng)分方式將用戶聚類,然后對(duì)每個(gè)類進(jìn)行進(jìn)一步分析計(jì)算。通過相似度進(jìn)行聚類的算法最為常見。聚類算法的用途很廣泛,比如商業(yè)上,可以利用不同的聚類方法將消費(fèi)者劃分為不同的消費(fèi)群體,從而更加能夠了解到消費(fèi)者的行為模式,幫助商家更好地盈利。
3.3 基于內(nèi)容的推薦
這類算法主要用于信息檢索方面,通過用戶已有的搜索記錄來預(yù)知用戶即將可能瀏覽的頁面?;趦?nèi)容的推薦,主要注重文本的相似度,比如網(wǎng)絡(luò)中大部分搜索引擎就是根據(jù)這一算法搜索到頁面。
基于內(nèi)容的推薦算法,簡單來講就是通過用戶a對(duì)某一物品s1的評(píng)價(jià)u(a,s1)來估計(jì)該用戶對(duì)于某一與s1相似的物品s2的評(píng)價(jià)u(a,s2)。例如,在網(wǎng)站推薦中,我們目的是要推薦某一網(wǎng)站給用戶a,那么基于內(nèi)容的推薦算法就試圖在該用戶對(duì)以往網(wǎng)站評(píng)價(jià)高的網(wǎng)站中分析出它們的相同之處(比如某些類似的應(yīng)用,網(wǎng)站頁面設(shè)計(jì)等)。那些和該用戶偏好相同的網(wǎng)站將被推薦給該用戶。
更加形式化說明該算法,假定cons(a)表示物品a的一系列特征,這些特征可以用來確定該物品是否能夠得到推薦。前面已經(jīng)講到,基于內(nèi)容的推薦算法經(jīng)常運(yùn)用在信息檢索也就是文本查詢方面。設(shè)詞在文檔中的權(quán)重為,這一權(quán)重可以有多種定義方法。
信息檢索里,一個(gè)比較常用的用來確定詞語權(quán)重的指標(biāo)為TF-IDF。TF-IDF定義為:設(shè)n是可以被推薦的文檔的總和,詞在文檔中出現(xiàn)的次數(shù)為。則有在文檔中的詞頻為:
其中是所有關(guān)鍵詞出現(xiàn)在中的最大值。
同時(shí)有在該文檔中的倒文檔頻率定義為:
在文檔中的TF-IDF的權(quán)重為:
文檔內(nèi)容為:
用liked(c)表示包含用戶偏好的集合??梢远x它為向量,每一個(gè)表示對(duì)用戶c的重要程度。
在基于內(nèi)容的推薦算法中,定義效用函數(shù)u(c,s)為:
3.4 其他推薦算法
當(dāng)然還有其他各種類型的推薦算法,或者各種算法相組合而得到的算法。這些推薦算法的研究,讓我們對(duì)推薦系統(tǒng)更為深入地了解。不同的研究論題,可能只有以上一種或者幾種算法才合適,在我們進(jìn)行研究的時(shí)候要尤其注意算法的選擇。
4 結(jié)束語
經(jīng)過近幾年互聯(lián)網(wǎng)的發(fā)展積累,社交網(wǎng)絡(luò)逐漸成為互聯(lián)網(wǎng)的主要應(yīng)用之一。社交網(wǎng)絡(luò)的各個(gè)功能也在逐漸完善化,細(xì)分化,社交網(wǎng)絡(luò)也逐漸成為新聞傳播的重要方式,讓人們在其中進(jìn)行即時(shí)的互動(dòng),通過調(diào)查發(fā)現(xiàn),越來越多的用戶傾向于從社交網(wǎng)站中掌握新聞動(dòng)態(tài)。
推薦系統(tǒng)作為社交網(wǎng)絡(luò)的重要組成部分,至今為止,對(duì)它的研究還沒有特別深入,還有很多可以挖掘的地方,比如推薦算法的選擇與改進(jìn),研究時(shí)候?qū)τ跀?shù)據(jù)集合的選取與分析等等。從閱讀過的多篇文獻(xiàn)中發(fā)現(xiàn),推薦算法已經(jīng)有不少人在研究而且得到有效的運(yùn)用,這便給我們研究社交網(wǎng)絡(luò)推薦系統(tǒng)的推薦算法提供了很好的理論基礎(chǔ)。相信今后會(huì)有更多有關(guān)社交網(wǎng)絡(luò)推薦系統(tǒng)的新發(fā)現(xiàn),我們拭目以待。
參考文獻(xiàn):
[1] 丁華俊. SNS發(fā)展探析[J]. 中國證券期貨, 2011(4): 170-171.
[2] 蔣翀, 費(fèi)洪曉. 個(gè)性化推薦系統(tǒng)中的混合用戶偏好獲取[J]. 計(jì)算機(jī)系統(tǒng)應(yīng)用, 2010, 19(10): 203-206.
[3] 吳俊杰, 劉耀軍, 趙月愛. 基于用戶行為的網(wǎng)站推薦系統(tǒng)模型[J]. 山西電子技術(shù), 2011(6): 66-67.
[4] 鄭佳佳. 社交網(wǎng)絡(luò)中基于圖排序的好友推薦機(jī)制研究與實(shí)現(xiàn)[D]. 杭州: 浙江大學(xué), 2011.
[5] 林大瀛. 基于分組聚類的SVM訓(xùn)練算法[D]. 廣東: 華南理工大學(xué), 2003.