新用戶登錄后自動(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)用戶既是網(wǎng)絡(luò)信息的消費(fèi)者,也是網(wǎng)絡(luò)內(nèi)容的生產(chǎn)者,互聯(lián)網(wǎng)中的信息量呈指數(shù)級(jí)增長(zhǎng)。由于用戶的辨別能力有限,在面對(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ō),用戶在搜索互聯(lián)網(wǎng)中的信息時(shí),需要在搜索引擎中輸入“查詢(xún)關(guān)鍵詞”,搜索引擎根據(jù)用戶的輸入,在系統(tǒng)后臺(tái)進(jìn)行信息匹配,將與用戶查詢(xún)相關(guān)的信息展示給用戶。但是,如果用戶無(wú)法想到準(zhǔn)確描述自己需求的關(guān)鍵詞,此時(shí)搜索引擎就無(wú)能為力了。和搜索引擎不同,推薦系統(tǒng)不需要用戶提供明確的需求,而是通過(guò)分析用戶的歷史行為來(lái)對(duì)用戶的興趣進(jìn)行建模,從而主動(dòng)給用戶推薦可能滿足他們興趣和需求的信息。因此,搜索引擎和推薦系統(tǒng)對(duì)用戶來(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)站中的用戶規(guī)模也非常巨大。據(jù)不完全統(tǒng)計(jì),天貓商城中的商品數(shù)量已經(jīng)超過(guò)了4 000萬(wàn)。在如此龐大的電商網(wǎng)站中,用戶根據(jù)自己的購(gòu)買(mǎi)意圖輸入關(guān)鍵字查詢(xún)后,會(huì)得到很多相似的結(jié)果,用戶在這些結(jié)果中也很難區(qū)分異同,用戶也難于選擇合適的物品。于是,推薦系統(tǒng)作為能夠根據(jù)用戶興趣為用戶推薦一些用戶感興趣的商品,從而為用戶在購(gòu)物的選擇中提供建議的需求非常明顯。目前比較成功的電子商務(wù)網(wǎng)站中,都不同程度地利用推薦系統(tǒng)在用戶購(gòu)物的同時(shí),為用戶推薦一些商品,從而提高網(wǎng)站的銷(xiāo)售額。
另一方面,智能手機(jī)的發(fā)展推動(dòng)了移動(dòng)互聯(lián)網(wǎng)的發(fā)展。在用戶使用移動(dòng)互聯(lián)網(wǎng)的過(guò)程中,其所處的地理位置等信息可以非常準(zhǔn)確地被獲取?;诖?,國(guó)內(nèi)外出現(xiàn)了大量的基于用戶位置信息的網(wǎng)站。國(guó)外比較著名的有Meetup和Flickr。國(guó)內(nèi)著名的有豆瓣網(wǎng)和大眾點(diǎn)評(píng)網(wǎng)。例如,在大眾點(diǎn)評(píng)這種基于位置服務(wù)的網(wǎng)站中,用戶可以根據(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)用戶使用這類(lèi)基于位置的網(wǎng)站服務(wù)時(shí),同樣會(huì)遭遇“信息過(guò)載”問(wèn)題。推薦系統(tǒng)可以根據(jù)用戶的位置信息為用戶推薦當(dāng)前位置下用戶感興趣的內(nèi)容,為用戶提供符合其真正需要的內(nèi)容,提升用戶對(duì)網(wǎng)站的滿意度。
隨著社交網(wǎng)絡(luò)的興起,用戶在互聯(lián)網(wǎng)中的行為不再限于獲取信息,更多的是與網(wǎng)絡(luò)上的其他用戶進(jìn)行互動(dòng)。國(guó)外著名的社交網(wǎng)絡(luò)有Facebook、 LinkedIn、 Twitter等,國(guó)內(nèi)的社交網(wǎng)絡(luò)有新浪微博、人人網(wǎng)、騰訊微博等。在社交網(wǎng)站中,用戶不再是單個(gè)的個(gè)體,而是與網(wǎng)絡(luò)中的很多人具有了錯(cuò)綜復(fù)雜的關(guān)系。社交網(wǎng)絡(luò)中最重要的資源就是用戶與用戶之間的這種關(guān)系數(shù)據(jù)。在社交網(wǎng)絡(luò)中,用戶間的關(guān)系是不同的,建立關(guān)系的因素可能是現(xiàn)實(shí)世界中的親人、同學(xué)、同事、朋友關(guān)系,也可能是網(wǎng)絡(luò)中的虛擬朋友,比如都是有著共同愛(ài)好的社交網(wǎng)絡(luò)成員。在社交網(wǎng)絡(luò)中,用戶與用戶之間的聯(lián)系反映了用戶之間的信任關(guān)系,用戶不單單是一個(gè)個(gè)體,用戶在社交網(wǎng)絡(luò)中的行為或多或少地會(huì)受到這些用戶關(guān)系的影響。因此,推薦系統(tǒng)在這類(lèi)社交網(wǎng)站中的研究與應(yīng)用,應(yīng)該考慮用戶社交關(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ù),包含用戶對(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è)是否被用戶評(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ù)建模、用戶建模、推薦引擎和用戶接口4個(gè)部分,如圖1所示。數(shù)據(jù)建模模塊負(fù)責(zé)對(duì)擬推薦的物品數(shù)據(jù)進(jìn)行準(zhǔn)備,將其表示成有利于分析的數(shù)據(jù)形式,確定要推薦給用戶的候選物品,并對(duì)物品進(jìn)行分類(lèi)、聚類(lèi)等預(yù)處理。用戶建模模塊負(fù)責(zé)對(duì)用戶的行為信息進(jìn)行分析,從而獲得用戶的潛在喜好。用戶的行為信息包括問(wèn)答、評(píng)分、購(gòu)買(mǎi)、下載、瀏覽、收藏、停留時(shí)間等。推薦引擎模塊利用后臺(tái)的推薦算法,實(shí)時(shí)地從候選物品集合中篩選出用戶感興趣的物品,排序后以列表的形式向用戶推薦。推薦引擎是推薦系統(tǒng)的核心部分,也是最耗系統(tǒng)資源和時(shí)間的部分。用戶接口模塊承擔(dān)展示推薦結(jié)果、收集用戶反饋等功能。用戶接口除了應(yīng)具有布局合理、界面美觀、使用方便等基本要求外,還應(yīng)有助于用戶主動(dòng)提供反饋。主要有兩種類(lèi)型的接口:Web端(Web-based)和移動(dòng)端(mobile-based)。受篇幅限制,僅對(duì)用戶建模和推薦引擎這兩個(gè)重要模塊進(jìn)行詳細(xì)介紹。
3.1 用戶建模
用戶模型反映用戶的興趣偏好。用戶興趣的反饋可分為顯性反饋和隱性反饋。顯性反饋包含兩種方式:用戶定制和用戶評(píng)分。用戶定制是指用戶對(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中用戶對(duì)新聞的喜好程度可評(píng)價(jià)為1~5分。 News Dude支持用戶的4級(jí)反饋:感興趣、不感興趣、已知道、想了解更多,然后進(jìn)行歸一化處理。
很多時(shí)候用戶不能夠準(zhǔn)確地提供個(gè)人偏好或者不愿意顯性提供個(gè)人偏好,更不愿意經(jīng)常維護(hù)個(gè)人的偏好。所以,隱性反饋往往能夠正確地體現(xiàn)用戶的偏好以及偏好的變化。常用的隱性反饋信息有:是否點(diǎn)擊、停留時(shí)間、點(diǎn)擊時(shí)間、點(diǎn)擊地點(diǎn)、是否加入收藏、評(píng)論內(nèi)容(可推測(cè)用戶的心情)、用戶的搜索內(nèi)容、社交網(wǎng)絡(luò)、流行趨勢(shì)、點(diǎn)擊順序等。在協(xié)同過(guò)濾推薦方法中,常常把用戶的隱性反饋轉(zhuǎn)化為用戶對(duì)產(chǎn)品的評(píng)分。例如, Google News中用戶閱讀過(guò)的新聞?dòng)洖橄矚g,評(píng)分為1;沒(méi)有閱讀過(guò)的評(píng)分為0。Daily Learner系統(tǒng)中用戶點(diǎn)擊了新聞標(biāo)題評(píng)分為0.8分,閱讀完全文則評(píng)分上升到1分;若用戶跳過(guò)了系統(tǒng)推薦的新聞,則從系統(tǒng)預(yù)測(cè)評(píng)分中減去0.2分作為最終評(píng)分。
用戶的興趣可分為長(zhǎng)期興趣和短期興趣。長(zhǎng)期興趣反映用戶的真實(shí)興趣;短期興趣常與熱點(diǎn)話題相關(guān)聯(lián)且經(jīng)常改變,從最近的歷史行為中學(xué)習(xí)到的短期興趣模型可快速反映用戶興趣的變化。常用的模型有向量空間模型、語(yǔ)義網(wǎng)絡(luò)模型、基于分類(lèi)器的模型等。由于用戶的興趣常受物品本身周期性、熱點(diǎn)事件、突發(fā)事件的影響,變化性很大。所以,需要經(jīng)常更新用戶模型。
3.2 推薦引擎
推薦引擎的基本推薦方法可分為基于內(nèi)容的推薦和基于協(xié)同過(guò)濾的推薦。
基于內(nèi)容的推薦方法的基本原理是,根據(jù)用戶以往喜歡的物品,選擇其他類(lèi)似的物品作為推薦結(jié)果[2]。例如,現(xiàn)在有一部新電影與用戶過(guò)去看過(guò)的某部電影有相同演員或者題材類(lèi)似,則用戶可能就喜歡這部新電影。通常使用用戶模型的向量特征來(lái)描述用戶的興趣愛(ài)好,同樣對(duì)于每個(gè)物品進(jìn)行特征提取,作為物品模型的內(nèi)容特征。然后計(jì)算用戶模型的向量特征和候選物品模型的向量特征兩者之間的匹配度,匹配度較高的候選物品就可作為推薦結(jié)果推送給目標(biāo)用戶。
協(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ù),即利用用戶所在群體的共同喜好來(lái)向用戶進(jìn)行推薦。協(xié)同過(guò)濾利用了用戶的歷史行為(偏好、習(xí)慣等)將用戶聚類(lèi)成簇,這種推薦通過(guò)計(jì)算相似用戶,假設(shè)被其他相似用戶喜好的物品當(dāng)前用戶也感興趣。協(xié)同過(guò)濾的推薦方法通常包括兩個(gè)步驟:根據(jù)用戶行為數(shù)據(jù)找到和目標(biāo)用戶興趣相似的用戶集合(用戶所在的群體或簇);找到這個(gè)集合中用戶喜歡的且目標(biāo)用戶沒(méi)有購(gòu)買(mǎi)過(guò)的物品推薦給目標(biāo)用戶。
在實(shí)際使用中,協(xié)同過(guò)濾技術(shù)面臨兩大制約:一是數(shù)據(jù)稀疏問(wèn)題,二是冷啟動(dòng)問(wèn)題。協(xié)同過(guò)濾需要利用用戶和用戶或者物品與物品之間的關(guān)聯(lián)性進(jìn)行推薦。最流行的基于內(nèi)存的協(xié)同過(guò)濾方法是基于鄰居關(guān)系的方法。該方法首先找出與指定用戶評(píng)價(jià)歷史相近的該用戶的鄰居,根據(jù)這些鄰居的行為來(lái)預(yù)測(cè)結(jié)果或者找出與查詢(xún)物品類(lèi)似的物品。這樣做的前提假設(shè)是,如果兩個(gè)用戶在一組物品上有相似的評(píng)價(jià),那么他們對(duì)其他的物品也將會(huì)有相似的評(píng)價(jià);或者如果兩物品在一組用戶上有相似的評(píng)價(jià),那么他們對(duì)于其他的用戶也將會(huì)有相似的評(píng)價(jià)。
協(xié)同過(guò)濾算法的關(guān)鍵是找尋用戶(物品)的最近鄰居。當(dāng)數(shù)據(jù)稀疏時(shí),用戶購(gòu)買(mǎi)過(guò)的物品很難重疊,協(xié)同推薦的效果就不好。改進(jìn)辦法之一是,除了直接鄰居之外,間接鄰居的行為也可以對(duì)當(dāng)前用戶的決策行為構(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ò)用戶與物品之間的關(guān)系來(lái)導(dǎo)出結(jié)果;后者需要找到一個(gè)合適的參數(shù)化的模型,然后通過(guò)這個(gè)模型來(lái)導(dǎo)出結(jié)果。
基于用戶的協(xié)同過(guò)濾[4]鑒別出與查詢(xún)用戶相似的用戶,然后將這些用戶對(duì)物品評(píng)分的均值作為該用戶評(píng)分結(jié)果的估計(jì)值。與此類(lèi)似,基于物品的協(xié)同過(guò)濾鑒別出與查詢(xún)物品類(lèi)似的物品,然后將這些物品的評(píng)分均值作為該物品預(yù)測(cè)結(jié)果的估計(jì)值?;卩従拥姆椒S著計(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)方法的基本思想是將相似的用戶(或物品)組成聚類(lèi),這種技術(shù)有助于解決數(shù)據(jù)稀疏性和計(jì)算復(fù)雜性問(wèn)題。貝葉斯的基本思想是給定用戶A其他的評(píng)分和其他用戶評(píng)分情況下,計(jì)算每個(gè)可能評(píng)分值(比如電影推薦中的1~5分)的條件概率,然后選擇一個(gè)最大概率值的評(píng)分作為預(yù)測(cè)值?;诨貧w方法的基本思想是先利用線性回歸模型學(xué)習(xí)物品之間評(píng)分的關(guān)系,然后根據(jù)這些關(guān)系預(yù)測(cè)用戶對(duì)物品的評(píng)分。Slop-one算法[13]在評(píng)價(jià)矩陣上使用了線性模型,使之能夠快速計(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ù)值?;诘椭染仃嚪纸獾姆椒◤脑u(píng)分矩陣中抽取一組潛在的(隱藏的)因子,并通過(guò)這些因子向量描述用戶和物品。在電影領(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)的“用戶—項(xiàng)目”二維評(píng)分效用模型擴(kuò)展為包含多種上下文信息的多維評(píng)分效用模型。Sun等人首先將HOSVD的方法用于網(wǎng)頁(yè)搜索,提出了CubeSVD算法[14],算法將用戶的位置信息作為上下文信息,用于搜索引擎的結(jié)果排序,取得了比較好的結(jié)果。Renle等人提出RTF算法[15],與HOSVD不同, RTF算法根據(jù)用戶的排序進(jìn)行優(yōu)化,可以獲得比較好的準(zhǔn)確度。
基于內(nèi)容的推薦方法和基于協(xié)同過(guò)濾的推薦方法各有其優(yōu)缺點(diǎn)。現(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)題。例如,用戶數(shù)目越來(lái)越多,海量用戶同時(shí)訪問(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),用戶難以忍受超過(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)滿足大數(shù)據(jù)集下各種數(shù)據(jù)文件的存儲(chǔ)。并且,傳統(tǒng)推薦系統(tǒng)在推薦算法上采取的是單機(jī)節(jié)點(diǎn)的計(jì)算方式,不能滿足大數(shù)據(jù)集下海量用戶產(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ù)器需要收集用戶的瀏覽記錄、購(gòu)買(mǎi)記錄、評(píng)分記錄等大量的交互信息來(lái)為單個(gè)用戶定制個(gè)性化推薦。當(dāng)數(shù)據(jù)規(guī)模過(guò)大,數(shù)據(jù)無(wú)法全部載入服務(wù)器內(nèi)存時(shí),就算采用外存置換算法和多線程技術(shù),依然會(huì)出現(xiàn)I/O上的性能瓶頸,致使任務(wù)執(zhí)行效率過(guò)低,產(chǎn)生推薦結(jié)果的時(shí)間過(guò)長(zhǎng)。對(duì)于面向海量用戶和海量數(shù)據(jù)的推薦系統(tǒng),基于集中式的中心服務(wù)器的推薦系統(tǒng)在時(shí)間和空間復(fù)雜性上無(wú)法滿足大數(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]??蛻舳藦募褐凶x寫(xiě)數(shù)據(jù)時(shí),首先通過(guò)中心節(jié)點(diǎn)獲取文件的位置,然后與集群中的節(jié)點(diǎn)通信,客戶端通過(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ù)等,客戶端根據(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)給大量用戶進(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”支持基于用戶的、基于物品的以及基于slope-one的推薦系統(tǒng)。在Mahout的推薦類(lèi)算法中,主要有基于用戶的協(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è)人用戶,提供低門(mén)檻的易集成、易擴(kuò)展、好管理的推薦系統(tǒng)。該開(kāi)源產(chǎn)品包括了數(shù)據(jù)錄入、數(shù)據(jù)管理、推薦挖掘、離線分析等功能。它可以同時(shí)給多個(gè)不同的網(wǎng)站提供推薦服務(wù)。需要推薦服務(wù)的網(wǎng)站用戶只需配合著發(fā)送一些用戶行為數(shù)據(jù)到EasyRec, EasyRec則會(huì)進(jìn)行后臺(tái)的推薦分析,并將推薦結(jié)果以XML或JSON的格式發(fā)送回網(wǎng)站。用戶行為數(shù)據(jù)包括用戶看了哪些商品、買(mǎi)了哪些商品、對(duì)哪些商品進(jìn)行了評(píng)分等。 EasyRec為網(wǎ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ò)算法,從用戶資料和商品信息中提取信息、計(jì)算預(yù)測(cè)值,主要包括以下幾種方法:協(xié)同過(guò)濾法、基于實(shí)例的推理(用戶給出相似評(píng)分的商品)和GenreLMS(對(duì)分類(lèi)的推理)。 Duine具有一個(gè)反饋處理器模塊,它以增強(qiáng)預(yù)測(cè)為目標(biāo),利用程序?qū)W習(xí)和獲取用戶的顯性和隱性反饋,用算法進(jìn)行處理后用以更新用戶的資料[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ù)推薦算法都是基于用戶—物品評(píng)分矩陣數(shù)據(jù),數(shù)據(jù)的稀疏性問(wèn)題主要是指用戶—物品評(píng)分矩陣的稀疏性,即用戶與物品的交互行為太少。一個(gè)大型網(wǎng)站可能擁有上億數(shù)量級(jí)的用戶和物品,飆升的用戶評(píng)分?jǐn)?shù)據(jù)總量在面對(duì)增長(zhǎng)更快的“用戶—物品評(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ù)集中用戶行為數(shù)據(jù)越多,推薦算法的精準(zhǔn)度越高,性能也越好。若數(shù)據(jù)集非常稀疏,只包含極少量的用戶行為數(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)題、新用戶問(wèn)題和新物品問(wèn)題。系統(tǒng)冷啟動(dòng)問(wèn)題指的是由于數(shù)據(jù)過(guò)于稀疏,“用戶—物品評(píng)分矩陣”的密度太低,導(dǎo)致推薦系統(tǒng)得到的推薦結(jié)果準(zhǔn)確性極低。新物品問(wèn)題是由于新的物品缺少用戶對(duì)該物品的評(píng)分,這類(lèi)物品很難通過(guò)推薦系統(tǒng)被推薦給用戶,用戶難以對(duì)這些物品評(píng)分,從而形成惡性循環(huán),導(dǎo)致一些新物品始終無(wú)法有效推薦。新物品問(wèn)題對(duì)不同的推薦系統(tǒng)影響程度不同:對(duì)于用戶可以通過(guò)多種方式查找物品的網(wǎng)站,新物品問(wèn)題并沒(méi)有太大影響,如電影推薦系統(tǒng)等,因?yàn)橛脩艨梢杂卸喾N途徑找到電影觀看并評(píng)分;而對(duì)于一些推薦是主要獲取物品途徑的網(wǎng)站,新物品問(wèn)題會(huì)對(duì)推薦系統(tǒng)造成嚴(yán)重影響。通常解決這個(gè)問(wèn)題的途徑是激勵(lì)或者雇傭少量用戶對(duì)每一個(gè)新物品進(jìn)行評(píng)分。新用戶問(wèn)題是目前對(duì)現(xiàn)實(shí)推薦系統(tǒng)挑戰(zhàn)最大的冷啟動(dòng)問(wèn)題:當(dāng)一個(gè)新的用戶使用推薦系統(tǒng)時(shí),他沒(méi)有對(duì)任何項(xiàng)目進(jìn)行評(píng)分,因此系統(tǒng)無(wú)法對(duì)其進(jìn)行個(gè)性化推薦;即使當(dāng)新用戶開(kāi)始對(duì)少量項(xiàng)目進(jìn)行評(píng)分時(shí),由于評(píng)分太少,系統(tǒng)依然無(wú)法給出精確的推薦,這甚至?xí)?dǎo)致用戶因?yàn)橥扑]體驗(yàn)不佳而停止使用推薦系統(tǒng)[20]。當(dāng)前解決新用戶問(wèn)題主要是通過(guò)結(jié)合基于內(nèi)容和基于用戶特征的方法,掌握用戶的統(tǒng)計(jì)特征和興趣特征,在用戶只有少量評(píng)分甚至沒(méi)有評(píng)分時(shí)做出比較準(zhǔn)確的推薦。
6.4 可擴(kuò)展性問(wèn)題
擴(kuò)展性問(wèn)題是推薦系統(tǒng)面臨的又一難題,特別是隨著大數(shù)據(jù)時(shí)代的到來(lái),用戶數(shù)與物品數(shù)飛漲,傳統(tǒng)推薦系統(tǒng)會(huì)隨著問(wèn)題規(guī)模的擴(kuò)大而效率大大降低。花費(fèi)大量時(shí)間才能得到推薦結(jié)果是難以接受的,特別是對(duì)于一些實(shí)時(shí)性要求較高的在線推薦系統(tǒng)。使用基于內(nèi)存的推薦系統(tǒng),用戶或者物品間的相似度計(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è)界一般采取的方法是線下學(xué)習(xí)、線上使用:先通過(guò)離線數(shù)據(jù)事先算好用戶/物品間相似度或者模型參數(shù),然后線上只需要利用這些算好的數(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)能有效減少用戶和物品規(guī)模,但是這樣會(huì)一定程度地降低推薦精度。在求解模型全局優(yōu)化問(wèn)題上,學(xué)者也做了大量工作,希望能加快收斂速度,例如人們提出了并行的隨機(jī)梯度下降法和交替最小二乘法等。
7 總結(jié)與展望
隨著互聯(lián)網(wǎng)的飛速發(fā)展,人們對(duì)于個(gè)性化的信息需求已經(jīng)非常急切,推薦系統(tǒng)的出現(xiàn)可以很好地解決用戶在使用互聯(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)、用戶建模和推薦引擎、大數(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ò)程中,除了考慮用戶的歷史行為信息,還需要利用用戶的社會(huì)網(wǎng)絡(luò)信息來(lái)增強(qiáng)推薦的效果;同時(shí),在進(jìn)行社會(huì)網(wǎng)絡(luò)上的人與人之間的推薦時(shí),也要綜合利用用戶的歷史行為信息,做到社會(huì)網(wǎng)絡(luò)和歷史行為信息的互相利用和推薦效果的相互增強(qiáng)。
從以精確性為中心到綜合考慮精確性、多樣性和新穎性的評(píng)估體系。
從單一數(shù)據(jù)源到交叉融合數(shù)據(jù)平臺(tái),比如依據(jù)用戶的跨網(wǎng)站行為數(shù)據(jù),解決某一網(wǎng)站上的冷啟動(dòng)推薦問(wèn)題。
從高速服務(wù)器到并行處理到云計(jì)算。
從靜態(tài)算法到動(dòng)態(tài)增量算法、自適應(yīng)算法,從脆弱算法到頑健算法。
找回密碼
注冊(cè)賬號(hào)