梁仕威,張晨蕊,曹 雷,程軍軍,許洪波,程學(xué)旗
(1. 中國(guó)科學(xué)院 計(jì)算技術(shù)研究所 網(wǎng)絡(luò)數(shù)據(jù)科學(xué)與技術(shù)重點(diǎn)實(shí)驗(yàn)室,北京 100190;2. 中國(guó)科學(xué)院大學(xué),北京 100190;3. 中國(guó)信息安全測(cè)評(píng)中心,北京 100085)
信息技術(shù)和互聯(lián)網(wǎng)的發(fā)展,深刻地影響了當(dāng)今人們獲取資訊的方式。人們的新聞消費(fèi)模式已經(jīng)從傳統(tǒng)的訂閱報(bào)紙,轉(zhuǎn)變成了通過(guò)互聯(lián)網(wǎng)訪問(wèn)海量的新聞資訊?;ヂ?lián)網(wǎng)不僅加速了人們的新聞消費(fèi)速度,也開(kāi)拓了消費(fèi)的渠道,與此同時(shí)也帶來(lái)了信息過(guò)載問(wèn)題。推薦系統(tǒng)是解決信息過(guò)載問(wèn)題的有效方法之一,因此,新聞推薦系統(tǒng)也吸引了工業(yè)界和學(xué)術(shù)界越來(lái)越多的關(guān)注。
迄今為止,研究人員已經(jīng)提出了很多用于個(gè)性化推薦領(lǐng)域的算法和模型,其中,協(xié)同過(guò)濾算法是最有效和應(yīng)用最廣泛的個(gè)性化推薦方法,而基于矩陣分解[1-2]的協(xié)同過(guò)濾算法在Netflix大賽中表現(xiàn)出了巨大的潛力,吸引了眾多研究人員的關(guān)注。對(duì)于上述方法,歷史行為數(shù)據(jù)對(duì)于學(xué)習(xí)用戶和物品的潛在因子向量是至關(guān)重要的。但是在很多場(chǎng)景下,行為數(shù)據(jù)是無(wú)法獲取或者非常稀疏的,比如在新聞推薦中,一篇新發(fā)布的新聞,通常沒(méi)有或者只有很少的用戶點(diǎn)擊記錄,這就促使我們?cè)谕扑]中考慮新聞的內(nèi)容信息。本文中,我們以新聞推薦作為場(chǎng)景,研究融合文本語(yǔ)義信息的個(gè)性化推薦模型。
為了理解文本內(nèi)容信息從而做出更好的推薦,一個(gè)好的基于文本語(yǔ)義信息的表示方式是基礎(chǔ)。傳統(tǒng)的基于內(nèi)容的推薦方法[3]通常只對(duì)文本信息做了簡(jiǎn)單的處理,使用詞袋模型做文檔的表示。一方面,基于詞袋模型的表示方式具有特征稀疏和詞匯鴻溝的缺點(diǎn),無(wú)法編碼詞之間的相似性,在很多NLP任務(wù)上的表現(xiàn)不如近年提出的文本表示學(xué)習(xí)模型[4-6]。另一方面,用戶興趣的建模受到物品表示方式的影響,如果基于詞袋模型做文本的表示,那么用戶的興趣也通常表示成詞的組合,這些詞可以由用戶事先指定或者根據(jù)某種人工規(guī)則從用戶的行為歷史中提取。然而先對(duì)物品建模,再對(duì)用戶建模的兩階段建模方式中由于存在人工規(guī)則使得模型的調(diào)優(yōu)變得極為困難,而且也難以捕捉用戶和物品內(nèi)容間的潛在關(guān)系。
我們通過(guò)融合文本的表示學(xué)習(xí)模型和個(gè)性化推薦方法來(lái)解決上述問(wèn)題。我們?cè)诨诰仃嚪纸獾膮f(xié)同過(guò)濾模型的基礎(chǔ)上進(jìn)行拓展,提出一種將用戶—新聞交互矩陣結(jié)合文檔與詞的語(yǔ)義關(guān)系進(jìn)行聯(lián)合表示學(xué)習(xí)的推薦模型,給用戶與新聞的表示向量加入語(yǔ)義信息,從而能更好地發(fā)掘用戶與新聞話題的內(nèi)在相關(guān)性。由于用戶和文檔被映射到同樣的潛在空間,用戶對(duì)一篇文檔的偏好可以通過(guò)用戶的表示向量和文檔的表示向量的點(diǎn)積來(lái)計(jì)算。在一個(gè)真實(shí)的新聞點(diǎn)擊數(shù)據(jù)集上的實(shí)驗(yàn)結(jié)果表明了我們提出的模型的有效性。
現(xiàn)有的個(gè)性化推薦算法可以分為基于內(nèi)容過(guò)濾的推薦、協(xié)同過(guò)濾推薦和混合推薦三大類。
基于內(nèi)容過(guò)濾的推薦方法[3]背后的基本思想是: 用戶可能會(huì)喜歡那些跟他以前做出過(guò)正面評(píng)價(jià)的物品相似的物品。直接的做法就是給用戶推薦具有他喜歡的屬性的物品。比如一個(gè)用戶經(jīng)??纯苹眯≌f(shuō),那么基于內(nèi)容過(guò)濾的推薦系統(tǒng)就可能會(huì)給這個(gè)用戶推薦《三體》這部作品?;趦?nèi)容過(guò)濾的推薦能解決數(shù)據(jù)稀疏性和項(xiàng)目冷啟動(dòng)問(wèn)題,但由于過(guò)度強(qiáng)調(diào)物品屬性的相似性,容易導(dǎo)致推薦結(jié)果的新穎性不足。
協(xié)同過(guò)濾推薦方法[7]背后的基本思想是: 用戶可能會(huì)對(duì)具有相似興趣的其他用戶做出過(guò)積極評(píng)價(jià)的物品感興趣。與基于內(nèi)容的推薦方法不同,協(xié)同過(guò)濾是一種領(lǐng)域無(wú)關(guān)的推薦方法,除了用戶對(duì)物品的評(píng)分信息外,協(xié)同過(guò)濾不需要任何的物品描述信息。這種方法模擬了生活中人與人之間通過(guò)“口碑”互相推薦的行為,依賴于人與人之間的信賴關(guān)系。矩陣分解(Matrix Factorization, MF)[2]是最有效的協(xié)同過(guò)濾方法之一。協(xié)同過(guò)濾算法具有較高的推薦精度,但由于依賴用戶對(duì)物品的歷史行為,所以不能對(duì)新的物品做推薦,面臨嚴(yán)重的冷啟動(dòng)問(wèn)題,難以應(yīng)用于新聞推薦場(chǎng)景中。
為了克服基于內(nèi)容過(guò)濾和協(xié)同過(guò)濾各自的限制,研究人員提出了將內(nèi)容和歷史行為數(shù)據(jù)相結(jié)合的混合推薦方法[8-10],這也是在現(xiàn)代推薦系統(tǒng)中應(yīng)用最廣泛的方法。引入內(nèi)容過(guò)濾能在一定程度上緩解冷啟動(dòng)問(wèn)題的影響。本文提出的模型也是一種混合方法,在推薦中結(jié)合了新聞內(nèi)容信息。
新聞是最早使用推薦系統(tǒng)的領(lǐng)域之一,新聞推薦系統(tǒng)通過(guò)分析用戶的瀏覽、點(diǎn)擊、評(píng)論等行為,發(fā)掘用戶的閱讀興趣,給不同的用戶展現(xiàn)不同的個(gè)性化新聞列表,來(lái)提高新聞網(wǎng)站或者新聞App的點(diǎn)擊率和轉(zhuǎn)化率。早期的新聞推薦系統(tǒng)通過(guò)用戶自動(dòng)選擇喜歡的新聞?lì)愋涂梢詾橛脩籼峁┮欢ǔ潭鹊膫€(gè)性化服務(wù),但這會(huì)給用戶帶來(lái)額外的負(fù)擔(dān),也不能隨著用戶的使用過(guò)程自動(dòng)發(fā)掘用戶的潛在喜好動(dòng)態(tài)調(diào)整推薦的新聞[11]。Google News在文獻(xiàn)[12]中將協(xié)同過(guò)濾算法應(yīng)用到了新聞推薦中,由于協(xié)同過(guò)濾算法的固有缺點(diǎn),Google News又提出了結(jié)合用戶的點(diǎn)擊行為做內(nèi)容過(guò)濾的方法[13],但這種方法和后來(lái)提出來(lái)的SCENE新聞推薦系統(tǒng)[14]都是采用先對(duì)新聞建模再對(duì)用戶建模的兩階段式的建模方式,不能很好地捕捉用戶的閱讀偏好和新聞內(nèi)容間的潛在關(guān)系。
1.2.1 矩陣分解
MF是常用的協(xié)同過(guò)濾算法之一,通過(guò)使用機(jī)器學(xué)習(xí)的方式訓(xùn)練一個(gè)統(tǒng)計(jì)模型用于推薦。具體來(lái)說(shuō),MF將高度稀疏的用戶—物品評(píng)分矩陣降維成潛在因素的子空間,從而捕捉用戶和物品的潛在屬性。為了使得訓(xùn)練更加高效,潛在子空間的維度通常遠(yuǎn)遠(yuǎn)小于用戶和物品的數(shù)量。一般地,給定包含m個(gè)用戶和n個(gè)物品的用戶-物品評(píng)分矩陣R∈m×n,MF將其分解為R≈PTQ,其中P∈d×m是用戶潛在因子矩陣,Q∈d×n是物品潛在因子矩陣,d是潛在因子的維度。用戶u對(duì)物品i的預(yù)測(cè)評(píng)分為
新聞作為一種快速消費(fèi)的資訊,大多數(shù)用戶不愿意在閱讀完一篇新聞后花費(fèi)時(shí)間顯式給出對(duì)該新聞的評(píng)分,推薦系統(tǒng)通常只能收集到用戶對(duì)新聞的隱性反饋數(shù)據(jù),即點(diǎn)擊或者不點(diǎn)擊,所以用戶i對(duì)新聞j的隱性評(píng)分rij∈{1,0},因此本文中我們只關(guān)注用戶的隱性反饋,將新聞推薦看作一個(gè)二分類問(wèn)題。文獻(xiàn)[15]中提出了用于二分類的Logistic MF模型,和MF模型的主要區(qū)別是增加了Sigmoid函數(shù)將預(yù)測(cè)評(píng)分轉(zhuǎn)換成點(diǎn)擊概率,如式(1)所示。
(1)
其中,σ(x)=1/(1+exp(-x))。Logistic MF模型的對(duì)數(shù)似然函數(shù),如式(2)所示。
(2)
1.2.2 文本嵌入技術(shù)
文本嵌入技術(shù)指將文本映射到一個(gè)潛在空間,使用一定維度的向量來(lái)表示,這些向量可以被應(yīng)用到后續(xù)的NLP任務(wù)中。Le和Mikolov等[5]提出了句子/文檔的向量學(xué)習(xí)模型PV-DBOW,該模型直接用句子/文檔向量預(yù)測(cè)從句子/文檔中隨機(jī)抽取出來(lái)的詞,從而同時(shí)學(xué)習(xí)到詞和句子/文檔的表示向量。PV-DBOW模型的優(yōu)化目標(biāo)為最大化如下對(duì)數(shù)似然函數(shù),如式(3)所示。
(3)
其中,D為語(yǔ)料集,d代表一個(gè)句子或一篇文檔,wi為從d中選取的詞。
在提出我們的模型之前,先列舉我們?cè)诤竺鏁?huì)用到的符號(hào)。我們用U={u1,u2,…,um}表示用戶集合,用D={d1,d2,…,dn}表示新聞?wù)Z料集合,用W={w1,w2,…,wv}表示由v個(gè)詞組成的詞表。用戶與新聞的交互矩陣用R∈m×n表示,第i行,第j列的元素rij=1表示用戶i點(diǎn)擊了新聞j,rij=0則表示沒(méi)有點(diǎn)擊。dj∈ui表示用戶i與新聞j有交互行為,wa∈dj表示詞a出現(xiàn)在新聞j中。每一個(gè)用戶u∈U,每一篇新聞d∈D和每一個(gè)詞w∈W,都分別與一個(gè)表示向量關(guān)聯(lián):K和K,其中K為表示向量的維度。這些表示向量是需要學(xué)習(xí)的模型參數(shù)。
用戶對(duì)新聞的內(nèi)容其實(shí)是有很強(qiáng)的偏好性的,比如有些人喜歡軍事新聞,有些人喜歡娛樂(lè)新聞,有些人喜歡體育新聞,但是Logistic MF模型只基于用戶對(duì)新聞的點(diǎn)擊矩陣做分解,沒(méi)有考慮新聞內(nèi)容、類別等包含的豐富的語(yǔ)義信息,也就沒(méi)有捕捉到用戶對(duì)新聞內(nèi)容的偏好。基于Logistic MF模型的這個(gè)不足之處,我們考慮新聞和詞的關(guān)系,提出將點(diǎn)擊矩陣的分解和文檔與詞的嵌入表示聯(lián)合學(xué)習(xí)的模型,從而能同時(shí)捕捉用戶的興趣和新聞的語(yǔ)義信息。模型結(jié)構(gòu)如圖1所示,其中l(wèi)j為新聞j包含的詞語(yǔ)數(shù)量。
圖1 CJE模型結(jié)構(gòu)圖
在這個(gè)模型中,Logistic MF部分對(duì)用戶—新聞交互矩陣做分解,以監(jiān)督學(xué)習(xí)的方式學(xué)習(xí)用戶和新聞的潛在表示,捕捉用戶對(duì)新聞的偏好。D&W Embedding部分類似于PV-DBOW模型,預(yù)測(cè)新聞內(nèi)部出現(xiàn)的詞,以無(wú)監(jiān)督的方式學(xué)習(xí)詞和文檔的嵌入表示,捕捉內(nèi)容的語(yǔ)義信息。而文檔的表示由模型的兩部分共享,從而將語(yǔ)義信息傳遞到了用戶的表示中,使得模型能捕捉到用戶對(duì)新聞內(nèi)容信息的偏好。我們把這個(gè)模型叫做協(xié)同表示學(xué)習(xí)(Collaborative Joint Embedding, CJE)模型。形式化地,CJE模型的目標(biāo)函數(shù)為兩部分的對(duì)數(shù)似然函數(shù)之和,如式(4)所示。
(4)
其中,β是超參,用于平衡模型中的用戶偏好和語(yǔ)義兩部分對(duì)似然函數(shù)的作用,當(dāng)β=0時(shí)退化為L(zhǎng)ogistic MF模型,β越大,語(yǔ)義部分對(duì)似然函數(shù)的影響越大。xja為詞a在文檔j里的TF-IDF權(quán)重,加入TF-IDF權(quán)重是為了加強(qiáng)文檔內(nèi)的關(guān)鍵詞對(duì)文檔表示向量的影響。對(duì)于D&W Embedding部分,我們使用softmax函數(shù)定義的概率函數(shù)p(wa|dj),如式(5)所示。
(5)
CJE模型能同時(shí)學(xué)習(xí)到新聞和用戶的表示向量,以及作為副產(chǎn)品的詞向量。用戶對(duì)一篇新聞的喜好程度可以通過(guò)對(duì)應(yīng)的用戶向量和新聞向量的點(diǎn)積值來(lái)衡量,類似于Logistic MF,通過(guò)Sigmoid函數(shù)將其轉(zhuǎn)換為點(diǎn)擊概率,如式(6)所示。
(6)
其中σ(x)=1/(1+exp(-x))。
訓(xùn)練模型時(shí),由于直接計(jì)算式(5)中的概率函數(shù)代價(jià)太大,我們采用了負(fù)采樣技術(shù)[4]進(jìn)行更高效的訓(xùn)練。基于負(fù)采樣技術(shù)的訓(xùn)練目標(biāo)函數(shù),如式(7)所示。
(7)
CJE模型需要用到兩種類型的數(shù)據(jù),一種是用戶與新聞的交互數(shù)據(jù),另一種是新聞的內(nèi)容數(shù)據(jù)。用戶向量和詞向量的訓(xùn)練都只與一種類型的數(shù)據(jù)相關(guān),而新聞向量的更新與這兩種類型的數(shù)據(jù)都相關(guān),在訓(xùn)練過(guò)程中我們交替使用這兩種類型的數(shù)據(jù)更新新聞向量,直到收斂。
在本節(jié)中,我們首先對(duì)實(shí)驗(yàn)設(shè)置進(jìn)行說(shuō)明,包括使用的數(shù)據(jù)集、評(píng)價(jià)指標(biāo)和baseline模型,然后探究CJE模型中的平衡因子β對(duì)實(shí)驗(yàn)結(jié)果的影響,最后對(duì)比我們提出的模型和baseline模型在數(shù)據(jù)集上的表現(xiàn)。
我們使用的數(shù)據(jù)集來(lái)源于2014年CCF主辦的第二屆中國(guó)大數(shù)據(jù)技術(shù)創(chuàng)新大賽[注]大賽官網(wǎng) https: //bigdatacontest.ccf.org.cn。該數(shù)據(jù)集隨機(jī)選取了財(cái)新網(wǎng)的10 000名用戶,并抽取了這些用戶在2014年3月份的新聞點(diǎn)擊記錄,數(shù)據(jù)集包含新聞的標(biāo)題和內(nèi)容。我們對(duì)數(shù)據(jù)集做了過(guò)濾,去除了少于5次點(diǎn)擊與多于500次點(diǎn)擊的用戶,以及內(nèi)容少于10個(gè)字的新聞,最終得到含有9 213名用戶與5 666篇新聞的數(shù)據(jù)集。對(duì)于數(shù)據(jù)集里的新聞,我們不區(qū)分標(biāo)題和正文,將標(biāo)題和正文連接起來(lái),采用基于Python語(yǔ)言的Jieba分詞工具對(duì)新聞分詞,并去除停用詞與低頻詞。
我們采用離線的、基于排序的指標(biāo)評(píng)價(jià)本文提出的方法: Precision@K,Recall@K和MAP(Mean Average Precision)。給用戶推薦一個(gè)新聞列表,用戶點(diǎn)擊的新聞越靠前,則表明推薦效果越好,上述指標(biāo)也就越高。
假設(shè)我們給用戶推薦一個(gè)包含K篇新聞的列表,按預(yù)測(cè)分?jǐn)?shù)從高到低排序;該用戶在測(cè)試集里總計(jì)點(diǎn)擊了n篇新聞;rel(·)是一個(gè)指示函數(shù),如果用戶點(diǎn)擊了列表里的第i篇新聞,則rel(i)=1,否則rel(i)=0。那么對(duì)于單個(gè)用戶的Precision和Recall的K截?cái)嘤?jì)算如式(11)、式(12)所示。
整個(gè)系統(tǒng)的Precision@K和Recall@K為所有用戶的平均值。
MAP是所有用戶的AP(average precision)的平均值。對(duì)單個(gè)用戶,假設(shè)推薦的列表含有m篇新聞,AP的計(jì)算如式(13)所示。
(13)
在本文的實(shí)驗(yàn)中,我們對(duì)比以下模型在數(shù)據(jù)集上的結(jié)果。
? LogisticMF[13]: 這是一個(gè)對(duì)隱性反饋數(shù)據(jù)做推薦的state-of-art模型,等同于CJE模型在β=0時(shí)的情況。
? AveVec: 首先使用PV-DBOW模型學(xué)習(xí)新聞的表示向量,然后對(duì)每一個(gè)用戶,將這個(gè)用戶在訓(xùn)練集里點(diǎn)擊過(guò)的新聞的向量取均值作為這個(gè)用戶的表示向量,最后根據(jù)用戶向量與測(cè)試集中的新聞向量的余弦值從大到小排序并做推薦。
? CJE: Collaborative Joint Embedding是本文提出的模型。
? CJE+: 使用預(yù)先學(xué)習(xí)好的詞嵌入模型初始化CJE模型中的詞向量,這是我們提出的第二個(gè)模型。在本文中,我們使用Skip-Gram模型[4]訓(xùn)練用于初始化的詞向量。
CJE模型里的β是一個(gè)很重要的參數(shù),用于調(diào)整用戶偏好和新聞的語(yǔ)義信息對(duì)模型似然函數(shù)的影響,能影響推薦的效果。β越大,語(yǔ)義信息對(duì)似然函數(shù)的影響越大,用戶歷史行為信息對(duì)似然函數(shù)的影響就越小。圖2展示了β在不同取值下CJE模型的MAP指標(biāo),這里的向量維度設(shè)為50。從圖中可以看出,當(dāng)β的取值范圍在0.02到0.15的區(qū)間內(nèi)時(shí),MAP指標(biāo)呈上升趨勢(shì);當(dāng)β的取值大于0.15時(shí),MAP指標(biāo)呈下降趨勢(shì)。在本文使用的數(shù)據(jù)集下,β的取值為0.15時(shí)結(jié)果最好。
圖2 CJE模型的β參數(shù)在不同取值下的MAP指標(biāo)
我們對(duì)5折交叉驗(yàn)證的結(jié)果取平均值作為最后的實(shí)驗(yàn)結(jié)果,β取0.15,表1給出了CJE模型、CJE+模型和作為Baseline的LogisticMF模型與AveVec模型在數(shù)據(jù)集上的結(jié)果。表中P@K表示Precision@K,R@K表示Recall@K,dim列是向量的維度,我們對(duì)比了在50、100和200維下的結(jié)果。從表中的結(jié)果可以看出,由于AveVec只對(duì)新聞向量做了簡(jiǎn)單的平均處理,沒(méi)有能很好地捕捉用戶的興趣偏好,是四個(gè)模型中表現(xiàn)最差的。對(duì)用戶的歷史點(diǎn)擊行為做分解的LogisticsMF的表現(xiàn)比AveVec好,是一個(gè)很強(qiáng)的baseline。本文提出的CJE和CJE+模型各項(xiàng)指標(biāo)都比其余兩個(gè)模型高,甚至50維的結(jié)果比LogisticsMF模型200維的結(jié)果還要好,這說(shuō)明同時(shí)融合用戶的歷史行為信息與新聞的語(yǔ)義信息能有效提升推薦效果。除此之外,由于我們的模型將用戶、新聞和詞嵌入到了同樣的潛在語(yǔ)義空間,所以用戶和新聞的向量可以通過(guò)若干最相近的詞來(lái)解釋(可以通過(guò)計(jì)算點(diǎn)積找最相近的詞)。由于CJE+模型使用了預(yù)先訓(xùn)練好的詞向量,引入了額外的詞的語(yǔ)義信息,故結(jié)果比CJE模型稍好。
表1 實(shí)驗(yàn)結(jié)果
圖3是各個(gè)模型在不同維度下的MAP指標(biāo)柱狀圖,從圖中可以直觀地看出從50維到100維,CJE和CJE+模型的MAP指標(biāo)有較大的提升,從100維到200維的提升幅度較小,趨于平緩。
圖3 在不同維度下的MAP指標(biāo)柱狀圖
本文將文檔與詞的表示學(xué)習(xí)模型與基于矩陣分解的協(xié)同過(guò)濾算法結(jié)合起來(lái),提出一種用于推薦領(lǐng)域的協(xié)同表示學(xué)習(xí)模型CJE,能同時(shí)學(xué)習(xí)帶有語(yǔ)義信息的用戶和文檔的表示向量。在真實(shí)的新聞點(diǎn)擊數(shù)據(jù)集上的實(shí)驗(yàn)表明,我們提出的模型優(yōu)于其他基準(zhǔn)模型。
本文提出的模型的語(yǔ)義部分以詞袋模型為基礎(chǔ),不可避免地會(huì)造成信息丟失,考慮詞的順序關(guān)系是我們未來(lái)的研究方向之一。除此之外,結(jié)合時(shí)間因素的協(xié)同表示學(xué)習(xí)模型也是一個(gè)值得探究的方向。