個性化推薦十大挑戰(zhàn)(中)

1 評論 9249 瀏覽 57 收藏 18 分鐘

前文介紹了個性化推薦十大挑戰(zhàn)的背景其中的數(shù)據(jù)稀疏性問題,冷啟動問題。本篇介紹個性化推薦十大挑戰(zhàn)中的大數(shù)據(jù)處理與增量計算問題,多樣性與精確性的兩難困境,推薦系統(tǒng)的脆弱性問題,用戶行為模式的挖掘和利用。篇幅較長,大家耐心看噢~

接上文:個性化推薦十大挑戰(zhàn)(上)

挑戰(zhàn)三:大數(shù)據(jù)處理與增量計算問題。

盡管數(shù)據(jù)很稀疏,大部分數(shù)據(jù)都包含百千萬計的用戶和商品,與此同時,新商品也不斷加入系統(tǒng),新用戶不停進入系統(tǒng),用戶和商品之間還不停產(chǎn)生新的連接。數(shù)據(jù)量不僅大,而且數(shù)據(jù)本身還時時動態(tài)變化,如何快速高效處理這些數(shù)據(jù)成為迫在眉睫的問題。在這個大前提下,算法時間和空間的復(fù)雜性,尤其是前者,獲得了空前重視。一般而言,一個高效的算法,要么自身復(fù)雜性很低,要么能夠很好并行化,要么兩者兼具。

提高算法的效率,有很多途徑。大致上可以分為兩類,一是精確算法,二是近似算法。需要注意的是,精確算法中“精確”這次詞,并不是指算法的推薦精確度有多大,而是相對于近似算法而言,強調(diào)這個算法并不是以犧牲算法中某些步驟的精確性而提高效率的。譬如說計算n的階乘,可以有不同的高精度算法,凡是得出最后精確值的就是精確算法,而如果利用斯特林公式進行計算,就屬于近似算法了。一般而言,近似算法的效率會明顯高于精確算法。

通過巧妙的方法,可以設(shè)計出效率很高的精確算法。譬如Porteous等人設(shè)計了一種可以用于潛層狄利克雷分配(Latent Dirichlet Allocation, LDA)算法的新的采樣方法,比傳統(tǒng)吉布斯采樣算法快8倍。Cacheda等人設(shè)計了一種預(yù)測算法,只考慮一個用戶與其他用戶打分的差異以及一個商品與其他商品得分的差異,這個算法遠遠快于協(xié)同過濾算法,卻能夠得到比標準的基于用戶的協(xié)同過濾算法更精確的預(yù)測效果,其預(yù)測精度有時候甚至可以和SVD分解的方法媲美。提高精確算法的另外一條途徑就是并行化——很多算法的并行化,一點都不簡單。谷歌中國成功將LDA算法并行化并應(yīng)用于Orkut的推薦中,取得了很好的效果。最近Gemulla等人提出了一種隨機梯度下降法,可以并行分解百萬行列的矩陣,該方法可以應(yīng)用在包括推薦在內(nèi)的若干場景下。

近似算法往往基于增量計算,也就是說當(dāng)產(chǎn)生新用戶,新商品以及新的連接關(guān)系時,算法的結(jié)果不需要在整個數(shù)據(jù)集上重新進行計算得到,而只需要考慮所增加節(jié)點和連邊局部的信息,對原有的結(jié)果進行微擾,快速得到新結(jié)果。一般而言,這種算法隨著加入的信息量的增多,其誤差會積累變大,最終每過一段時間還是需要利用全局數(shù)據(jù)重新進行計算。更先進但也更苦難的辦法,是設(shè)計出一種算法,能夠保證其誤差不會累積,也就是說其結(jié)果與利用全部數(shù)據(jù)重新計算的結(jié)果之間的差異不會單調(diào)上升。我們不妨把這種算法叫做自適應(yīng)算法,它是增量算法的一個加強版本,其設(shè)計要求和難度更高。增量算法已經(jīng)在業(yè)界有了應(yīng)用,譬如百分點推薦引擎中的若干算法都采用了增量技術(shù),使得用戶每次新瀏覽、收藏或者購買商品后其推薦列表立刻得到更新。但是自適應(yīng)算法目前還只是在比較特殊的算法上面

