韓佳良,韓宇棟,劉譞哲,趙耀帥,馮迪*
基于云?端融合的個(gè)性化推薦服務(wù)系統(tǒng)
韓佳良1,韓宇棟1,劉譞哲1,趙耀帥2,3,馮迪2,3*
(1.高可信軟件技術(shù)教育部重點(diǎn)實(shí)驗(yàn)室(北京大學(xué)),北京 100871; 2.中國(guó)民航信息網(wǎng)絡(luò)股份有限公司,北京 101318; 3.中國(guó)民用航空局 民航旅客服務(wù)智能化應(yīng)用技術(shù)重點(diǎn)實(shí)驗(yàn)室,北京 101318)(?通信作者電子郵箱fengdi@travelsky.com.cn)
主流個(gè)性化推薦服務(wù)系統(tǒng)通常利用部署在云端的模型進(jìn)行推薦,因此需要將用戶交互行為等隱私數(shù)據(jù)上傳到云端,這會(huì)造成隱私泄露的隱患。為了保護(hù)用戶隱私,可以在客戶端處理用戶敏感數(shù)據(jù),然而,客戶端存在通信瓶頸和計(jì)算資源瓶頸。針對(duì)上述挑戰(zhàn),設(shè)計(jì)了一個(gè)基于云?端融合的個(gè)性化推薦服務(wù)系統(tǒng)。該系統(tǒng)將傳統(tǒng)的云端推薦模型拆分成用戶表征模型和排序模型,在云端預(yù)訓(xùn)練用戶表征模型后,將其部署到客戶端,排序模型則部署到云端;同時(shí),采用小規(guī)模的循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)抽取用戶交互日志中的時(shí)序信息來(lái)訓(xùn)練用戶表征,并通過(guò)Lasso算法對(duì)用戶表征進(jìn)行壓縮,從而在降低云端和客戶端之間的通信量以及客戶端的計(jì)算開(kāi)銷的同時(shí)防止推薦準(zhǔn)確率的下跌?;赗ecSys Challenge 2015數(shù)據(jù)集進(jìn)行了實(shí)驗(yàn),結(jié)果表明,所設(shè)計(jì)系統(tǒng)的推薦準(zhǔn)確率和GRU4REC模型相當(dāng),而壓縮后的用戶表征體積僅為壓縮前的34.8%,計(jì)算開(kāi)銷較低。
個(gè)性化推薦服務(wù)系統(tǒng);云?端融合;用戶表征模型;隱私保護(hù);循環(huán)神經(jīng)網(wǎng)絡(luò)
隨著基于信息流的應(yīng)用程序不斷增多,互聯(lián)網(wǎng)信息的數(shù)量和種類快速增長(zhǎng),用戶通常需要花費(fèi)大量時(shí)間和精力才能找到自己偏好的內(nèi)容,而這種瀏覽大量無(wú)關(guān)信息的過(guò)程會(huì)加重用戶的信息過(guò)載負(fù)擔(dān)。為了解決這個(gè)問(wèn)題,個(gè)性化推薦服務(wù)系統(tǒng)應(yīng)運(yùn)而生。個(gè)性化推薦服務(wù)系統(tǒng)是一種信息過(guò)濾系統(tǒng),它可以根據(jù)用戶畫(huà)像或歷史行為挖掘用戶的興趣愛(ài)好,從而預(yù)測(cè)用戶對(duì)推薦項(xiàng)目的偏好或評(píng)分,并有針對(duì)性地為用戶推薦內(nèi)容。
如圖1所示,目前主流的個(gè)性化推薦服務(wù)系統(tǒng)整體上基于云端服務(wù)器,將推薦項(xiàng)目特征、用戶特征、用戶交互日志等信息輸入到部署在云端的模型中進(jìn)行推薦。基于云端的推薦服務(wù)系統(tǒng)有泛化性能好、容易部署、支持絕大多數(shù)推薦算法等優(yōu)點(diǎn),但存在如下缺陷:需要將用戶交互行為等隱私數(shù)據(jù)上傳到云端,存在隱私泄露的隱患。此外,隨著以歐盟通用數(shù)據(jù)保護(hù)條例(General Data Protection Regulation, GDPR)為代表的相關(guān)法律法規(guī)的出臺(tái),上傳用戶數(shù)據(jù)到云端來(lái)進(jìn)行個(gè)性化推薦還可能帶來(lái)法律方面的風(fēng)險(xiǎn)。
圖1 主流個(gè)性化推薦服務(wù)系統(tǒng)的結(jié)構(gòu)
1992年,Goldberg等[1]提出了基于用戶的協(xié)同過(guò)濾算法,其核心思想是歷史行為相似的用戶更傾向于購(gòu)買同一商品;2001年,Sarwar等[2]提出了基于項(xiàng)目的協(xié)同過(guò)濾算法,其核心思想是用戶購(gòu)買歷史相似的商品更容易被同一個(gè)用戶購(gòu)買。協(xié)同過(guò)濾算法的優(yōu)點(diǎn)是不需要利用推薦項(xiàng)目的內(nèi)容特征,能有效利用其他相似用戶的反饋信息,有推薦新內(nèi)容(與用戶歷史記錄有差異的內(nèi)容)的能力,可以發(fā)現(xiàn)用戶潛在的偏好;但協(xié)同過(guò)濾算法存在冷啟動(dòng)問(wèn)題、稀疏性問(wèn)題和延展性問(wèn)題。
另一種典型的推薦方法是基于內(nèi)容的推薦,其核心思想是根據(jù)物品的特征挖掘物品的相似性,從而基于用戶的歷史記錄推薦給用戶相似的物品。基于內(nèi)容的推薦算法優(yōu)點(diǎn)在于用戶之間的獨(dú)立性以及推薦項(xiàng)目的可解釋性,解決了物品冷啟動(dòng)問(wèn)題;但基于內(nèi)容的推薦算法的缺點(diǎn)在于物品特征有限或難以抽取、無(wú)法挖掘用戶的潛在偏好、無(wú)法解決用戶冷啟動(dòng)等問(wèn)題。
隨著深度學(xué)習(xí)的興起,研究者著力于將深度學(xué)習(xí)相關(guān)技術(shù)應(yīng)用于推薦系統(tǒng)中,以提升推薦系統(tǒng)的性能。盡管如此,多數(shù)基于深度學(xué)習(xí)的方法仍然是協(xié)同過(guò)濾和(或)基于內(nèi)容的推薦算法的變種和(或)混合。
2016年,來(lái)自Google的Cheng等[3]提出了用于推薦系統(tǒng)的Wide & Deep Learning算法。Wide模型輸入獨(dú)熱編碼后的二值特征,從歷史信息中發(fā)現(xiàn)推薦項(xiàng)目或特征之間的相關(guān)性,推薦結(jié)果往往是和歷史記錄中的項(xiàng)目直接相關(guān)的項(xiàng)目;Deep模型輸入連續(xù)特征和可以產(chǎn)生低維稠密表征的連續(xù)特征,學(xué)習(xí)新的特征組合,可以推薦歷史記錄中從未出現(xiàn)過(guò)相似的項(xiàng)目。聯(lián)合訓(xùn)練Wide模型和Deep模型,就可以讓推薦算法同時(shí)具有記憶能力和泛化能力。為了端到端地學(xué)習(xí)高階和低階的交叉特征,Guo等[4]提出了DeepFM模型。DeepFM模型用分解機(jī)(Factorization Machine, FM)模型替代Wide & Deep模型中的Wide模型,F(xiàn)M模型和Deep模型共享高維稀疏特征輸入和低維稠密表征,F(xiàn)M模型自動(dòng)提取二階交叉特征,Deep模型自動(dòng)提取高階交叉特征。
主流推薦系統(tǒng)平臺(tái)使用的用戶數(shù)據(jù)往往是時(shí)序數(shù)據(jù),而傳統(tǒng)的基于內(nèi)容的推薦算法和協(xié)同過(guò)濾算法在刻畫(huà)時(shí)序數(shù)據(jù)時(shí)存在明顯的缺陷:每個(gè)推薦項(xiàng)目相互獨(dú)立,不能建模一段時(shí)間內(nèi)用戶對(duì)內(nèi)容的連續(xù)偏好信息。2016年,Hidasi等[5]提出了GRU4REC模型,首次將循環(huán)神經(jīng)網(wǎng)絡(luò)(Recurrent Neural Network, RNN)應(yīng)用于推薦系統(tǒng),用于抽取用戶對(duì)內(nèi)容的偏好時(shí)序信息。將一段時(shí)間內(nèi)的點(diǎn)擊序列作為模型輸入,每一個(gè)推薦項(xiàng)目被點(diǎn)擊的預(yù)測(cè)概率作為模型輸出。模型損失函數(shù)有逐點(diǎn)排序損失(交叉熵)、逐對(duì)排序損失(基于矩陣分解的貝葉斯個(gè)性化排序(Bayesian Personalized Ranking ,BPR)和基于正則估計(jì)的TOP1)。
近年來(lái),研究者著力于改進(jìn)GRU4REC模型,以達(dá)到更好的時(shí)序推薦性能。例如,Hidasi等[6]將圖像和文本等非結(jié)構(gòu)化信息作為特征,Bogina等[7]考慮到了用戶在推薦項(xiàng)目上的停留時(shí)間,Jannach等[8]將K近鄰算法和RNN模型的推薦結(jié)果進(jìn)行結(jié)合,他們都實(shí)現(xiàn)了超過(guò)原本GRU4REC模型的推薦效果。
為了實(shí)現(xiàn)保護(hù)用戶隱私的需求,本文將云端推薦模型中處理用戶敏感數(shù)據(jù)的部分拆分成獨(dú)立的模塊,且該模塊的輸出不包含敏感的用戶隱私信息。其中,敏感的隱私信息指包含用戶元信息、瀏覽行為、點(diǎn)擊行為、收藏行為、加購(gòu)物車行為等數(shù)據(jù)。將這個(gè)獨(dú)立處理用戶敏感數(shù)據(jù)的模塊遷移到客戶端運(yùn)行。將客戶端的用戶數(shù)據(jù)處理模塊輸出的結(jié)果傳輸?shù)皆贫?,與云端推薦模型協(xié)同完成推薦。
然而,這樣的做法面臨兩點(diǎn)挑戰(zhàn):首先,由于客戶端的帶寬有限,客戶端與云端之間不能進(jìn)行大規(guī)模的數(shù)據(jù)通信;其次,由于客戶端的計(jì)算資源有限,客戶端處理用戶數(shù)據(jù)的過(guò)程不能太復(fù)雜,以避免造成過(guò)大的計(jì)算負(fù)載。
針對(duì)上述需求和挑戰(zhàn),受輸入法詞預(yù)測(cè)領(lǐng)域的DeepType[9]啟發(fā),本文設(shè)計(jì)了一個(gè)基于云?端融合的個(gè)性化推薦服務(wù)系統(tǒng),在客戶端處理用戶敏感數(shù)據(jù),并與云端協(xié)同完成推薦。該系統(tǒng)將傳統(tǒng)的云端推薦模型拆分成用戶表征模型和排序模型,在云端預(yù)訓(xùn)練用戶表征模型后,將其部署到客戶端,排序模型則部署到云端。本文采用小規(guī)模的RNN抽取用戶交互日志中的時(shí)序信息來(lái)訓(xùn)練用戶表征,并通過(guò)Lasso算法對(duì)用戶表征進(jìn)行壓縮,從而在推薦準(zhǔn)確率同現(xiàn)有基于云的模型相當(dāng)?shù)那疤嵯?,減少云端和客戶端之間的通信量,降低客戶端的計(jì)算開(kāi)銷。
本文的主要工作包括:
1)設(shè)計(jì)了一個(gè)基于云?端融合的個(gè)性化推薦服務(wù)系統(tǒng),緩解了現(xiàn)有方法存在的用戶隱私泄露問(wèn)題。
2)在不降低推薦準(zhǔn)確率的前提下,通過(guò)對(duì)用戶表征的稀疏化壓縮和減小RNN規(guī)模,降低了云端與客戶端之間的通信成本和客戶端模型的計(jì)算資源占用。
3)在RecSys Challenge 2015數(shù)據(jù)集對(duì)實(shí)現(xiàn)的系統(tǒng)進(jìn)行了性能評(píng)估,驗(yàn)證了系統(tǒng)的有效性。
本文將用戶與基于云?端融合的個(gè)性化推薦服務(wù)系統(tǒng)之間的交互分為三階段:用戶首次使用推薦服務(wù)、用戶產(chǎn)生交互和用戶請(qǐng)求推薦內(nèi)容。其中,第一階段對(duì)于每個(gè)用戶而言只需進(jìn)行一次,第二階段在用戶每次產(chǎn)生一定量的交互記錄后便運(yùn)行一次,第三階段在用戶每次請(qǐng)求推薦時(shí)運(yùn)行一次。
在用戶首次使用推薦服務(wù)時(shí):在云端,利用公共的用戶交互記錄(不涉及用戶隱私)預(yù)訓(xùn)練隨機(jī)初始化的用戶表征模型,得到全局的用戶表征模型;在客戶端,下載全局的用戶表征模型。
在用戶產(chǎn)生交互記錄時(shí):在客戶端,請(qǐng)求訪問(wèn)內(nèi)容的同時(shí),從云端下載訪問(wèn)的項(xiàng)目對(duì)應(yīng)表征,用于訓(xùn)練(微調(diào))預(yù)訓(xùn)練過(guò)的全局的用戶表征模型,得到個(gè)性化的用戶表征模型,從用戶表征模型的輸出中提取用戶表征。注意微調(diào)時(shí)使用的是本地的隱私數(shù)據(jù),因?yàn)槭褂糜脩魧?shí)時(shí)產(chǎn)生的行為數(shù)據(jù)有利于提高模型預(yù)測(cè)準(zhǔn)確率,且此數(shù)據(jù)只在客戶端存儲(chǔ)和使用,隱私泄露風(fēng)險(xiǎn)低。
在用戶請(qǐng)求推薦內(nèi)容時(shí):在客戶端,上傳最近更新的用戶表征,接收推薦結(jié)果;在云端,將用戶表征、推薦項(xiàng)目表征庫(kù)輸入到推薦模型,得到推薦結(jié)果。
基于云?端融合的個(gè)性化推薦服務(wù)系統(tǒng)的整體結(jié)構(gòu)如圖2所示。
圖2 基于云?端融合的個(gè)性化推薦服務(wù)系統(tǒng)的結(jié)構(gòu)
受GRU4REC[5]啟發(fā),本文采用一種RNN的變種——門控循環(huán)單元(Gated Recurrent Unit, GRU),建模一次會(huì)話過(guò)程中用戶的行為特征,進(jìn)而提取用戶表征,作為部署在客戶端的個(gè)性化的用戶表征模型。因此,用戶表征模型是面向推薦調(diào)整過(guò)的GRU網(wǎng)絡(luò),其輸出為用戶表征。
如圖3,用戶表征模型輸入為一段會(huì)話中的項(xiàng)目(如商品)序列,在嵌入層將項(xiàng)目ID轉(zhuǎn)化為低維稠密表征,在GRU神經(jīng)元層挖掘序列信息,將最后一個(gè)項(xiàng)目對(duì)應(yīng)的GRU輸出作為用戶表征輸出,其含義為GRU網(wǎng)絡(luò)預(yù)測(cè)的每一個(gè)項(xiàng)目是下一個(gè)項(xiàng)目的概率。若使用多個(gè)GRU層,那么下一層GRU的輸入是上一層GRU的隱含狀態(tài)。由于GRU最初不是用來(lái)建模推薦系統(tǒng)用戶行為的,且在客戶端訓(xùn)練GRU需要保證用戶體驗(yàn)不受影響,本文對(duì)訓(xùn)練策略進(jìn)行會(huì)話并行的最小批次、負(fù)樣本采樣、用于排序的損失函數(shù)、減小GRU規(guī)模等優(yōu)化,以適應(yīng)推薦任務(wù)并提高訓(xùn)練效率。
圖3 用戶表征模型的結(jié)構(gòu)
1.2.1會(huì)話并行的最小批次
1.2.2負(fù)樣本采樣
主流推薦系統(tǒng)包含的推薦項(xiàng)目都是海量的,數(shù)據(jù)集中用戶點(diǎn)擊的項(xiàng)目為正樣本,那么全部項(xiàng)目集合中的其他項(xiàng)目均為負(fù)樣本,顯然,在訓(xùn)練GRU時(shí),不能對(duì)全部負(fù)樣本進(jìn)行打分,而是需要對(duì)負(fù)樣本進(jìn)行合理的采樣。一個(gè)基線的取樣方法是隨機(jī)取樣,即假設(shè)用戶沒(méi)有點(diǎn)擊某個(gè)項(xiàng)目是因?yàn)樗麤](méi)有發(fā)現(xiàn)這個(gè)項(xiàng)目,但同樣存在用戶因?yàn)椴幌矚g這個(gè)項(xiàng)目而故意不去點(diǎn)擊它的可能。為了減小這種違背取樣假設(shè)的可能性,可以采用按項(xiàng)目流行度采樣,即負(fù)樣本采樣概率與其流行度成正比。一個(gè)取巧的方法是將一次訓(xùn)練批次中的其他項(xiàng)目作為負(fù)樣本,這樣做的好處在于:沒(méi)有單獨(dú)的采樣步驟,節(jié)省計(jì)算時(shí)間;實(shí)現(xiàn)方便,便于矩陣加速;同時(shí)該方法也符合基于流行度采樣,因?yàn)橄乱粋€(gè)產(chǎn)品是同一個(gè)批次中其他項(xiàng)目的概率正比于它的流行度。
1.2.3用于排序的損失函數(shù)
常見(jiàn)的排序問(wèn)題損失函數(shù)有基于點(diǎn)的(pointwise)、基于對(duì)的(pairwise)和基于列表的(listwise)?;邳c(diǎn)的方法為每個(gè)項(xiàng)目獨(dú)立打分,并保證相關(guān)項(xiàng)目的得分盡量高。基于對(duì)的方法需要對(duì)比正負(fù)樣本的排名,并保證正樣本的得分高于負(fù)樣本。基于列表的方法將全部項(xiàng)目的得分和正確排序的列表進(jìn)行對(duì)比,并保證全部正樣本的得分高于負(fù)樣本。由于基于列表的排序方法涉及排序,計(jì)算復(fù)雜性更高,且由于本文的推薦系統(tǒng)場(chǎng)景下只存在一個(gè)正樣本,基于列表的方法會(huì)退化為基于對(duì)的方法,因此本文只實(shí)現(xiàn)了基于點(diǎn)的排序損失函數(shù)和基于對(duì)的排序損失函數(shù)。
基于點(diǎn)的排序損失函數(shù)為交叉熵(Cross Entropy, CE)函數(shù):
其中:正樣本為1,負(fù)樣本為0。
基于對(duì)的排序損失函數(shù):
BPR[10]:
TOP1[5]:
其中:前項(xiàng)表示對(duì)相關(guān)項(xiàng)目的相對(duì)排名的正則化近似,后項(xiàng)是正則化項(xiàng),保證負(fù)樣本的得分接近于0。
為了解決客戶端上處理用戶數(shù)據(jù)的過(guò)程不能占用過(guò)多計(jì)算資源的問(wèn)題,本文使用1層100個(gè)隱藏單元的GRU網(wǎng)絡(luò)作為用戶表征模型。第2章中的實(shí)驗(yàn)結(jié)果表明,即使只使用單層GRU網(wǎng)絡(luò),且限制GRU隱藏狀態(tài)維數(shù)遠(yuǎn)小于輸入層維數(shù),GRU仍然能夠勝任挖掘用戶訪問(wèn)歷史中的時(shí)序信息、提取用戶表征的任務(wù),并達(dá)到接近包含更多層或更多隱藏單元的GRU網(wǎng)絡(luò)的推薦準(zhǔn)確率。
本文將部署在云端的排序模型實(shí)現(xiàn)為用戶表征和推薦項(xiàng)目表征的內(nèi)積運(yùn)算,并將內(nèi)積結(jié)果排序,估計(jì)項(xiàng)目和用戶之間的相關(guān)性,返回得分最高的若干個(gè)項(xiàng)目作為推薦結(jié)果。
用內(nèi)積運(yùn)算作為排序模型主要考慮到以下兩點(diǎn)因素:
一是真實(shí)環(huán)境下的實(shí)時(shí)推薦系統(tǒng)的性能要求。推薦系統(tǒng)不能提前計(jì)算全部用戶和全部項(xiàng)目之間的相關(guān)性,因?yàn)橛脩艉晚?xiàng)目都在不斷更新和替換,而且云端服務(wù)器并沒(méi)有足夠的空間為每一組(用戶,項(xiàng)目)對(duì)存儲(chǔ)其相關(guān)性。這就要求推薦系統(tǒng)在很短的時(shí)間內(nèi)計(jì)算用戶和項(xiàng)目之間的相關(guān)性得分,而內(nèi)積運(yùn)算滿足這樣的需求[11]。
二是保護(hù)用戶隱私的要求。提出基于云?端融合的個(gè)性化推薦系統(tǒng)的動(dòng)機(jī)是避免用戶隱私泄露,這要求推薦系統(tǒng)不能上傳用戶ID,只能上傳用戶表征。進(jìn)一步地,云端無(wú)法根據(jù)用戶ID恢復(fù)出每個(gè)用戶點(diǎn)擊項(xiàng)目的歷史記錄,故云端不支持訓(xùn)練基于用戶ID的推薦算法或排序算法,如協(xié)同過(guò)濾算法[1-2]、矩陣低秩分解的相關(guān)算法[4]、LambdaMART[12]等基于機(jī)器學(xué)習(xí)的排序算法,都由于用戶ID的缺失而不支持云端訓(xùn)練。
由于客戶端的帶寬有限,客戶端與云端之間不能進(jìn)行大規(guī)模的數(shù)據(jù)通信,同時(shí)要避免因降低通信量導(dǎo)致的推薦系統(tǒng)準(zhǔn)確率下降。本文通過(guò)稀疏編碼(sparse encoding)的方式來(lái)保留用戶表征中的主要信息,利用Lasso算法對(duì)用戶表征進(jìn)行稀疏化。
“哪能由著你?”賽十娘又笑出聲,“還是順著他們,少吃點(diǎn)兒虧。莫像河浦那個(gè)女孩兒,烈得很。越烈越吃虧?!?/p>
然后,在損失函數(shù)中加入Lasso懲罰項(xiàng),限制用戶表征的大小和稠密度:
為了測(cè)試基于云?端融合的個(gè)性化推薦服務(wù)系統(tǒng)的性能,本文針對(duì)推薦準(zhǔn)確率、用戶表征的壓縮效果、客戶端模型的運(yùn)行時(shí)性能這三個(gè)內(nèi)容的多個(gè)指標(biāo)對(duì)該系統(tǒng)進(jìn)行評(píng)測(cè)。實(shí)驗(yàn)數(shù)據(jù)集為RecSys Challenge 2015,該數(shù)據(jù)集是電商網(wǎng)站大量用戶長(zhǎng)時(shí)間的點(diǎn)擊流數(shù)據(jù)。
2.1.1數(shù)據(jù)集
RecSys Challenge 2015數(shù)據(jù)集是電商網(wǎng)站在不同時(shí)間段(即會(huì)話)內(nèi)連續(xù)發(fā)生的用戶點(diǎn)擊流時(shí)序數(shù)據(jù),本文只用了點(diǎn)擊流的訓(xùn)練數(shù)據(jù)。該數(shù)據(jù)集的域包括會(huì)話ID、項(xiàng)目ID、時(shí)間戳、項(xiàng)目類別。由于同一次會(huì)話只對(duì)應(yīng)一個(gè)用戶,本文將會(huì)話ID看成用戶ID,即不同的會(huì)話對(duì)應(yīng)不同的用戶。
2.1.2數(shù)據(jù)預(yù)處理
由于任務(wù)設(shè)定為在時(shí)序數(shù)據(jù)上的推薦,本文首先過(guò)濾掉了長(zhǎng)度為1的會(huì)話。將會(huì)話按時(shí)間排序,先用前6個(gè)月的7 966 124個(gè)會(huì)話對(duì)應(yīng)的在37 386個(gè)項(xiàng)目上的31 636 669次點(diǎn)擊進(jìn)行訓(xùn)練,然后用后續(xù)的數(shù)據(jù)進(jìn)行測(cè)試。本文不會(huì)把一個(gè)會(huì)話從中間分成訓(xùn)練集和測(cè)試集,即每個(gè)會(huì)話一定會(huì)完整地屬于訓(xùn)練集或者完整地屬于測(cè)試集。過(guò)濾掉只在測(cè)試集中出現(xiàn)而沒(méi)有在訓(xùn)練集中出現(xiàn)的項(xiàng)目。在上述過(guò)濾之后,再次過(guò)濾掉長(zhǎng)度為1的會(huì)話。這樣就得到了包含15 188個(gè)會(huì)話對(duì)應(yīng)的70 826次點(diǎn)擊的測(cè)試集。
2.1.3實(shí)驗(yàn)配置
本文在GPU服務(wù)器環(huán)境下評(píng)測(cè)推薦準(zhǔn)確率和用戶表征壓縮效果,在個(gè)人筆記本電腦的瀏覽器環(huán)境下評(píng)測(cè)客戶端模型的運(yùn)行時(shí)性能。服務(wù)器和人筆記本電腦(Hasee T97E筆記本)的配置如表1所示。上述實(shí)驗(yàn)環(huán)境的分配符合基于云?端融合的個(gè)性化推薦系統(tǒng)在真實(shí)環(huán)境下的使用場(chǎng)景,因此評(píng)測(cè)實(shí)驗(yàn)可以反映該系統(tǒng)在真實(shí)環(huán)境下的性能表現(xiàn)。
表1 服務(wù)器與個(gè)人計(jì)算機(jī)的配置
2.2.1評(píng)測(cè)指標(biāo)
考慮到用戶感興趣的項(xiàng)目在推薦列表中的排名,可以使用MRR@20作為評(píng)測(cè)指標(biāo),即用戶感興趣的項(xiàng)目在推薦列表中的倒數(shù)排名的平均值。若用戶感興趣的項(xiàng)目排名超過(guò)20,MRR置為0。MRR比較貼合排名靠后的項(xiàng)目需要滾動(dòng)屏幕才能看到、絕對(duì)排名比較重要的場(chǎng)景。
2.2.2基線模型
本文把基于云?端融合的個(gè)性化推薦服務(wù)系統(tǒng)和一系列常用的基線模型進(jìn)行對(duì)比:
1)POP:總是推薦訓(xùn)練集中最流行(即點(diǎn)擊次數(shù)最多)的項(xiàng)目。
2)S?POP:總是推薦當(dāng)前會(huì)話中最流行的項(xiàng)目。
3)Item?KNN[13]:推薦和當(dāng)前會(huì)話中最后一個(gè)項(xiàng)目最相似的項(xiàng)目。相似度定義為兩個(gè)項(xiàng)目出現(xiàn)在不同會(huì)話中的余弦相似度,即兩個(gè)項(xiàng)目共同出現(xiàn)的會(huì)話數(shù)除以單獨(dú)出現(xiàn)的會(huì)話數(shù)的乘積的平方根,且加入了正則化項(xiàng)。
4)BPR?MF[10]:BPR?MF通過(guò)隨機(jī)梯度下降優(yōu)化基于對(duì)的(pairwise)排序損失函數(shù)。由于新的會(huì)話尚未預(yù)先計(jì)算特征向量,矩陣分解算法不能直接用于基于會(huì)話的推薦場(chǎng)景??梢园旬?dāng)前會(huì)話中已經(jīng)點(diǎn)擊的項(xiàng)目特征向量的平均值作為用戶特征向量,來(lái)讓該算法重新適用。
5)GRU4REC[5]:GRU4REC將RNN應(yīng)用于推薦系統(tǒng),用于抽取用戶對(duì)內(nèi)容的偏好時(shí)序信息。模型輸入一段時(shí)間內(nèi)的點(diǎn)擊序列,輸出每一個(gè)推薦項(xiàng)目被點(diǎn)擊的預(yù)測(cè)概率。模型損失函數(shù)有逐點(diǎn)排序損失(交叉熵)和逐對(duì)排序損失(基于矩陣分解的BPR和基于正則估計(jì)的TOP1)。
如表2,基于RNN的GRU4REC模型的推薦準(zhǔn)確率顯著高于其他方法,原因是RNN可以提取到用戶歷史行為數(shù)據(jù)中的時(shí)序信息,基于更多的信息量對(duì)未來(lái)行為進(jìn)行推測(cè)。
2.2.3超參數(shù)設(shè)置
用戶表征GRU網(wǎng)絡(luò)的結(jié)構(gòu)和超參數(shù)大部分參照了GRU4REC模型[5]中給出的最優(yōu)組合:GRU層前面沒(méi)有嵌入層,GRU為1層,GRU單元數(shù)為100,GRU層后沒(méi)有前饋神經(jīng)網(wǎng)絡(luò)層;批量大?。╞atch size)為50,優(yōu)化算法為adagrad,學(xué)習(xí)率為0.01,momentum為0,dropout率為0.5,輸出層激活函數(shù)為tanh。
2.2.4實(shí)驗(yàn)結(jié)果分析
如表3,在測(cè)試集上分別對(duì)3種損失函數(shù)的推薦準(zhǔn)確率進(jìn)行測(cè)試,其中:w/o表示without,即未進(jìn)行Lasso處理的模型;w/表示with,即有Lasso處理的模型??梢园l(fā)現(xiàn),對(duì)于未進(jìn)行Lasso處理的模型,采用TOP1損失函數(shù)的準(zhǔn)確率最高;對(duì)于進(jìn)行Lasso處理的模型,采用交叉熵?fù)p失函數(shù)的準(zhǔn)確率最高。Lasso的加入對(duì)推薦算法的準(zhǔn)確率影響很小,甚至對(duì)于交叉熵和BPR而言還會(huì)讓MRR@20小幅提升,這可能是Lasso帶來(lái)了一定程度的正則化效果,避免了模型過(guò)擬合。
表3 本文模型的推薦準(zhǔn)確率
將本文模型和基線模型中推薦效果最好的以TOP1為損失函數(shù)的GRU4REC模型對(duì)比,結(jié)果如表4。可以看出,Lasso算法的加入對(duì)基于GRU的推薦模型的準(zhǔn)確率影響較小,對(duì)于交叉熵?fù)p失函數(shù)甚至達(dá)到了和未進(jìn)行Lasso處理的模型相當(dāng)?shù)臏?zhǔn)確率。
表4 本文模型和GRU4REC的準(zhǔn)確率
綜上所述,基于云?端融合的個(gè)性化推薦系統(tǒng)可以達(dá)到和最優(yōu)基線模型相當(dāng)?shù)耐扑]準(zhǔn)確率。
2.3.1評(píng)測(cè)指標(biāo)
為了衡量Lasso對(duì)用戶表征的稀疏化效果,本文定義稠密度作為評(píng)測(cè)指標(biāo):
為了衡量稀疏編碼對(duì)用戶表征的壓縮效果,本文定義壓縮率作為評(píng)測(cè)指標(biāo):
2.3.2實(shí)驗(yàn)結(jié)果分析
如表5,在測(cè)試集上分別對(duì)3種損失函數(shù)的用戶表征的壓縮效果進(jìn)行測(cè)試。可以看出,對(duì)于進(jìn)行Lasso處理的模型,采用交叉熵?fù)p失函數(shù)的稀疏化效果和壓縮效果最好。同時(shí),Lasso的加入會(huì)產(chǎn)生很好的用戶表征稀疏化效果和壓縮效果,對(duì)于交叉熵和BPR損失函數(shù)而言,用戶表征中值為0的維度的比例都超過(guò)了75%,用戶表征的體積壓縮都在65%左右。
綜上所述,基于云?端融合的個(gè)性化推薦系統(tǒng)可以產(chǎn)生很好的用戶表征稀疏化效果和壓縮效果,從而大幅降低客戶端和云端之間的通信成本。
表5 測(cè)試集上的用戶表征壓縮效果
2.4.1評(píng)測(cè)指標(biāo)
為了從多角度評(píng)測(cè)客戶端模型運(yùn)行時(shí)性能和刻畫(huà)用戶體驗(yàn),選取如下評(píng)測(cè)指標(biāo):CPU占用率、CPU內(nèi)存占用、GPU內(nèi)存占用和單次用戶表征更新時(shí)間。
2.4.2實(shí)驗(yàn)結(jié)果分析
客戶端的用戶表征模型每收集一個(gè)批次(50條)用戶交互記錄,就對(duì)模型進(jìn)行一次微調(diào),并根據(jù)個(gè)性化的用戶表征模型更新稀疏化的用戶表征。將客戶端的用戶表征模型部署在個(gè)人筆記本電腦的瀏覽器上,評(píng)測(cè)用戶表征更新時(shí)的系統(tǒng)性能,實(shí)驗(yàn)結(jié)果如表6所示。
從表6可以發(fā)現(xiàn),CPU占用率并沒(méi)有達(dá)到在服務(wù)器上訓(xùn)練模型時(shí)的100%,而只有62%,這可能是由于TensorFlow.js對(duì)瀏覽器上訓(xùn)練模型的CPU占用率的某種限制,也可能是Chrome瀏覽器對(duì)單個(gè)網(wǎng)頁(yè)的CPU占用率的某種限制。
CPU內(nèi)存占用為1 030.6 MB,而64-bit Chrome對(duì)單個(gè)網(wǎng)頁(yè)的內(nèi)存限制為1.4~4 GB(取決于Chrome內(nèi)核版本和配置文件),故客戶端模型的內(nèi)存占用沒(méi)有超過(guò)瀏覽器對(duì)單個(gè)進(jìn)程的內(nèi)存限制。StackOverFlow建議前端開(kāi)發(fā)者控制單個(gè)網(wǎng)頁(yè)內(nèi)存到1.2 GB以下,故客戶端模型的內(nèi)存占用沒(méi)有超過(guò)單個(gè)網(wǎng)頁(yè)占用內(nèi)存的建議值。
GPU內(nèi)存占用為661 MiB,相當(dāng)于8.14%的GPU占用率,這對(duì)于用戶來(lái)說(shuō)是可以接受的。但對(duì)于沒(méi)有獨(dú)立顯卡或獨(dú)立顯卡顯存低于661 MiB的個(gè)人筆記本電腦,無(wú)法使用GPU加速模型訓(xùn)練,這會(huì)增加用戶表征更新所需時(shí)間。
一次用戶表征更新所需時(shí)間僅53 s,這一方面是由于本文減小了GRU網(wǎng)絡(luò)的規(guī)模,另一方面是由于單個(gè)客戶端用戶交互記錄相對(duì)較少。此外,在一個(gè)更新周期內(nèi)的其他時(shí)間,系統(tǒng)不會(huì)訓(xùn)練用戶表征模型,而只收集用戶交互記錄,直到湊滿1個(gè)更新批次,在此期間,客戶端模型的CPU/GPU占用大幅下降,幾乎不消耗系統(tǒng)資源。
表6 模型運(yùn)行時(shí)性能的評(píng)測(cè)指標(biāo)
綜上所述,基于云?端融合的個(gè)性化推薦系統(tǒng)的客戶端模型在更新用戶表征時(shí),占用的計(jì)算資源在用戶可接受的范圍之內(nèi),且更新用戶表征消耗的時(shí)間很短,不會(huì)對(duì)用戶體驗(yàn)造成顯著影響。
本文設(shè)計(jì)了一個(gè)基于云?端融合的個(gè)性化推薦服務(wù)系統(tǒng),并基于TensorFlow.js和TensorFlow面向?yàn)g覽器平臺(tái)進(jìn)行了實(shí)現(xiàn)??蛻舳死糜脩綦[私數(shù)據(jù)微調(diào)用戶表征模型,然后將提取出的用戶表征上傳到云端。云端根據(jù)用戶表征和項(xiàng)目表征之間的相關(guān)性進(jìn)行排序,將推薦結(jié)果返回到客戶端。本文采用1層100個(gè)隱藏單元的GRU網(wǎng)絡(luò)訓(xùn)練用戶表征,并通過(guò)Lasso算法對(duì)其進(jìn)行稀疏編碼,得到壓縮的用戶表征,從而降低了云端和客戶端之間的通信成本和客戶端的計(jì)算開(kāi)銷。
本文基于RecSys Challenge 2015數(shù)據(jù)集進(jìn)行實(shí)驗(yàn),從推薦準(zhǔn)確率、用戶表征壓縮效果、客戶端模型運(yùn)行時(shí)性能三個(gè)方面對(duì)實(shí)現(xiàn)的系統(tǒng)進(jìn)行了性能評(píng)估。實(shí)驗(yàn)結(jié)果表明,推薦準(zhǔn)確率(Recall@20=0.618,MRR@20=0.266)與最佳基線模型相當(dāng),壓縮后的用戶表征體積僅為壓縮前的34.8%。客戶端負(fù)載方面,客戶端的用戶表征模型單次表征更新時(shí)間為53 s,在用戶表征更新期間,CPU占用率為62.0%,內(nèi)存占用為1 030.6 MB,顯存占用為661 MiB,占用設(shè)備的計(jì)算資源在用戶可以接受的范圍之內(nèi)。
未來(lái)可能的工作方向包括:
1)本文以基于RNN的推薦模型為例實(shí)現(xiàn)云?端融合,但云?端融合的思想和對(duì)于通信成本、資源占用等挑戰(zhàn)的解決方案是通用的。未來(lái)可以考慮在不同已有推薦系統(tǒng)中實(shí)現(xiàn)云?端融合,形成面向推薦系統(tǒng)的云?端融合通用解決方案。
2)考慮到在真實(shí)環(huán)境下實(shí)時(shí)推薦系統(tǒng)的性能和保護(hù)用戶隱私的要求,本文在云端的推薦排序模型只是對(duì)用戶表征和項(xiàng)目表征進(jìn)行簡(jiǎn)單的內(nèi)積操作并排序。由于不能獲取用戶ID的限制,基于云?端融合的個(gè)性化推薦系統(tǒng)可能從根本上無(wú)法在云端部署基于機(jī)器學(xué)習(xí)的排序模型。未來(lái)可以考慮設(shè)計(jì)基于聯(lián)邦學(xué)習(xí)[14-15]等分布式機(jī)器學(xué)習(xí)系統(tǒng)的個(gè)性化推薦系統(tǒng)。
3)本文通過(guò)顯式減小RNN規(guī)模的方式來(lái)降低客戶端模型的計(jì)算資源占用,未來(lái)可以考慮嘗試成熟的模型壓縮算法[16-18]和訓(xùn)練加速算法[19]。
4)本文采用將用戶表征上傳到云端的方式完成推薦,然而,攻擊者可能通過(guò)用戶表征推測(cè)出用戶的身份和興趣,增加了隱私泄露的風(fēng)險(xiǎn)。一種可行的解決方案是將推薦項(xiàng)目的集合下載到客戶端,只在客戶端完成推薦,然而推薦項(xiàng)目集合的大小遠(yuǎn)大于用戶可以承受的通信開(kāi)銷和存儲(chǔ)開(kāi)銷。未來(lái)可以考慮通過(guò)過(guò)濾算法[1-2]縮小推薦項(xiàng)目集合,將候選集下載到客戶端,與用戶表征協(xié)同完成排序和推薦,進(jìn)一步降低隱私泄露風(fēng)險(xiǎn)。
[1] GOLDBERG D, NICHOLS D, OKI B M, et al. Using collaborative filtering to weave an information tapestry[J]. Communications of the ACM, 1992, 35(12): 61-70.
[2] SARWAR B, KARYPIS G, KONSTAN J, et al. Item-based collaborative filtering recommendation algorithms[C]// Proceedings of the 10th International Conference on World Wide Web. New York: ACM, 2001: 285-295.
[3] CHENG H T, KOC L, HARMSEN J, et al. Wide & deep learning for recommender systems[C]// Proceedings of the 1st Workshop on Deep Learning for Recommender Systems. New York: ACM, 2016: 7-10.
[4] GUO H, TANG R, YE Y, et al. DeepFM: a factorization-machine based neural network for CTR prediction[C]// Proceedings of the 26th International Joint Conference on Artificial Intelligence. California: ijcai.org, 2017: 1725-1731.
[5] HIDASI B, KARATZOGLOU A, BALTRUNAS L, et al. Session-based recommendations with recurrent neural networks[EB/OL]. (2016-03-29)[2021-09-08].https://arxiv.org/pdf/1511.06939.pdf.
[6] HIDASI B, QUADRANA M, KARATZOGLOU A, et al. Parallel recurrent neural network architectures for feature-rich session-based recommendations[C]// Proceedings of the 10th ACM Conference on Recommender Systems. New York: ACM, 2016: 241-248.
[7] BOGINA V, KUFLIK T. Incorporating dwell time in session-based recommendations with recurrent neural networks[C]// Proceedings of the 1st Workshop on Temporal Reasoning in Recommender Systems co-located with 11th International Conference on Recommender Systems. Aachen: CEUR-WS.org, 2017: 57-59.
[8] JANNACH D, LUDEWIG M. When recurrent neural networks meet the neighborhood for session-based recommendation[C]// Proceedings of the 11th ACM Conference on Recommender Systems. New York: ACM, 2017: 306-310.
[9] XU M W, QIAN F, MEI Q Z, et al. DeepType: on-device deep learning for input personalization service with minimal privacy concern[J]. Proceedings of the ACM on Interactive, Mobile, Wearable and Ubiquitous Technologies, 2018, 2(4): No.197.
[10] RENDLE S, FREUDENTHALER C, GANTNER Z, et al. BPR: Bayesian personalized ranking from implicit feedback[C]// Proceedings of the 25th Conference on Uncertainty in Artificial Intelligence. Arlington, VA: AUAI Press, 2009: 452-461.
[11] OKURA S, TAGAMI Y, ONO S, et al. Embedding-based news recommendation for millions of users[C]// Proceedings of the 23rd ACM SIGKDD International Conference on Knowledge Discovery and Data Mining. New York: ACM, 2017: 1933-1942.
[12] BURGES C J C. From RankNet to LambdaRank to LambdaMART: an overview: MSR-TR-2010-82[R/OL]. (2010-06)[2021-09-08].https://www.microsoft.com/en-us/research/wp-content/uploads/2016/02/MSR-TR-2010-82.pdf.
[13] DAVIDSON J, LIEBALD B, LIU J N, et al. The YouTube video recommendation system[C]// Proceedings of the 4th ACM Conference on Recommender Systems. New York: ACM, 2010: 293-296.
[14] McMAHAN B, MOORE E, RAMAGE D, et al. Communication-efficient learning of deep networks from decentralized data[C]// Proceedings of the 20th International Conference on Artificial Intelligence and Statistics. New York: JMLR.org, 2017: 1273-1282.
[15] BONAWITZ K, EICHNER H, GRIESKAMP W, et al. Towards federated learning at scale: system design[C/OL]// Proceedings of the 2nd Machine Learning and Systems. [2021-11-01].https://proceedings.mlsys.org/paper/2019/file/bd686fd640be98efaae0091fa301e613-Paper.pdf.
[16] HAN S, MAO H Z, DALLY W J. Deep compression: compressing deep neural network with pruning, trained quantization and Huffman coding[EB/OL]. (2016-02-15)[2021-09-12].https://arxiv.org/pdf/1510.00149.pdf.
[17] HINTON G, VINYALS O, DEAN J. Distilling the knowledge in a neural network[EB/OL]. (2015-03-09)[2021-10-16].https://arxiv.org/pdf/1503.02531.pdf.
[18] ZHU M H, GUPTA S. To prune, or not to prune: exploring the efficacy of pruning for model compression[EB/OL]. (2018-02-13)[2021-10-08].https://openreview.net/pdf?id=Sy1iIDkPM.
[19] CHEN T, SUN Y Z, SHI Y, et al. On sampling strategies for neural network-based collaborative filtering[C]// Proceedings of the 23rd ACM SIGKDD International Conference on Knowledge Discovery and Data Mining. New York: ACM, 2017: 767-776.
Personalized recommendation service system based on cloud-client-convergence
HAN Jialiang1, HAN Yudong1, LIU Xuanzhe1, ZHAO Yaoshuai2,3, FENG Di2,3*
(1(),100871,;2,101318,;3,,101318,)
Mainstream personalized recommendation systems usually use models deployed in the cloud to perform recommendation, so the private data such as user interaction behaviors need to be uploaded to the cloud, which may cause potential risks of user privacy leakage. In order to protect user privacy, user-sensitive data can be processed on the client, however, there are communication bottleneck and computation resource bottleneck in clients. Aiming at the above challenges, a personalized recommendation service system based on cloud-client-convergence was proposed. In this system, the cloud-based recommendation model was divided into a user representation model and a sorting model. After being pre-trained on the cloud, the user representation model was deployed to the client, while the sorting model was deployed to the cloud. A small-scale Recurrent Neural Network (RNN) was used to model the user behavior characteristics by extracting temporal information from user interaction logs, and the Lasso (Least absolute shrinkage and selection operator) algorithm was used to compress user representations, thereby preventing a drop in recommendation accuracy while reducing the communication overhead between the cloud and the client as well as the computation overhead of the client. Experiments were conducted on RecSys Challenge 2015 dataset, and the results show that the recommendation accuracy of the proposed system is comparable to that of the GRU4REC model, while the volume of the compressed user representations is only 34.8% of that before compression, with a lower computational overhead.
personalized recommendation service system; cloud-client-convergence; user representation model; privacy-preserving; Recurrent Neural Network (RNN)
This work is partially supported by PKU-Baidu Fund (2020BD007).
HAN Jialiang, born in 1997, Ph. D. candidate. His research interests include distributed machine learning, federated learning, recommender system.
HAN Yudong, born in 2000, Ph. D. candidate. His research interests include distributed machine learning, Web system.
LIU Xuanzhe, born in 1980, Ph. D., associate professor. His research interests include service computing, system software.
ZHAO Yaoshuai, born in 1977, M. S., senior engineer. His research interests include big data, artificial intelligence.
FENG Di, born in 1981, M. S., engineer. Her research interests include civil aviation passenger behavior analysis, data analysis.
TP311
A
1001-9081(2022)11-3506-07
10.11772/j.issn.1001-9081.2021111992
2021?11?23;
2022?01?12;
2022?01?17。
北大百度基金資助項(xiàng)目(2020BD007)。
韓佳良(1997—),男,北京人,博士研究生,CCF會(huì)員,主要研究方向:分布式機(jī)器學(xué)習(xí)、聯(lián)邦學(xué)習(xí)、推薦系統(tǒng);韓宇棟(2000—),男,山東東營(yíng)人,博士研究生,主要研究方向:分布式機(jī)器學(xué)習(xí)、Web系統(tǒng);劉譞哲(1980—),男,甘肅蘭州人,副教授,博士,CCF會(huì)員,主要研究方向:服務(wù)計(jì)算、系統(tǒng)軟件;趙耀帥(1977—),男,山東嘉祥人,高級(jí)工程師,碩士,主要研究方向:大數(shù)據(jù)、人工智能;馮迪(1981—),女,湖北潛江人,工程師,碩士,主要研究方向:民航旅客行為分析、數(shù)據(jù)分析。