新用戶(hù)登錄后自動(dòng)創(chuàng)建賬號(hào)
登錄同比增長(zhǎng)隨著大數(shù)據(jù)時(shí)代的來(lái)臨,網(wǎng)絡(luò)中的信息量呈現(xiàn)指數(shù)式增長(zhǎng),隨之帶來(lái)了信息過(guò)載問(wèn)題。推薦系統(tǒng)是解決信息過(guò)載最有效的方式之一,大數(shù)據(jù)推薦系統(tǒng)已經(jīng)逐漸成為信息領(lǐng)域的研究熱點(diǎn)。介紹了推薦系統(tǒng)的產(chǎn)生及其在大數(shù)據(jù)時(shí)代的發(fā)展現(xiàn)狀、推薦系統(tǒng)的領(lǐng)域需求和系統(tǒng)架構(gòu)、大數(shù)據(jù)環(huán)境下推薦系統(tǒng)的挑戰(zhàn)及其關(guān)鍵技術(shù)、開(kāi)源的大數(shù)據(jù)推薦軟件、大數(shù)據(jù)推薦系統(tǒng)研究面臨的問(wèn)題,最后探討了大數(shù)據(jù)推薦系統(tǒng)的未來(lái)發(fā)展趨勢(shì)。
1 推薦系統(tǒng)與網(wǎng)絡(luò)大數(shù)據(jù)
隨著科技與信息技術(shù)的迅猛發(fā)展,社會(huì)進(jìn)入了一個(gè)全新的高度信息化的時(shí)代,互聯(lián)網(wǎng)無(wú)處不在,影響了人類(lèi)生活的方方面面,并徹底改變了人們的生活方式。尤其是進(jìn)入Web 2.0時(shí)代以來(lái),隨著社會(huì)化網(wǎng)絡(luò)媒體的異軍突起,互聯(lián)網(wǎng)用戶(hù)既是網(wǎng)絡(luò)信息的消費(fèi)者,也是網(wǎng)絡(luò)內(nèi)容的生產(chǎn)者,互聯(lián)網(wǎng)中的信息量呈指數(shù)級(jí)增長(zhǎng)。由于用戶(hù)的辨別能力有限,在面對(duì)龐大且復(fù)雜的互聯(lián)網(wǎng)信息時(shí)往往感到無(wú)從下手,使得在互聯(lián)網(wǎng)中找尋有用信息的成本巨大,產(chǎn)生了所謂的“信息過(guò)載”問(wèn)題。
搜索引擎和推薦系統(tǒng)的產(chǎn)生為解決“信息過(guò)載”問(wèn)題提供了非常重要的技術(shù)手段。對(duì)于搜索引擎來(lái)說(shuō),用戶(hù)在搜索互聯(lián)網(wǎng)中的信息時(shí),需要在搜索引擎中輸入“查詢(xún)關(guān)鍵詞”,搜索引擎根據(jù)用戶(hù)的輸入,在系統(tǒng)后臺(tái)進(jìn)行信息匹配,將與用戶(hù)查詢(xún)相關(guān)的信息展示給用戶(hù)。但是,如果用戶(hù)無(wú)法想到準(zhǔn)確描述自己需求的關(guān)鍵詞,此時(shí)搜索引擎就無(wú)能為力了。和搜索引擎不同,推薦系統(tǒng)不需要用戶(hù)提供明確的需求,而是通過(guò)分析用戶(hù)的歷史行為來(lái)對(duì)用戶(hù)的興趣進(jìn)行建模,從而主動(dòng)給用戶(hù)推薦可能滿(mǎn)足他們興趣和需求的信息。因此,搜索引擎和推薦系統(tǒng)對(duì)用戶(hù)來(lái)說(shuō)是兩個(gè)互補(bǔ)的工具,前者是主動(dòng)的,而后者是被動(dòng)的。
近幾年,電子商務(wù)蓬勃發(fā)展,推薦系統(tǒng)在互聯(lián)網(wǎng)中的優(yōu)勢(shì)地位也越來(lái)越明顯。在國(guó)際方面,比較著名的電子商務(wù)網(wǎng)站有Amazon和eBay,其中Amazon平臺(tái)中采用的推薦算法被認(rèn)為是非常成功的。在國(guó)內(nèi),比較大型的電子商務(wù)平臺(tái)網(wǎng)站有淘寶網(wǎng)(包括天貓商城)、京東商城、當(dāng)當(dāng)網(wǎng)、蘇寧易購(gòu)等。在這些電子商務(wù)平臺(tái)中,網(wǎng)站提供的商品數(shù)量不計(jì)其數(shù),網(wǎng)站中的用戶(hù)規(guī)模也非常巨大。據(jù)不完全統(tǒng)計(jì),天貓商城中的商品數(shù)量已經(jīng)超過(guò)了4 000萬(wàn)。在如此龐大的電商網(wǎng)站中,用戶(hù)根據(jù)自己的購(gòu)買(mǎi)意圖輸入關(guān)鍵字查詢(xún)后,會(huì)得到很多相似的結(jié)果,用戶(hù)在這些結(jié)果中也很難區(qū)分異同,用戶(hù)也難于選擇合適的物品。于是,推薦系統(tǒng)作為能夠根據(jù)用戶(hù)興趣為用戶(hù)推薦一些用戶(hù)感興趣的商品,從而為用戶(hù)在購(gòu)物的選擇中提供建議的需求非常明顯。目前比較成功的電子商務(wù)網(wǎng)站中,都不同程度地利用推薦系統(tǒng)在用戶(hù)購(gòu)物的同時(shí),為用戶(hù)推薦一些商品,從而提高網(wǎng)站的銷(xiāo)售額。
另一方面,智能手機(jī)的發(fā)展推動(dòng)了移動(dòng)互聯(lián)網(wǎng)的發(fā)展。在用戶(hù)使用移動(dòng)互聯(lián)網(wǎng)的過(guò)程中,其所處的地理位置等信息可以非常準(zhǔn)確地被獲取?;诖?,國(guó)內(nèi)外出現(xiàn)了大量的基于用戶(hù)位置信息的網(wǎng)站。國(guó)外比較著名的有Meetup和Flickr。國(guó)內(nèi)著名的有豆瓣網(wǎng)和大眾點(diǎn)評(píng)網(wǎng)。例如,在大眾點(diǎn)評(píng)這種基于位置服務(wù)的網(wǎng)站中,用戶(hù)可以根據(jù)自己的當(dāng)前位置搜索餐館、酒店、影院、旅游景點(diǎn)等信息服務(wù)。同時(shí),可以對(duì)當(dāng)前位置下的各類(lèi)信息進(jìn)行點(diǎn)評(píng),為自己在現(xiàn)實(shí)世界中的體驗(yàn)打分,分享自己的經(jīng)驗(yàn)與感受。當(dāng)用戶(hù)使用這類(lèi)基于位置的網(wǎng)站服務(wù)時(shí),同樣會(huì)遭遇“信息過(guò)載”問(wèn)題。推薦系統(tǒng)可以根據(jù)用戶(hù)的位置信息為用戶(hù)推薦當(dāng)前位置下用戶(hù)感興趣的內(nèi)容,為用戶(hù)提供符合其真正需要的內(nèi)容,提升用戶(hù)對(duì)網(wǎng)站的滿(mǎn)意度。
隨著社交網(wǎng)絡(luò)的興起,用戶(hù)在互聯(lián)網(wǎng)中的行為不再限于獲取信息,更多的是與網(wǎng)絡(luò)上的其他用戶(hù)進(jìn)行互動(dòng)。國(guó)外著名的社交網(wǎng)絡(luò)有Facebook、 LinkedIn、 Twitter等,國(guó)內(nèi)的社交網(wǎng)絡(luò)有新浪微博、人人網(wǎng)、騰訊微博等。在社交網(wǎng)站中,用戶(hù)不再是單個(gè)的個(gè)體,而是與網(wǎng)絡(luò)中的很多人具有了錯(cuò)綜復(fù)雜的關(guān)系。社交網(wǎng)絡(luò)中最重要的資源就是用戶(hù)與用戶(hù)之間的這種關(guān)系數(shù)據(jù)。在社交網(wǎng)絡(luò)中,用戶(hù)間的關(guān)系是不同的,建立關(guān)系的因素可能是現(xiàn)實(shí)世界中的親人、同學(xué)、同事、朋友關(guān)系,也可能是網(wǎng)絡(luò)中的虛擬朋友,比如都是有著共同愛(ài)好的社交網(wǎng)絡(luò)成員。在社交網(wǎng)絡(luò)中,用戶(hù)與用戶(hù)之間的聯(lián)系反映了用戶(hù)之間的信任關(guān)系,用戶(hù)不單單是一個(gè)個(gè)體,用戶(hù)在社交網(wǎng)絡(luò)中的行為或多或少地會(huì)受到這些用戶(hù)關(guān)系的影響。因此,推薦系統(tǒng)在這類(lèi)社交網(wǎng)站中的研究與應(yīng)用,應(yīng)該考慮用戶(hù)社交關(guān)系的影響。
2 推薦系統(tǒng)的產(chǎn)生與發(fā)展
“推薦系統(tǒng)”這個(gè)概念是1995年在美國(guó)人工智能協(xié)會(huì)(AAAI)上提出的。當(dāng)時(shí)CMU大學(xué)的教授Robert Armstrong提出了這個(gè)概念,并推出了推薦系統(tǒng)的原型系統(tǒng)——Web Watcher。在同一個(gè)會(huì)議上,美國(guó)斯坦福大學(xué)的Marko Balabanovic等人推出了個(gè)性化推薦系統(tǒng)LIRA1。隨后推薦系統(tǒng)的研究工作開(kāi)始慢慢壯大。1996年, Yahoo網(wǎng)站推出了個(gè)性化入口MyYahoo,可以看作第一個(gè)正式商用的推薦系統(tǒng)。21世紀(jì)以來(lái),推薦系統(tǒng)的研究與應(yīng)用隨著電子商務(wù)的快速發(fā)展而異軍突起,各大電子商務(wù)網(wǎng)站都部署了推薦系統(tǒng),其中Amazon網(wǎng)站的推薦系統(tǒng)比較著名。有報(bào)告稱(chēng), Amazon網(wǎng)站中35%的營(yíng)業(yè)額來(lái)自于自身的推薦系統(tǒng)。2006年,美國(guó)的DVD租賃公司Netflix在網(wǎng)上公開(kāi)設(shè)立了一個(gè)推薦算法競(jìng)賽——Netflix Prize。 Netflix公開(kāi)了真實(shí)網(wǎng)站中的一部分?jǐn)?shù)據(jù),包含用戶(hù)對(duì)電影的評(píng)分[2]。Netflix競(jìng)賽有效地推動(dòng)了學(xué)術(shù)界和產(chǎn)業(yè)界對(duì)推薦算法的研究,期間提出了很多有效的算法。近幾年,隨著社會(huì)化網(wǎng)絡(luò)的發(fā)展,推薦系統(tǒng)在工業(yè)界廣泛應(yīng)用并且取得了顯著進(jìn)步。比較著名的推薦系統(tǒng)應(yīng)用有:Amazon和淘寶網(wǎng)的電子商務(wù)推薦系統(tǒng)、Netflix和MovieLens的電影推薦系統(tǒng)、Youtube的視頻推薦系統(tǒng)、豆瓣和Last.fm的音樂(lè)推薦系統(tǒng)、Google的新聞推薦系統(tǒng)以及Facebook和Twitter的好友推薦系統(tǒng)。
推薦系統(tǒng)誕生后,學(xué)術(shù)界對(duì)其關(guān)注也越來(lái)越多。從1999年開(kāi)始,美國(guó)計(jì)算機(jī)學(xué)會(huì)每年召開(kāi)電子商務(wù)研討會(huì)(ACM Conference on Electronic Commerce,ACM EC),越來(lái)越多的與推薦系統(tǒng)相關(guān)的論文發(fā)表在ACM EC上。ACM信息檢索專(zhuān)業(yè)組(ACM Special Interest Group of Information Retrieval, ACM SIGIR)在2001年開(kāi)始把推薦系統(tǒng)作為該會(huì)議的一個(gè)獨(dú)立研究主題。同年召開(kāi)的人工智能聯(lián)合大會(huì)(The 17th International Joint Conference on Artificial Intelligence)也將推薦系統(tǒng)作為一個(gè)單獨(dú)的主題。最近的10年間,學(xué)術(shù)界對(duì)推薦系統(tǒng)越來(lái)越重視。目前為止,數(shù)據(jù)庫(kù)、數(shù)據(jù)挖掘、人工智能、機(jī)器學(xué)習(xí)方面的重要國(guó)際會(huì)議(如SIGMOD、VLDB、ICDE、KDD、AAAI、SIGIR、ICDM、WWW、ICML等)都有大量與推薦系統(tǒng)相關(guān)的研究成果發(fā)表。同時(shí),第一個(gè)以推薦系統(tǒng)命名的國(guó)際會(huì)議ACM Recommender Systems Conference(ACM RecSys)于2007年首次舉辦。在近幾年的數(shù)據(jù)挖掘及知識(shí)發(fā)現(xiàn)國(guó)際會(huì)議(KDD)舉辦的KDD CUP競(jìng)賽中,連續(xù)兩年的競(jìng)賽主題都是推薦系統(tǒng)。在KDD CUP 2011年的競(jìng)賽中,兩個(gè)競(jìng)賽題目分別為“音樂(lè)評(píng)分預(yù)測(cè)”和“識(shí)別音樂(lè)是否被用戶(hù)評(píng)分”。在KDD CUP 2012年的競(jìng)賽中,兩個(gè)競(jìng)賽題目分別為“騰訊微博中的好友推薦”和“計(jì)算廣告中的點(diǎn)擊率預(yù)測(cè)”。
3 推薦系統(tǒng)的領(lǐng)域需求和系統(tǒng)架構(gòu)
如上所述,推薦系統(tǒng)在很多領(lǐng)域得到了廣泛的應(yīng)用,如新聞推薦、微博推薦、圖書(shū)推薦、電影推薦、產(chǎn)品推薦、音樂(lè)推薦、餐館推薦、視頻推薦等。不同領(lǐng)域的推薦系統(tǒng)具有不同的數(shù)據(jù)稀疏性,對(duì)推薦系統(tǒng)的可擴(kuò)展性以及推薦結(jié)果的相關(guān)性、流行性、新鮮性、多樣性和新穎性具有不同的需求。不同領(lǐng)域推薦系統(tǒng)的需求對(duì)比見(jiàn)表1。
盡管需求不盡相同,一個(gè)完整的推薦系統(tǒng)通常都包括數(shù)據(jù)建模、用戶(hù)建模、推薦引擎和用戶(hù)接口4個(gè)部分,如圖1所示。數(shù)據(jù)建模模塊負(fù)責(zé)對(duì)擬推薦的物品數(shù)據(jù)進(jìn)行準(zhǔn)備,將其表示成有利于分析的數(shù)據(jù)形式,確定要推薦給用戶(hù)的候選物品,并對(duì)物品進(jìn)行分類(lèi)、聚類(lèi)等預(yù)處理。用戶(hù)建模模塊負(fù)責(zé)對(duì)用戶(hù)的行為信息進(jìn)行分析,從而獲得用戶(hù)的潛在喜好。用戶(hù)的行為信息包括問(wèn)答、評(píng)分、購(gòu)買(mǎi)、下載、瀏覽、收藏、停留時(shí)間等。推薦引擎模塊利用后臺(tái)的推薦算法,實(shí)時(shí)地從候選物品集合中篩選出用戶(hù)感興趣的物品,排序后以列表的形式向用戶(hù)推薦。推薦引擎是推薦系統(tǒng)的核心部分,也是最耗系統(tǒng)資源和時(shí)間的部分。用戶(hù)接口模塊承擔(dān)展示推薦結(jié)果、收集用戶(hù)反饋等功能。用戶(hù)接口除了應(yīng)具有布局合理、界面美觀、使用方便等基本要求外,還應(yīng)有助于用戶(hù)主動(dòng)提供反饋。主要有兩種類(lèi)型的接口:Web端(Web-based)和移動(dòng)端(mobile-based)。受篇幅限制,僅對(duì)用戶(hù)建模和推薦引擎這兩個(gè)重要模塊進(jìn)行詳細(xì)介紹。
3.1 用戶(hù)建模
用戶(hù)模型反映用戶(hù)的興趣偏好。用戶(hù)興趣的反饋可分為顯性反饋和隱性反饋。顯性反饋包含兩種方式:用戶(hù)定制和用戶(hù)評(píng)分。用戶(hù)定制是指用戶(hù)對(duì)系統(tǒng)所列問(wèn)題的回答,如年齡、性別、職業(yè)等。評(píng)分又分為兩級(jí)評(píng)分和多級(jí)評(píng)分。例如,在YahooNews中采用兩級(jí)評(píng)分:喜歡(more like this)和不喜歡(less like this)。多級(jí)評(píng)分可以更詳細(xì)地描述對(duì)某個(gè)產(chǎn)品的喜歡程度,如GroupLens中用戶(hù)對(duì)新聞的喜好程度可評(píng)價(jià)為1~5分。 News Dude支持用戶(hù)的4級(jí)反饋:感興趣、不感興趣、已知道、想了解更多,然后進(jìn)行歸一化處理。
很多時(shí)候用戶(hù)不能夠準(zhǔn)確地提供個(gè)人偏好或者不愿意顯性提供個(gè)人偏好,更不愿意經(jīng)常維護(hù)個(gè)人的偏好。所以,隱性反饋往往能夠正確地體現(xiàn)用戶(hù)的偏好以及偏好的變化。常用的隱性反饋信息有:是否點(diǎn)擊、停留時(shí)間、點(diǎn)擊時(shí)間、點(diǎn)擊地點(diǎn)、是否加入收藏、評(píng)論內(nèi)容(可推測(cè)用戶(hù)的心情)、用戶(hù)的搜索內(nèi)容、社交網(wǎng)絡(luò)、流行趨勢(shì)、點(diǎn)擊順序等。在協(xié)同過(guò)濾推薦方法中,常常把用戶(hù)的隱性反饋轉(zhuǎn)化為用戶(hù)對(duì)產(chǎn)品的評(píng)分。例如, Google News中用戶(hù)閱讀過(guò)的新聞?dòng)洖橄矚g,評(píng)分為1;沒(méi)有閱讀過(guò)的評(píng)分為0。Daily Learner系統(tǒng)中用戶(hù)點(diǎn)擊了新聞標(biāo)題評(píng)分為0.8分,閱讀完全文則評(píng)分上升到1分;若用戶(hù)跳過(guò)了系統(tǒng)推薦的新聞,則從系統(tǒng)預(yù)測(cè)評(píng)分中減去0.2分作為最終評(píng)分。
用戶(hù)的興趣可分為長(zhǎng)期興趣和短期興趣。長(zhǎng)期興趣反映用戶(hù)的真實(shí)興趣;短期興趣常與熱點(diǎn)話(huà)題相關(guān)聯(lián)且經(jīng)常改變,從最近的歷史行為中學(xué)習(xí)到的短期興趣模型可快速反映用戶(hù)興趣的變化。常用的模型有向量空間模型、語(yǔ)義網(wǎng)絡(luò)模型、基于分類(lèi)器的模型等。由于用戶(hù)的興趣常受物品本身周期性、熱點(diǎn)事件、突發(fā)事件的影響,變化性很大。所以,需要經(jīng)常更新用戶(hù)模型。
3.2 推薦引擎
推薦引擎的基本推薦方法可分為基于內(nèi)容的推薦和基于協(xié)同過(guò)濾的推薦。
基于內(nèi)容的推薦方法的基本原理是,根據(jù)用戶(hù)以往喜歡的物品,選擇其他類(lèi)似的物品作為推薦結(jié)果[2]。例如,現(xiàn)在有一部新電影與用戶(hù)過(guò)去看過(guò)的某部電影有相同演員或者題材類(lèi)似,則用戶(hù)可能就喜歡這部新電影。通常使用用戶(hù)模型的向量特征來(lái)描述用戶(hù)的興趣愛(ài)好,同樣對(duì)于每個(gè)物品進(jìn)行特征提取,作為物品模型的內(nèi)容特征。然后計(jì)算用戶(hù)模型的向量特征和候選物品模型的向量特征兩者之間的匹配度,匹配度較高的候選物品就可作為推薦結(jié)果推送給目標(biāo)用戶(hù)。
協(xié)同過(guò)濾技術(shù)是由David Goldberg在1992年提出的,是目前個(gè)性化推薦系統(tǒng)中應(yīng)用最為成功和廣泛的技術(shù)。國(guó)外著名的商業(yè)網(wǎng)站Amazon,國(guó)內(nèi)比較著名的豆瓣網(wǎng)、蝦米網(wǎng)等網(wǎng)站,都采用了協(xié)同過(guò)濾的方法。其本質(zhì)是基于關(guān)聯(lián)分析的技術(shù),即利用用戶(hù)所在群體的共同喜好來(lái)向用戶(hù)進(jìn)行推薦。協(xié)同過(guò)濾利用了用戶(hù)的歷史行為(偏好、習(xí)慣等)將用戶(hù)聚類(lèi)成簇,這種推薦通過(guò)計(jì)算相似用戶(hù),假設(shè)被其他相似用戶(hù)喜好的物品當(dāng)前用戶(hù)也感興趣。協(xié)同過(guò)濾的推薦方法通常包括兩個(gè)步驟:根據(jù)用戶(hù)行為數(shù)據(jù)找到和目標(biāo)用戶(hù)興趣相似的用戶(hù)集合(用戶(hù)所在的群體或簇);找到這個(gè)集合中用戶(hù)喜歡的且目標(biāo)用戶(hù)沒(méi)有購(gòu)買(mǎi)過(guò)的物品推薦給目標(biāo)用戶(hù)。
在實(shí)際使用中,協(xié)同過(guò)濾技術(shù)面臨兩大制約:一是數(shù)據(jù)稀疏問(wèn)題,二是冷啟動(dòng)問(wèn)題。協(xié)同過(guò)濾需要利用用戶(hù)和用戶(hù)或者物品與物品之間的關(guān)聯(lián)性進(jìn)行推薦。最流行的基于內(nèi)存的協(xié)同過(guò)濾方法是基于鄰居關(guān)系的方法。該方法首先找出與指定用戶(hù)評(píng)價(jià)歷史相近的該用戶(hù)的鄰居,根據(jù)這些鄰居的行為來(lái)預(yù)測(cè)結(jié)果或者找出與查詢(xún)物品類(lèi)似的物品。這樣做的前提假設(shè)是,如果兩個(gè)用戶(hù)在一組物品上有相似的評(píng)價(jià),那么他們對(duì)其他的物品也將會(huì)有相似的評(píng)價(jià);或者如果兩物品在一組用戶(hù)上有相似的評(píng)價(jià),那么他們對(duì)于其他的用戶(hù)也將會(huì)有相似的評(píng)價(jià)。
協(xié)同過(guò)濾算法的關(guān)鍵是找尋用戶(hù)(物品)的最近鄰居。當(dāng)數(shù)據(jù)稀疏時(shí),用戶(hù)購(gòu)買(mǎi)過(guò)的物品很難重疊,協(xié)同推薦的效果就不好。改進(jìn)辦法之一是,除了直接鄰居之外,間接鄰居的行為也可以對(duì)當(dāng)前用戶(hù)的決策行為構(gòu)成影響。另外一些解決稀疏問(wèn)題的方法是可以添加一些缺省值,人為地將數(shù)據(jù)變得稠密一些,或者采用迭代補(bǔ)全的方法,先補(bǔ)充部分?jǐn)?shù)值,在此基礎(chǔ)上再進(jìn)一步補(bǔ)充其他數(shù)值。此外,還有利用遷移學(xué)習(xí)的方法來(lái)彌補(bǔ)數(shù)據(jù)稀疏的問(wèn)題。但這些方法只能在某種程度上部分解決數(shù)據(jù)稀疏的問(wèn)題,并不能完全克服。在真實(shí)應(yīng)用中,由于數(shù)據(jù)規(guī)模很大,數(shù)據(jù)稀疏的問(wèn)題更加突出。數(shù)據(jù)稀疏性使協(xié)同過(guò)濾方法的有效性受到制約。甄別出與數(shù)據(jù)稀疏程度相匹配的算法,以便能根據(jù)具體應(yīng)用情況做出正確選擇,是非常有價(jià)值的研究課題。常用的協(xié)同過(guò)濾方法有兩類(lèi):基于內(nèi)存的方法和基于模型的方法。前者主要是內(nèi)存算法,通過(guò)用戶(hù)與物品之間的關(guān)系來(lái)導(dǎo)出結(jié)果;后者需要找到一個(gè)合適的參數(shù)化的模型,然后通過(guò)這個(gè)模型來(lái)導(dǎo)出結(jié)果。
基于用戶(hù)的協(xié)同過(guò)濾[4]鑒別出與查詢(xún)用戶(hù)相似的用戶(hù),然后將這些用戶(hù)對(duì)物品評(píng)分的均值作為該用戶(hù)評(píng)分結(jié)果的估計(jì)值。與此類(lèi)似,基于物品的協(xié)同過(guò)濾鑒別出與查詢(xún)物品類(lèi)似的物品,然后將這些物品的評(píng)分均值作為該物品預(yù)測(cè)結(jié)果的估計(jì)值。基于鄰居的方法隨著計(jì)算加權(quán)平均值方法的不同而不同。常用的計(jì)算加權(quán)平均值的算法有皮爾遜系數(shù)、矢量余弦、MSD。
基于模型的方法通過(guò)適合訓(xùn)練集的參數(shù)化模型來(lái)預(yù)測(cè)結(jié)果。它包括基于聚類(lèi)的CF[5~7]、貝葉斯分類(lèi)器[8,9]、基于回歸的方法[10]?;诰垲?lèi)方法的基本思想是將相似的用戶(hù)(或物品)組成聚類(lèi),這種技術(shù)有助于解決數(shù)據(jù)稀疏性和計(jì)算復(fù)雜性問(wèn)題。貝葉斯的基本思想是給定用戶(hù)A其他的評(píng)分和其他用戶(hù)評(píng)分情況下,計(jì)算每個(gè)可能評(píng)分值(比如電影推薦中的1~5分)的條件概率,然后選擇一個(gè)最大概率值的評(píng)分作為預(yù)測(cè)值?;诨貧w方法的基本思想是先利用線(xiàn)性回歸模型學(xué)習(xí)物品之間評(píng)分的關(guān)系,然后根據(jù)這些關(guān)系預(yù)測(cè)用戶(hù)對(duì)物品的評(píng)分。Slop-one算法[13]在評(píng)價(jià)矩陣上使用了線(xiàn)性模型,使之能夠快速計(jì)算出具有相對(duì)較好精確度的結(jié)果。
最近一類(lèi)成功的基于模型的方法是基于低秩矩陣分解的方法。例如,SVD[11]和SVD++[12] 將評(píng)價(jià)矩陣分解為3個(gè)低秩的矩陣,這3個(gè)矩陣的乘積能對(duì)原始矩陣進(jìn)行某種程度的復(fù)原,從而可以評(píng)估出缺失值。另一種方法是非負(fù)矩陣分解[13],其不同之處在于,矩陣分解的結(jié)果不得出現(xiàn)負(fù)值。基于低秩矩陣分解的方法從評(píng)分矩陣中抽取一組潛在的(隱藏的)因子,并通過(guò)這些因子向量描述用戶(hù)和物品。在電影領(lǐng)域,這些自動(dòng)識(shí)別的因子可能對(duì)應(yīng)一部電影的常見(jiàn)標(biāo)簽,比如風(fēng)格或者類(lèi)型(戲劇片或者動(dòng)作片),也可能是無(wú)法解釋的。
矩陣分解能夠?qū)深?lèi)變量進(jìn)行交互關(guān)系的預(yù)測(cè)。 Tensor分解模型則能夠?qū)⑦@種不同類(lèi)變量的交互預(yù)測(cè)擴(kuò)展到更高的維度。然而,如果將因子分解模型應(yīng)用到一個(gè)新的任務(wù),針對(duì)新問(wèn)題往往需要在原有因子分解基礎(chǔ)上推導(dǎo)演化,實(shí)現(xiàn)新的模型和學(xué)習(xí)算法。例如SVD++、 STE、 FPMC、timeSVD++、 BPTF等模型,都是針對(duì)特定問(wèn)題在原有因子分解模型基礎(chǔ)上做的改進(jìn)。因此,普通的因子分解模型具有較差的泛化能力。在模型優(yōu)化學(xué)習(xí)算法方面,雖然對(duì)基本矩陣分解模型的學(xué)習(xí)已經(jīng)有很多算法,如(隨機(jī))梯度下降、交替最小二乘法、變分貝葉斯和MCMC(Markov chain Monto Carlo),但是對(duì)于更多的復(fù)雜分解模型而言,最多且最常用的方法是梯度下降算法。
因子分解機(jī)(factorization machine)是Steffen Rendle于2010年提出的一個(gè)通用的模型[3]。憑借該模型,Rendle在KDD Cup 2012中分別取得Track1第2名和Track2第3名的成績(jī)。與原有的因子分解模型相比,該模型將特征工程的一般性與分解模型的優(yōu)越性融合。它能夠通過(guò)特征工程來(lái)模擬絕大多數(shù)的因子分解模型。LibFM是因子分解機(jī)的開(kāi)源實(shí)現(xiàn),簡(jiǎn)單易用,不需要太多專(zhuān)業(yè)知識(shí),其中包括3類(lèi)優(yōu)化學(xué)習(xí)算法:隨機(jī)梯度下降、交替最小二乘法和MCMC。
這里提到的Tensor分解模型和因子分解機(jī)都屬于上下文感知推薦算法的范疇。上下文感知的推薦算法將二維協(xié)同擴(kuò)展到多維協(xié)同。從學(xué)科淵源來(lái)看,上下文感知推薦系統(tǒng)既是一種推薦系統(tǒng),也是一種上下文感知應(yīng)用系統(tǒng)。Adomavicius和Tuzhilin等人較早指出,把上下文信息融入推薦系統(tǒng)將有利于提高推薦精確度,并提出被廣泛引用的“上下文感知推薦系統(tǒng)(context-aware recommender systems, CARS)”的概念。他們將傳統(tǒng)的“用戶(hù)—項(xiàng)目”二維評(píng)分效用模型擴(kuò)展為包含多種上下文信息的多維評(píng)分效用模型。Sun等人首先將HOSVD的方法用于網(wǎng)頁(yè)搜索,提出了CubeSVD算法[14],算法將用戶(hù)的位置信息作為上下文信息,用于搜索引擎的結(jié)果排序,取得了比較好的結(jié)果。Renle等人提出RTF算法[15],與HOSVD不同, RTF算法根據(jù)用戶(hù)的排序進(jìn)行優(yōu)化,可以獲得比較好的準(zhǔn)確度。
基于內(nèi)容的推薦方法和基于協(xié)同過(guò)濾的推薦方法各有其優(yōu)缺點(diǎn)?,F(xiàn)有的系統(tǒng)大部分是一種混合系統(tǒng),它結(jié)合不同算法和模型的優(yōu)點(diǎn),克服它們的缺點(diǎn),從而得到了較好的推薦準(zhǔn)確度。
4 大數(shù)據(jù)環(huán)境下的推薦系統(tǒng)
4.1 特點(diǎn)與挑戰(zhàn)
雖然推薦系統(tǒng)己經(jīng)被成功運(yùn)用于很多大型系統(tǒng)及網(wǎng)站,但是在當(dāng)前大數(shù)據(jù)的時(shí)代背景下,推薦系統(tǒng)的應(yīng)用場(chǎng)景越來(lái)越多樣,推薦系統(tǒng)不僅面臨數(shù)據(jù)稀疏、冷啟動(dòng)、興趣偏見(jiàn)等傳統(tǒng)難題,還面臨由大數(shù)據(jù)引發(fā)的更多、更復(fù)雜的實(shí)際問(wèn)題。例如,用戶(hù)數(shù)目越來(lái)越多,海量用戶(hù)同時(shí)訪(fǎng)問(wèn)推薦系統(tǒng)所造成的性能壓力,使傳統(tǒng)的基于單節(jié)點(diǎn) LVS 架構(gòu)的推薦系統(tǒng)不再適用。同時(shí)Web 服務(wù)器處理系統(tǒng)請(qǐng)求在大數(shù)據(jù)集下變得越來(lái)越多, Web服務(wù)器響應(yīng)速度緩慢制約了當(dāng)前推薦系統(tǒng)為大數(shù)據(jù)集提供推薦。另外,基于實(shí)時(shí)模式的推薦在大數(shù)據(jù)集下面臨著嚴(yán)峻考驗(yàn),用戶(hù)難以忍受超過(guò)秒級(jí)的推薦結(jié)果返回時(shí)間。傳統(tǒng)推薦系統(tǒng)的單一數(shù)據(jù)庫(kù)存儲(chǔ)技術(shù)在大數(shù)據(jù)集下變得不再適用,急需一種對(duì)外提供統(tǒng)一接口、對(duì)內(nèi)采用多種混合模式存儲(chǔ)的存儲(chǔ)架構(gòu)來(lái)滿(mǎn)足大數(shù)據(jù)集下各種數(shù)據(jù)文件的存儲(chǔ)。并且,傳統(tǒng)推薦系統(tǒng)在推薦算法上采取的是單機(jī)節(jié)點(diǎn)的計(jì)算方式,不能滿(mǎn)足大數(shù)據(jù)集下海量用戶(hù)產(chǎn)生的大數(shù)據(jù)集上的計(jì)算需求[16]。大數(shù)據(jù)本身具有的復(fù)雜性、不確定性和涌現(xiàn)性也給推薦系統(tǒng)帶來(lái)諸多新的挑戰(zhàn),傳統(tǒng)推薦系統(tǒng)的時(shí)間效率、空間效率和推薦準(zhǔn)確度都遇到嚴(yán)重的瓶頸。
4.2 關(guān)鍵技術(shù)
4.2.1 采用分布式文件系統(tǒng)管理數(shù)據(jù)
傳統(tǒng)的推薦系統(tǒng)技術(shù)主要處理小文件存儲(chǔ)和少量數(shù)據(jù)計(jì)算,大多是面向服務(wù)器的架構(gòu),中心服務(wù)器需要收集用戶(hù)的瀏覽記錄、購(gòu)買(mǎi)記錄、評(píng)分記錄等大量的交互信息來(lái)為單個(gè)用戶(hù)定制個(gè)性化推薦。當(dāng)數(shù)據(jù)規(guī)模過(guò)大,數(shù)據(jù)無(wú)法全部載入服務(wù)器內(nèi)存時(shí),就算采用外存置換算法和多線(xiàn)程技術(shù),依然會(huì)出現(xiàn)I/O上的性能瓶頸,致使任務(wù)執(zhí)行效率過(guò)低,產(chǎn)生推薦結(jié)果的時(shí)間過(guò)長(zhǎng)。對(duì)于面向海量用戶(hù)和海量數(shù)據(jù)的推薦系統(tǒng),基于集中式的中心服務(wù)器的推薦系統(tǒng)在時(shí)間和空間復(fù)雜性上無(wú)法滿(mǎn)足大數(shù)據(jù)背景下推薦系統(tǒng)快速變化的需求[16]。
大數(shù)據(jù)推薦系統(tǒng)采用基于集群技術(shù)的分布式文件系統(tǒng)管理數(shù)據(jù)。建立一種高并發(fā)、可擴(kuò)展、能處理海量數(shù)據(jù)的大數(shù)據(jù)推薦系統(tǒng)架構(gòu)是非常關(guān)鍵的,它能為大數(shù)據(jù)集的處理提供強(qiáng)有力的支持。 Hadoop 的分布式文件系統(tǒng)(Hadoop distributed file system, HDFS)架構(gòu)是其中的典型。與傳統(tǒng)的文件系統(tǒng)不同,數(shù)據(jù)文件并非存儲(chǔ)在本地單一節(jié)點(diǎn)上,而是通過(guò)網(wǎng)絡(luò)存儲(chǔ)在多臺(tái)節(jié)點(diǎn)上。并且文件的位置索引管理一般都由一臺(tái)或幾臺(tái)中心節(jié)點(diǎn)負(fù)責(zé)[16]??蛻?hù)端從集群中讀寫(xiě)數(shù)據(jù)時(shí),首先通過(guò)中心節(jié)點(diǎn)獲取文件的位置,然后與集群中的節(jié)點(diǎn)通信,客戶(hù)端通過(guò)網(wǎng)絡(luò)從節(jié)點(diǎn)讀取數(shù)據(jù)到本地或把數(shù)據(jù)從本地寫(xiě)入節(jié)點(diǎn)。在這個(gè)過(guò)程中由 HDFS 來(lái)管理數(shù)據(jù)冗余存儲(chǔ)、大文件的切分、中間網(wǎng)絡(luò)通信、數(shù)據(jù)出錯(cuò)恢復(fù)等,客戶(hù)端根據(jù) HDFS 提供的接口進(jìn)行調(diào)用即可,非常方便。
4.2.2 采用基于集群技術(shù)的分布式計(jì)算框架
集群上實(shí)現(xiàn)分布式計(jì)算的框架很多,Hadoop中的MapReduce 作為推薦算法并行化的依托平臺(tái),既是一種分布式的計(jì)算框架,也是一種新型的分布式并行計(jì)算編程模型,應(yīng)用于大規(guī)模數(shù)據(jù)的并行處理,是一種常見(jiàn)的開(kāi)源計(jì)算框架。 MapReduce算法的核心思想是“分而治之”,把對(duì)大規(guī)模數(shù)據(jù)集的操作,分發(fā)給一個(gè)主節(jié)點(diǎn)管理下的各個(gè)分節(jié)點(diǎn)共同完成,然后通過(guò)整合各個(gè)節(jié)點(diǎn)的中間結(jié)果,得到最終結(jié)果。MapReduce 框架負(fù)責(zé)處理并行編程中分布式存儲(chǔ)、工作調(diào)度、負(fù)載均衡、容錯(cuò)均衡、容錯(cuò)處理以及網(wǎng)絡(luò)通信等復(fù)雜問(wèn)題,把處理過(guò)程高度抽象為兩個(gè)函數(shù): map和reduce。map負(fù)責(zé)把任務(wù)分解成多個(gè)任務(wù), reduce負(fù)責(zé)把分解后多任務(wù)處理的結(jié)果匯總起來(lái)[16]。例如,2010 年,Zhao等人針對(duì)協(xié)同過(guò)濾算法的計(jì)算復(fù)雜性在大規(guī)模推薦系統(tǒng)下的局限性,在 Hadoop平臺(tái)上實(shí)現(xiàn)了基于物品的協(xié)同過(guò)濾算法。2011年,針對(duì)推薦系統(tǒng)無(wú)法在每秒內(nèi)給大量用戶(hù)進(jìn)行推薦的問(wèn)題, Jiang等人將基于物品的協(xié)同過(guò)濾推薦算法的3個(gè)主要計(jì)算階段切分成4個(gè)MapReduce階段,切分后各階段可以并行運(yùn)行在集群的各個(gè)節(jié)點(diǎn)上。同時(shí)他們還提出了一種 Hadoop平臺(tái)下的數(shù)據(jù)分區(qū)策略,減少了節(jié)點(diǎn)間的通信開(kāi)銷(xiāo),提高了推薦系統(tǒng)的推薦效率。
4.2.3 推薦算法并行化
很多大型企業(yè)所需的推薦算法要處理的數(shù)據(jù)量非常龐大,從TB級(jí)別到PB級(jí)甚至更高,例如騰訊Peacock主題模型分析系統(tǒng)需要進(jìn)行高達(dá)十億文檔、百萬(wàn)詞匯、百萬(wàn)主題的主題模型訓(xùn)練,僅一個(gè)百萬(wàn)詞匯乘以百萬(wàn)主題的矩陣,其數(shù)據(jù)存儲(chǔ)量已達(dá)3 TB,如果再考慮十億文檔乘以百萬(wàn)主題的矩陣,其數(shù)據(jù)量則高達(dá)3 PB[17]。面對(duì)如此龐大的數(shù)據(jù),若采用傳統(tǒng)串行推薦算法,時(shí)間開(kāi)銷(xiāo)太大。當(dāng)數(shù)據(jù)量較小時(shí),時(shí)間復(fù)雜度高的串行算法能有效運(yùn)作,但數(shù)據(jù)量極速增加后,這些串行推薦算法的計(jì)算性能過(guò)低,無(wú)法應(yīng)用于實(shí)際的推薦系統(tǒng)中。因此,面向大數(shù)據(jù)集的推薦系統(tǒng)從設(shè)計(jì)上就應(yīng)考慮到算法的分布式并行化技術(shù),使得推薦算法能夠在海量的、分布式、異構(gòu)數(shù)據(jù)環(huán)境下得以高效實(shí)現(xiàn)。
5 開(kāi)源大數(shù)據(jù)典型推薦軟件
5.1 Mahout
Mahout是 Apache Software Foundation(ASF)旗下的一個(gè)全新的開(kāi)源項(xiàng)目,其主要目標(biāo)是提供一些可伸縮的機(jī)器學(xué)習(xí)領(lǐng)域經(jīng)典算法的實(shí)現(xiàn),供開(kāi)發(fā)人員在 Apache 許可下免費(fèi)使用,旨在幫助開(kāi)發(fā)人員更加方便、快捷地開(kāi)發(fā)大規(guī)模數(shù)據(jù)上的應(yīng)用程序。除了常見(jiàn)的分類(lèi)、聚類(lèi)等數(shù)據(jù)挖掘算法外,還包括協(xié)同過(guò)濾(CF)、維縮減(dimensionality reduction)、主題模型(topic models)等。Mahout集成了基于Java的推薦系統(tǒng)引擎“Taste”,用于生成個(gè)性化推薦“Taste”支持基于用戶(hù)的、基于物品的以及基于slope-one的推薦系統(tǒng)。在Mahout的推薦類(lèi)算法中,主要有基于用戶(hù)的協(xié)同過(guò)濾(user-based CF)、基于物品的協(xié)同過(guò)濾(item-based CF)、交替最小二乘法(ALS)、具有隱含反饋的ALS(ALS on implicit feedback)、加權(quán)矩陣分解(weighted MF)、SVD++、并行的隨機(jī)梯度下降(parallel SGD)等。
5.2 Spark MLlib
Spark MLlib對(duì)常用的機(jī)器學(xué)習(xí)算法進(jìn)行了實(shí)現(xiàn),包括邏輯回歸、支持向量機(jī)、樸素貝葉斯等分類(lèi)預(yù)測(cè)算法, K-means聚類(lèi)算法,各種梯度下降優(yōu)化算法以及協(xié)同過(guò)濾推薦算法。MLlib當(dāng)前支持的是基于矩陣分解的協(xié)同過(guò)濾方法,其函數(shù)優(yōu)化過(guò)程可采用其提供的交替最小二乘法或者梯度下降法來(lái)實(shí)現(xiàn),同時(shí)支持顯性反饋和隱性反饋信息。
5.3 EasyRec
EasyRec是SourceForge的一個(gè)開(kāi)源項(xiàng)目。它針對(duì)個(gè)人用戶(hù),提供低門(mén)檻的易集成、易擴(kuò)展、好管理的推薦系統(tǒng)。該開(kāi)源產(chǎn)品包括了數(shù)據(jù)錄入、數(shù)據(jù)管理、推薦挖掘、離線(xiàn)分析等功能。它可以同時(shí)給多個(gè)不同的網(wǎng)站提供推薦服務(wù)。需要推薦服務(wù)的網(wǎng)站用戶(hù)只需配合著發(fā)送一些用戶(hù)行為數(shù)據(jù)到EasyRec, EasyRec則會(huì)進(jìn)行后臺(tái)的推薦分析,并將推薦結(jié)果以XML或JSON的格式發(fā)送回網(wǎng)站。用戶(hù)行為數(shù)據(jù)包括用戶(hù)看了哪些商品、買(mǎi)了哪些商品、對(duì)哪些商品進(jìn)行了評(píng)分等。 EasyRec為網(wǎng)站用戶(hù)提供了訪(fǎng)問(wèn)EasyRec全部功能的接口,可通過(guò)調(diào)用這些接口來(lái)實(shí)現(xiàn)推薦業(yè)務(wù)。
5.4 Graphlab
Graphlab始于2009年,是由美國(guó)卡內(nèi)基梅隆大學(xué)開(kāi)發(fā)的一個(gè)項(xiàng)目。它基于C++語(yǔ)言,主要功能是提供一個(gè)基于圖的高性能分布式計(jì)算框架。GraphLab能夠高效地執(zhí)行與機(jī)器學(xué)習(xí)相關(guān)的數(shù)據(jù)依賴(lài)性強(qiáng)的迭代型算法,為Boosted決策樹(shù)、深度學(xué)習(xí)、文本分析等提供了可擴(kuò)展的機(jī)器學(xué)習(xí)算法模塊,能對(duì)分類(lèi)和推薦模型中的參數(shù)進(jìn)行自動(dòng)調(diào)優(yōu),和SPARK、 Hadoop、 Apache Avro、 OBDCconnectors等進(jìn)行了集成。由于功能獨(dú)特,GraphLab在業(yè)界很有名氣。針對(duì)大規(guī)模的數(shù)據(jù)集,采用GraphLab來(lái)進(jìn)行隨機(jī)游走(random walk)或基于圖的推薦算法非常有效。另外, GraphLab還實(shí)現(xiàn)了交替最小二乘法ALS、隨機(jī)梯度下降法 SGD、SVD++、 Weighted-ALS、 Sparse-ALS、非負(fù)矩陣分解(non-negative matrix factorization)等算法。
5.5 Duine
Duine框架是一套以Java語(yǔ)言編寫(xiě)的軟件庫(kù),可以幫助開(kāi)發(fā)者建立預(yù)測(cè)引擎。Duine提供混合算法配置,即算法可根據(jù)數(shù)據(jù)情況,在基于內(nèi)容的推薦和協(xié)同過(guò)濾中動(dòng)態(tài)轉(zhuǎn)換。例如在冷啟動(dòng)(比如尚無(wú)任何評(píng)價(jià)的時(shí)候)條件下,它側(cè)重基于內(nèi)容的分析法,推薦模塊主要通過(guò)算法,從用戶(hù)資料和商品信息中提取信息、計(jì)算預(yù)測(cè)值,主要包括以下幾種方法:協(xié)同過(guò)濾法、基于實(shí)例的推理(用戶(hù)給出相似評(píng)分的商品)和GenreLMS(對(duì)分類(lèi)的推理)。 Duine具有一個(gè)反饋處理器模塊,它以增強(qiáng)預(yù)測(cè)為目標(biāo),利用程序?qū)W習(xí)和獲取用戶(hù)的顯性和隱性反饋,用算法進(jìn)行處理后用以更新用戶(hù)的資料[18]。
6 大數(shù)據(jù)推薦系統(tǒng)研究面臨的問(wèn)題
6.1 特征提取問(wèn)題
推薦系統(tǒng)的推薦對(duì)象種類(lèi)豐富,例如新聞、博客等文本類(lèi)對(duì)象,視頻、圖片、音樂(lè)等多媒體對(duì)象以及可以用文本描述的一些實(shí)體對(duì)象等。如何對(duì)這些推薦對(duì)象進(jìn)行特征提取一直是學(xué)術(shù)界和工業(yè)界的熱門(mén)研究課題。對(duì)于文本類(lèi)對(duì)象,可以借助信息檢索領(lǐng)域己經(jīng)成熟的文本特征提取技術(shù)來(lái)提取特征。對(duì)于多媒體對(duì)象,由于需要結(jié)合多媒體內(nèi)容分析領(lǐng)域的相關(guān)技術(shù)來(lái)提取特征,而多媒體內(nèi)容分析技術(shù)目前在學(xué)術(shù)界和工業(yè)界還有待完善,因此多媒體對(duì)象的特征提取是推薦系統(tǒng)目前面臨的一大難題[19]。此外,推薦對(duì)象特征的區(qū)分度對(duì)推薦系統(tǒng)的性能有非常重要的影響。目前還缺乏特別有效的提高特征區(qū)分度的方法。
6.2 數(shù)據(jù)稀疏問(wèn)題
現(xiàn)有的大多數(shù)推薦算法都是基于用戶(hù)—物品評(píng)分矩陣數(shù)據(jù),數(shù)據(jù)的稀疏性問(wèn)題主要是指用戶(hù)—物品評(píng)分矩陣的稀疏性,即用戶(hù)與物品的交互行為太少。一個(gè)大型網(wǎng)站可能擁有上億數(shù)量級(jí)的用戶(hù)和物品,飆升的用戶(hù)評(píng)分?jǐn)?shù)據(jù)總量在面對(duì)增長(zhǎng)更快的“用戶(hù)—物品評(píng)價(jià)矩陣”時(shí),仍然只占極少的一部分,推薦系統(tǒng)研究中的經(jīng)典數(shù)據(jù)集MovieLens的稀疏度僅4.5%, Netflix百萬(wàn)大賽中提供的音樂(lè)數(shù)據(jù)集的稀疏度是1.2%。這些都是已經(jīng)處理過(guò)的數(shù)據(jù)集,實(shí)際上真實(shí)數(shù)據(jù)集的稀疏度都遠(yuǎn)遠(yuǎn)低于1%。例如, Bibsonomy的稀疏度是0.35%,Delicious的稀疏度是0.046%,淘寶網(wǎng)數(shù)據(jù)的稀疏度甚至僅在0.01%左右[19]。根據(jù)經(jīng)驗(yàn),數(shù)據(jù)集中用戶(hù)行為數(shù)據(jù)越多,推薦算法的精準(zhǔn)度越高,性能也越好。若數(shù)據(jù)集非常稀疏,只包含極少量的用戶(hù)行為數(shù)據(jù),推薦算法的準(zhǔn)確度會(huì)大打折扣,極容易導(dǎo)致推薦算法的過(guò)擬合,影響算法的性能。
6.3 冷啟動(dòng)問(wèn)題
冷啟動(dòng)問(wèn)題是推薦系統(tǒng)所面臨的最大問(wèn)題之一。冷啟動(dòng)問(wèn)題總的來(lái)說(shuō)可以分為3類(lèi):系統(tǒng)冷啟動(dòng)問(wèn)題、新用戶(hù)問(wèn)題和新物品問(wèn)題。系統(tǒng)冷啟動(dòng)問(wèn)題指的是由于數(shù)據(jù)過(guò)于稀疏,“用戶(hù)—物品評(píng)分矩陣”的密度太低,導(dǎo)致推薦系統(tǒng)得到的推薦結(jié)果準(zhǔn)確性極低。新物品問(wèn)題是由于新的物品缺少用戶(hù)對(duì)該物品的評(píng)分,這類(lèi)物品很難通過(guò)推薦系統(tǒng)被推薦給用戶(hù),用戶(hù)難以對(duì)這些物品評(píng)分,從而形成惡性循環(huán),導(dǎo)致一些新物品始終無(wú)法有效推薦。新物品問(wèn)題對(duì)不同的推薦系統(tǒng)影響程度不同:對(duì)于用戶(hù)可以通過(guò)多種方式查找物品的網(wǎng)站,新物品問(wèn)題并沒(méi)有太大影響,如電影推薦系統(tǒng)等,因?yàn)橛脩?hù)可以有多種途徑找到電影觀看并評(píng)分;而對(duì)于一些推薦是主要獲取物品途徑的網(wǎng)站,新物品問(wèn)題會(huì)對(duì)推薦系統(tǒng)造成嚴(yán)重影響。通常解決這個(gè)問(wèn)題的途徑是激勵(lì)或者雇傭少量用戶(hù)對(duì)每一個(gè)新物品進(jìn)行評(píng)分。新用戶(hù)問(wèn)題是目前對(duì)現(xiàn)實(shí)推薦系統(tǒng)挑戰(zhàn)最大的冷啟動(dòng)問(wèn)題:當(dāng)一個(gè)新的用戶(hù)使用推薦系統(tǒng)時(shí),他沒(méi)有對(duì)任何項(xiàng)目進(jìn)行評(píng)分,因此系統(tǒng)無(wú)法對(duì)其進(jìn)行個(gè)性化推薦;即使當(dāng)新用戶(hù)開(kāi)始對(duì)少量項(xiàng)目進(jìn)行評(píng)分時(shí),由于評(píng)分太少,系統(tǒng)依然無(wú)法給出精確的推薦,這甚至?xí)?dǎo)致用戶(hù)因?yàn)橥扑]體驗(yàn)不佳而停止使用推薦系統(tǒng)[20]。當(dāng)前解決新用戶(hù)問(wèn)題主要是通過(guò)結(jié)合基于內(nèi)容和基于用戶(hù)特征的方法,掌握用戶(hù)的統(tǒng)計(jì)特征和興趣特征,在用戶(hù)只有少量評(píng)分甚至沒(méi)有評(píng)分時(shí)做出比較準(zhǔn)確的推薦。
6.4 可擴(kuò)展性問(wèn)題
擴(kuò)展性問(wèn)題是推薦系統(tǒng)面臨的又一難題,特別是隨著大數(shù)據(jù)時(shí)代的到來(lái),用戶(hù)數(shù)與物品數(shù)飛漲,傳統(tǒng)推薦系統(tǒng)會(huì)隨著問(wèn)題規(guī)模的擴(kuò)大而效率大大降低?;ㄙM(fèi)大量時(shí)間才能得到推薦結(jié)果是難以接受的,特別是對(duì)于一些實(shí)時(shí)性要求較高的在線(xiàn)推薦系統(tǒng)。使用基于內(nèi)存的推薦系統(tǒng),用戶(hù)或者物品間的相似度計(jì)算會(huì)耗費(fèi)大量時(shí)間;使用基于模型的推薦系統(tǒng),利用機(jī)器學(xué)習(xí)算法學(xué)習(xí)模型參數(shù)同樣會(huì)耗費(fèi)大量時(shí)間,這里學(xué)習(xí)時(shí)間主要用在求解全局最優(yōu)問(wèn)題上。解決擴(kuò)展性問(wèn)題,工業(yè)界一般采取的方法是線(xiàn)下學(xué)習(xí)、線(xiàn)上使用:先通過(guò)離線(xiàn)數(shù)據(jù)事先算好用戶(hù)/物品間相似度或者模型參數(shù),然后線(xiàn)上只需要利用這些算好的數(shù)值進(jìn)行推薦[20]。但是這并沒(méi)有從根本上提高推薦算法的效率, Sarwar等人2002年提出了一種增量SVD協(xié)同過(guò)濾算法,當(dāng)評(píng)分矩陣中增加若干新分值時(shí),系統(tǒng)不用對(duì)整個(gè)矩陣重新計(jì)算,而只需要進(jìn)行少量計(jì)算對(duì)原模型進(jìn)行調(diào)整,因此大大加快了模型的更新速度。同時(shí),若干文獻(xiàn)提出使用聚類(lèi)的方式解決擴(kuò)展性問(wèn)題,通過(guò)聚類(lèi)能有效減少用戶(hù)和物品規(guī)模,但是這樣會(huì)一定程度地降低推薦精度。在求解模型全局優(yōu)化問(wèn)題上,學(xué)者也做了大量工作,希望能加快收斂速度,例如人們提出了并行的隨機(jī)梯度下降法和交替最小二乘法等。
7 總結(jié)與展望
隨著互聯(lián)網(wǎng)的飛速發(fā)展,人們對(duì)于個(gè)性化的信息需求已經(jīng)非常急切,推薦系統(tǒng)的出現(xiàn)可以很好地解決用戶(hù)在使用互聯(lián)網(wǎng)和電子商務(wù)網(wǎng)站時(shí)的“信息爆炸”問(wèn)題。本文主要針對(duì)互聯(lián)網(wǎng)大數(shù)據(jù)時(shí)代推薦系統(tǒng)的產(chǎn)生和發(fā)展現(xiàn)狀、領(lǐng)域需求和系統(tǒng)架構(gòu)、用戶(hù)建模和推薦引擎、大數(shù)據(jù)時(shí)代推薦系統(tǒng)的特點(diǎn)挑戰(zhàn)和關(guān)鍵技術(shù)、開(kāi)源的大數(shù)據(jù)推薦軟件、大數(shù)據(jù)推薦系統(tǒng)研究面臨的問(wèn)題等進(jìn)行了介紹。
大數(shù)據(jù)推薦系統(tǒng)的未來(lái)研究方向主要在以下幾個(gè)方面。
從系統(tǒng)推薦到社會(huì)推薦,即在推薦的過(guò)程中,除了考慮用戶(hù)的歷史行為信息,還需要利用用戶(hù)的社會(huì)網(wǎng)絡(luò)信息來(lái)增強(qiáng)推薦的效果;同時(shí),在進(jìn)行社會(huì)網(wǎng)絡(luò)上的人與人之間的推薦時(shí),也要綜合利用用戶(hù)的歷史行為信息,做到社會(huì)網(wǎng)絡(luò)和歷史行為信息的互相利用和推薦效果的相互增強(qiáng)。
從以精確性為中心到綜合考慮精確性、多樣性和新穎性的評(píng)估體系。
從單一數(shù)據(jù)源到交叉融合數(shù)據(jù)平臺(tái),比如依據(jù)用戶(hù)的跨網(wǎng)站行為數(shù)據(jù),解決某一網(wǎng)站上的冷啟動(dòng)推薦問(wèn)題。
從高速服務(wù)器到并行處理到云計(jì)算。
從靜態(tài)算法到動(dòng)態(tài)增量算法、自適應(yīng)算法,從脆弱算法到頑健算法。
找回密碼
注冊(cè)賬號(hào)