才能實現(xiàn),更勿談工業(yè)界應(yīng)用了。

  圖3:兼顧精確性和多樣性的混合擴散推薦算法示意圖。

挑戰(zhàn)四:多樣性與精確性的兩難困境。

如果要給用戶推薦他喜歡的商品,最“保險”的方式就是給他特別流行的商品,因為這些商品有更大的可能性被喜歡(否則也不會那么流行),往壞了說,也很難特別被討厭(不要舉鳳姐的例子)。但是,這樣的推薦產(chǎn)生的用戶體驗并不一定好,因為用戶很可能已經(jīng)知道這些熱銷流行的產(chǎn)品,所以得到的信息量很少,并且用戶不會認同這是一種“個性化的”推薦。Mcnee等人已經(jīng)警告大家,盲目崇拜精確性指標可能會傷害推薦系統(tǒng)——因為這樣可能會導(dǎo)致用戶得到一些信息量為0的“精準推薦”并且視野變得越來越狹窄。事實上,讓用戶視野變得狹窄也是協(xié)同過濾算法存在的一個比較主要的缺陷。已經(jīng)有一些實證研究顯示,多樣性、新穎性、偶然性這些從未獲得過如精確性一般重要地位的因素,對于用戶體驗都十分重要——譬如用戶希望音樂推薦更多樣更偶然。

與此同時,應(yīng)用個性化推薦技術(shù)的商家,也希望推薦中有更多的品類出現(xiàn),從而激發(fā)用戶新的購物需求。多樣性和新穎性的要求在大多數(shù)情況下具有一致性,一些商家更喜歡引導(dǎo)用戶關(guān)注一些銷量一般的長尾商品(這些商品的利潤往往更多),這種新穎性的要求往往和多樣性的要求一致。還有一些特別的需求非常強調(diào)多樣性和新穎性,譬如類似于“唯品會”這樣的限時搶購模式或者最近非常流行的團購模式,廣受歡迎的熱銷商品很快就搶購/團購一空,推薦引擎能夠發(fā)揮作用的只能是推薦那些不太被主流消費者關(guān)注的小眾產(chǎn)品。對于新浪微博這類的社會網(wǎng)絡(luò),相當(dāng)部分新用戶很快就不活躍了,很大程度上是因為得不到其他人關(guān)注。類似地,世紀佳緣和百合網(wǎng)這類的網(wǎng)站中,一個用戶如果很長時間沒有機會得到任何異性的青睞,也會失去動力。在這種情況下,我們要考慮的不僅僅是向某些用戶推薦,而是如何把一些至少目前還不是特別受歡迎的用戶推薦出去——這時候,在多樣性和新穎性上表現(xiàn)出色的算法意義更大。最近Ugander等人的工作顯示,一個用戶要向其他若干用戶推廣某種互聯(lián)網(wǎng)活動,在同等推廣力度下(用推薦的朋友數(shù)目衡量),其所選擇的推薦對象的結(jié)構(gòu)多樣性越大,效果往往越好。

保證推薦的多樣性很有價值,但是,推薦多樣的商品和新穎的商品與推薦的精確性之間存在矛盾,因為前者風(fēng)險很大——一個沒什么人看過或者打分較低的東西推薦出手,很可能被用戶憎惡,從而效果更差。很多時候,這是一個兩難的問題,只能通過犧牲多樣性來提高精確性,或者犧牲精確性來提高多樣性。一種可行之策是直接對算法得到的推薦列表進行處理,從而提升其多樣性。Hurley和Zhang就是在推薦算法得到的前N個商品中進行一次組合優(yōu)化,找出L個商品。

圖4:對推薦系統(tǒng)實施攻擊的示意圖。

挑戰(zhàn)五:推薦系統(tǒng)的脆弱性問題。

受推薦系統(tǒng)在電子商務(wù)領(lǐng)域重大的經(jīng)濟利益的驅(qū)動,一些心懷不軌的用戶通過提供一些虛假惡意的行為,故意增加或者壓制某些商品被推薦的可能性。圖4展示了一個攻擊的實例。假設(shè)我們現(xiàn)在要決定是否向用戶h推薦商品7,如果系統(tǒng)中只有那些合法用戶(a-g),通過上表我們發(fā)現(xiàn)用戶a和f與用戶h的品味比較相似,由于用戶a和f都喜歡商品7,那么系統(tǒng)應(yīng)該把商品7推薦給用戶h。如果受到惡意攻擊,系統(tǒng)會發(fā)現(xiàn)大多數(shù)由攻擊者生成的虛假用戶(i-m)的品味都與用戶h相似,并且他們對商品7都給了負面的評價,那么在這種情況下,系統(tǒng)就不會把商品7推薦給用戶h。這樣一來,就達到了那些攻擊者降低對商品7推薦可能性的目的。上面的例子僅僅是眾多攻擊方案中比較簡單的一員,Burke等人2011年的研究報告中就分析了4大種類8種不同的攻擊策略。除了如圖4這樣的簡單方法外,攻擊者還通過將攻擊對象和熱銷商品或特定用戶群喜歡的商品綁定而提高攻擊效果,甚至通過持續(xù)探測猜測系統(tǒng)的計算相似性的算法,從而有針對性地開展攻擊。

從上面的介紹可以看出,一個推薦算法能否在一定程度上保持對惡意攻擊的魯棒性,成為需要認真考慮的一個特征。以最簡單的關(guān)聯(lián)規(guī)則挖掘算法為例,Apriori算法的魯棒性就遠勝于k近鄰算法。有一些技術(shù)已經(jīng)被設(shè)計出來提高推薦系統(tǒng)面對惡意攻擊的魯棒性,譬如通過分析對比真實用戶和疑似惡意用戶之間打分行為模式的差異,提前對惡意行為進行判斷,從而阻止其進入系統(tǒng)或賦予疑似惡意用戶比較低的影響力??傮w來說,這方面的研究相對較少,系統(tǒng)性的分析還很缺乏,反而是攻擊策略層出不窮,有一種“道高一尺,魔高一丈”的感覺。

挑戰(zhàn)六:用戶行為模式的挖掘和利用。

深入挖掘用戶的行為模式有望提高推薦的效果或在更復(fù)雜的場景下進行推薦。譬如說,新用戶和老用戶具有很不一樣的選擇模式:一般而言,新用戶傾向于選擇熱門的商品,而老用戶對于小眾商品關(guān)注更多[29],新用戶所選擇的商品相似度更高,老用戶所選擇的商品多樣性較高。上面曾經(jīng)介紹過的能量擴散和熱傳導(dǎo)的混合算法[19]可以通過一個單參數(shù)調(diào)節(jié)推薦結(jié)果的多樣性和熱門程度,在這種情況下就可以考慮給不同用戶賦予不同的參數(shù)(從算法結(jié)果的個性化到算法本身的個性化),甚至允許用戶自己移動一個滑鈕調(diào)節(jié)這個參數(shù)——當(dāng)用戶想看熱門的時候,算法提供熱門推薦;當(dāng)用戶想找點很酷的產(chǎn)品時,算法也可以提供冷門推薦。

用戶行為的時空統(tǒng)計特性也可以用于提高推薦或者設(shè)計針對特定場景的應(yīng)用(關(guān)于人類行為時空特性的詳細分析請參考文獻)。最簡單的例子是在推薦前考慮用戶從事相關(guān)活動隨時間變化的活躍性。舉個例子,在進行手機個性化閱讀推薦的時候,如果曾經(jīng)的數(shù)據(jù)顯示某個用戶只在7點到8點之間有一個小時左右的手機閱讀行為(可能是上班時在地鐵或者公交車上),那么9點鐘發(fā)送一個電子書閱讀的短信廣告就是很不明智的選擇。從含時數(shù)據(jù)中還可以分析出影響用戶選擇的長期和短期的興趣,通過將這兩種效應(yīng)分離出來,可以明顯提高推薦的精確度。事實上,簡單假設(shè)用戶興趣隨時間按照指數(shù)遞減,也能夠得到改進的推薦效果。隨著移動互聯(lián)網(wǎng)的飛速發(fā)展以及GPS及其他手機定位技術(shù)的發(fā)展和普及,基于位置的服務(wù)成為一個受到學(xué)術(shù)界和業(yè)界廣泛關(guān)注的問題?;谖恢眯畔⒌耐扑]可能會成為個性化推薦的一個研究熱點和重要的應(yīng)用場景,而這個問題的解決需要能夠?qū)τ脩舻囊苿幽J接猩钊肜斫?,包括預(yù)測用戶的移動軌跡和判斷用戶在當(dāng)前位置是否有可能進行餐飲購物活動等,同時還要有定量的辦法去定義用戶之間以及地點之間的相似性。事實上,即便簡單把位置信息作為一個單獨屬性加以考慮,也可以明顯提高廣告推薦和朋友推薦的精確度。特別要提醒各位讀者,知道了用戶的位置信息,并不意味著可以隨時向用戶推薦近處的餐飲購物等等場所,因為頻繁而不精確的推薦會讓用戶有一種被窺探和騷擾的感覺。從這個意義上講,把握進行推薦的時間和地點非常重要!一般而言,在用戶經(jīng)常出沒的地點,譬如工作地點、學(xué)校、住家等等進行推薦的效果往往是比較差的,因為用戶對于這些地點比系統(tǒng)還熟悉,而且很難想象用戶在上下班的路上會有特別地情致購物或者進餐。實際上可以預(yù)測的時空信息往往是商業(yè)價值比較低的,而用戶在吃飯時間去了一個平常不太去的地方,往往有更大的可能是和朋友聚會就餐。這就要求系統(tǒng)更加智能,能夠?qū)τ脩舢?dāng)前行為所蘊含的信息量進行估計(要同時考慮時間和空間),并且在信息量充分大的時候進行推薦。

另外,不同用戶打分的模式也很不一樣,用戶針對不同商品的行為模式也不一樣(想象你在網(wǎng)上下載一首歌和團購房子時的區(qū)別),這些模式都可以挖掘刻畫并利用來提高推薦的效果。總而言之,推薦引擎要做的是針對合適的對象在合適的時間和合適的地方推薦合適的內(nèi)容(4S標準)。通過分析不同用戶在選擇、評價、時間、空間等等行為模式上的不同,我們最終的目的是猜測目標用戶當(dāng)前的意圖,并且針對不同的意圖匹配或組合不同的算法結(jié)果,將其推薦給用戶。這不僅需要更高級的數(shù)據(jù)分析能力,還需要有豐富經(jīng)驗了解業(yè)務(wù)邏輯的工作人員配合完成。這種稱為“情境計算”的思路,有可能較大程度提高推薦及其他信息服務(wù)(譬如搜索)的質(zhì)量,百分點的推薦引擎就是在這種思路下架構(gòu)的。

圖5:推薦系統(tǒng)評價指標一覽。

未完待續(xù):個性化推薦十大挑戰(zhàn)(下)

本文來源:產(chǎn)品中國

更多精彩內(nèi)容,請關(guān)注人人都是產(chǎn)品經(jīng)理微信公眾號或下載App
評論
評論請登錄
  1. 請問最后一張推薦系統(tǒng)評價指標表是你自己總結(jié)的嗎,還是哪本書里總結(jié)的?

    來自浙江 回復(fù)