朱 亞 進(jìn)
(常州交通技師學(xué)院 江蘇 常州 213147)
隨著移動(dòng)互聯(lián)網(wǎng)的蓬勃發(fā)展,人們每天花費(fèi)大量的時(shí)間觀看互聯(lián)網(wǎng)的各種信息,其中新聞是一種影響巨大的信息內(nèi)容[1]。每天產(chǎn)生大量各種類型的新聞,并且新聞存在新穎、不可預(yù)估等特點(diǎn),用戶通過(guò)搜索來(lái)查找新聞內(nèi)容需要花費(fèi)大量的時(shí)間和精力[2]。為了提高用戶觀看新聞的效率,許多新聞應(yīng)用程序集成了新聞推薦系統(tǒng)。當(dāng)前的主流推薦系統(tǒng)大多針對(duì)購(gòu)物網(wǎng)站和音樂(lè)電影等商品而設(shè)計(jì),通過(guò)建立“用戶-項(xiàng)目評(píng)分”矩陣,采用相關(guān)性指標(biāo)度量用戶之間的相似性,通過(guò)協(xié)同過(guò)濾技術(shù)為用戶提供推薦列表[3-4]。新聞內(nèi)容中包含了大量的文字信息[5],利用這些信息能夠有效地緩解冷啟動(dòng)問(wèn)題和稀疏性問(wèn)題,但是這些文字信息為相似性分析帶來(lái)了難度。
許多新聞應(yīng)用將用戶點(diǎn)擊量作為偏好的評(píng)估指標(biāo),根據(jù)用戶的閱讀耗時(shí)對(duì)用戶偏好值做調(diào)節(jié)[6],此類系統(tǒng)能夠?qū)崟r(shí)更新用戶興趣模型,達(dá)到推新、推準(zhǔn)的效果,但存在嚴(yán)重的稀疏性問(wèn)題和冷啟動(dòng)問(wèn)題。文獻(xiàn)[7]將改進(jìn)的層次聚類算法用于新聞事件發(fā)現(xiàn)問(wèn)題,引入事件的多重特征計(jì)算用戶的興趣模型,該算法利用Spark框架實(shí)現(xiàn)了快速的響應(yīng),但對(duì)用戶的興趣評(píng)估不夠準(zhǔn)確。文獻(xiàn)[8]通過(guò)已有用戶對(duì)于新聞的點(diǎn)擊瀏覽記錄,提取其在不同環(huán)境中的上下文信息,利用興趣分類記錄構(gòu)建決策樹(shù)分類模型,該方案能夠有效緩解新聞推薦系統(tǒng)中用戶冷啟動(dòng)問(wèn)題。文獻(xiàn)[9]通過(guò)引入矩陣分解、標(biāo)題分析和知識(shí)圖譜對(duì)新聞的標(biāo)題進(jìn)行了深入的分析,提出了一種細(xì)粒度的新聞推薦系統(tǒng)。該系統(tǒng)的實(shí)驗(yàn)結(jié)果表現(xiàn)出更為準(zhǔn)確的推薦結(jié)果,并且有效地緩解了稀疏性問(wèn)題和冷啟動(dòng)問(wèn)題,但由于利用深度神經(jīng)網(wǎng)絡(luò)提取新聞的特征,此過(guò)程需要大量的計(jì)算成本,并且不具備可擴(kuò)展性。
新聞推薦系統(tǒng)有兩個(gè)特殊之處:① 目標(biāo)權(quán)衡。新聞提供商需要權(quán)衡廣告收益和新聞內(nèi)容,所以系統(tǒng)應(yīng)當(dāng)能夠支持不同的商業(yè)目標(biāo)。② 冷啟動(dòng)問(wèn)題。新聞提供商連續(xù)產(chǎn)生大量的新聞,由此導(dǎo)致用戶冷啟動(dòng)問(wèn)題和新聞冷啟動(dòng)的問(wèn)題。根據(jù)文獻(xiàn)[9]獲得的成果,通過(guò)標(biāo)題詞義的分析和新聞內(nèi)容等信息能夠顯著提高推薦的準(zhǔn)確率,可通過(guò)分布式計(jì)算解決詞義分析所帶來(lái)的計(jì)算成本。新聞推薦領(lǐng)域中包含了大量的詞匯和上下文信息,詞義歸納機(jī)制能夠?qū)π侣剺?biāo)題和內(nèi)容的詞匯做歸納處理,提高后續(xù)新聞推薦的準(zhǔn)確率。本文從語(yǔ)料庫(kù)和用戶交互兩個(gè)方面分析新聞系統(tǒng),將用戶點(diǎn)擊量和其他輔助屬性作為指標(biāo)建立新聞的效用模型,通過(guò)效用模型能夠支持對(duì)系統(tǒng)目標(biāo)的權(quán)衡,并且緩解冷啟動(dòng)問(wèn)題。另外,給出了基于MapReduce的分布式推薦系統(tǒng)實(shí)現(xiàn)方案,從而為用戶實(shí)時(shí)提供推薦列表。
設(shè)nw為新聞的正文內(nèi)容,Si為會(huì)話i,D為點(diǎn)擊量數(shù)據(jù)集,ψ(nw)為基于nw屬性計(jì)算的新聞端度量,γ(nw,Sr)為會(huì)話Sr中nw的用戶端度量,φ(nw,Sr)為會(huì)話Sr中nw的效用,σ(nw,P)為新聞閱讀模式P中nw的內(nèi)部效用,φ(P,D)為D中新聞閱讀模式P的效用。設(shè)N={nw1,nw2, …,nwn}為新聞內(nèi)容的集合,點(diǎn)擊量數(shù)據(jù)集由若干會(huì)話組成,會(huì)話S定義為一個(gè)排列的新聞列表
定義1新聞端度量。對(duì)于新聞內(nèi)容nw,新聞端的度量定義為:
ψ(nw)=Fψ(f1,f2,…,fk)
(1)
式中:{f1,f2,…,fk}為新聞的屬性集;Fψ為聚合函數(shù)。
定義2用戶端度量。給定一個(gè)會(huì)話Sr和一個(gè)用戶-新聞交互屬性f′1,f′2,…,f′k,用戶端度量定義為:
γ(nw,Sr)=Fγ(f′1,f′2,…,f′k)
(2)
式中:Fγ為一個(gè)聚合函數(shù)。
定義3新聞效用模型。給定一個(gè)新聞nw和一個(gè)會(huì)話Sr,新聞效用模型定義為:
φ(nw,Sr)=Fφ(ψ(nw),γ(nw,Sr))
(3)
式中:Fφ為一個(gè)聚合函數(shù)。
上述定義并未限制聚合函數(shù)Fψ、Fγ和Fφ的形式。在不同的應(yīng)用場(chǎng)景下,根據(jù)商業(yè)目標(biāo)調(diào)整聚合函數(shù)。表1所示是包含5個(gè)會(huì)話{S1,S2,S3,S4,S5}的點(diǎn)擊量數(shù)據(jù)集,假設(shè)應(yīng)用的目標(biāo)是利用推薦的新聞增加用戶的參與度,此時(shí)新聞的日期、受歡迎度、社交媒體的活躍度則是用戶參與度的重要指標(biāo)。表2是γ聚合的結(jié)果,表3是新聞的點(diǎn)擊量數(shù)據(jù)集,表4是ψ聚合的結(jié)果。最終定義了Fφ將γ和ψ的結(jié)果相乘,獲得最終的效用:φ(nw,Sr)=ψ(nw)×γ(nw,Sr)。
表1 會(huì)話的點(diǎn)擊量數(shù)據(jù)集
表2 γ聚合的結(jié)果
表3 新聞的點(diǎn)擊量數(shù)據(jù)集
表4 ψ聚合的結(jié)果
上述例子是新聞效用模型的一種可能實(shí)例,實(shí)際應(yīng)用中存在許多的屬性。圖1所示是總結(jié)的新聞效用模型融合實(shí)例。
圖1 總結(jié)的新聞效用模型融合實(shí)例
定義4新聞閱讀模式。新聞閱讀模式P定義為用戶閱讀的新聞集{nw1,nw2,…,nwL},L為模式長(zhǎng)度。
設(shè)計(jì)了基于效用的新聞推薦系統(tǒng),簡(jiǎn)稱為(News Recommendation System, nwrecsys),nwrecsys基于Apache Spark框架和MapReduce框架實(shí)現(xiàn),首先基于點(diǎn)擊量數(shù)據(jù)集學(xué)習(xí)推薦規(guī)則集,然后根據(jù)規(guī)則集為當(dāng)前的用戶會(huì)話推薦新聞列表。圖2所示是本系統(tǒng)的總體框架,其中發(fā)現(xiàn)規(guī)則的部分主要分為兩個(gè)階段:① 發(fā)現(xiàn)內(nèi)容級(jí)別的推薦規(guī)則;② 發(fā)現(xiàn)標(biāo)題級(jí)別的推薦規(guī)則。
圖2 新聞推薦系統(tǒng)的總體框架
大多數(shù)基于規(guī)則的推薦系統(tǒng)基于數(shù)據(jù)生成關(guān)聯(lián)規(guī)則,首先發(fā)現(xiàn)頻率不小于最小支持度閾值的新聞閱讀模式,給定一個(gè)頻繁新聞閱讀模式P,選出置信度不小于閾值的所有規(guī)則集,記為R:A→B。置信度定義為包含模式B的會(huì)話占包含模式A會(huì)話的百分比?;诒疚牡男侣勑в媚P蛯ふ宜袃?nèi)容級(jí)別的規(guī)則R:A→B。如果達(dá)到以下兩個(gè)條件,則認(rèn)為推薦的結(jié)果較好:(1) 一個(gè)會(huì)話包括閱讀的新聞內(nèi)容和推薦的新聞列表;(2) 推薦的新聞應(yīng)當(dāng)能夠提高外部效用值。定義一個(gè)內(nèi)容級(jí)別的新聞推薦規(guī)則來(lái)滿足這兩個(gè)條件。給定兩個(gè)新聞閱讀模式X和Y,如果滿足以下3個(gè)條件,則認(rèn)為R:X→Y為一個(gè)內(nèi)容級(jí)別的新聞推薦規(guī)則:①X≠?,Y≠?,X∩Y≠?;②Y和X∪Y均為高效用新聞閱讀模式。③ 規(guī)則的效用置信度不小于用戶預(yù)設(shè)的最小閾值。規(guī)則的效用置信度定義為:
(4)
規(guī)則R:X→Y的效用置信度描述了Y對(duì)于新聞閱讀模式X∪Y的效用貢獻(xiàn),假設(shè)規(guī)則推薦Y,而Y與X關(guān)聯(lián),那么X∪Y構(gòu)成高效用的新聞閱讀模式,置信度越高表示推薦的總效用值越高。發(fā)現(xiàn)規(guī)則由兩個(gè)部分組成:滿足條件(1)的高效用新聞閱讀模式;滿足條件(2)的內(nèi)容級(jí)別的新聞推薦規(guī)則。從點(diǎn)擊量數(shù)據(jù)集挖掘高效用新聞閱讀模式需要消耗巨大的計(jì)算資源和存儲(chǔ)資源,且此情況的新聞效用模型未必單調(diào),所以不滿足向下閉合屬性,此情況下剪枝搜索空間的難度遠(yuǎn)遠(yuǎn)大于傳統(tǒng)的頻繁項(xiàng)集挖掘算法。因此本文通過(guò)分布式計(jì)算提高系統(tǒng)的計(jì)算效率。
圖3為發(fā)現(xiàn)內(nèi)容級(jí)別推薦規(guī)則的分布式計(jì)算框架。第一個(gè)Map-Reduce中應(yīng)用定義1和定義2建立效用數(shù)據(jù)集。然后使用一個(gè)Mapper和Map-Reduce處理效用數(shù)據(jù)集,發(fā)現(xiàn)高效用新聞閱讀模式。最后使用一個(gè)Map-Reduce發(fā)現(xiàn)內(nèi)容級(jí)別的推薦規(guī)則。
圖3 發(fā)現(xiàn)內(nèi)容級(jí)別推薦規(guī)則的分布式計(jì)算 框架(基于Apache Spark 2.3.0)
算法1發(fā)現(xiàn)高效用新聞閱讀模式
輸入:效用數(shù)據(jù)集D,新聞效用模型Fφ,最小效用閾值δ。
1.將D分布于計(jì)算機(jī)集群的m個(gè)節(jié)點(diǎn)上{D1,D2,…,Dm};
2.foreach?Si∈Djdo
3.foreach?nw∈Sido
4.φ(nw,Si)←Fφ(ψ(nw),γ(nw,Si));
6.endfor
8.endfor
9.χi= 在節(jié)點(diǎn)i中尋找高效用新聞閱讀模式;
//采用文獻(xiàn)[10]的挖掘算法
給定一個(gè)高效用新聞閱讀模式的集合,本文的目標(biāo)是發(fā)現(xiàn)內(nèi)容級(jí)別的新聞推薦規(guī)則。
給定一個(gè)新聞閱讀模式P={nw1,nw2,…,nwn},其中σ(nw1,P)<σ(nw2,P)<σ(nwn,P),X={nw1,nw2,…,nwk}?P,k≤n,P中新聞nwi滿足以下的關(guān)系:
uconf(〈{X-nwk}→nwi〉)>uconf(〈{X-nwk-1}→nwi〉)
(5)
式中:X-nwk表示集合X中刪除新聞nwk后的集合。
根據(jù)上述思路,提出一種發(fā)現(xiàn)內(nèi)容級(jí)別推薦規(guī)則的算法,如算法2所示。算法的輸入為高效用新聞閱讀模式和最小支持度min_uconf,輸出為內(nèi)容級(jí)別的新聞推薦規(guī)則。第2行將模式P的新聞按會(huì)話中的內(nèi)部效用值升序排列,給定新聞nw,算法2產(chǎn)生所有的內(nèi)容級(jí)別推薦規(guī)則。
算法2內(nèi)容級(jí)別的規(guī)則發(fā)現(xiàn)算法
輸入:高效用新聞閱讀模式集Pset,最小效用置信度min_uconf。
2.Pset′←新聞內(nèi)容按σ(nw,P)升序排列;
3.foreachP={nw1,nw2,…,nwn}∈PSet′do
4.foreachi= {1,2,…,n}do
5.ifnwi∈Pset′then
6.X←{nw1,nw2,…,nwi-1};
7.Y←nwi;
9.else
10.returnNULL;
11.endif
12.endfor
13.endfor
14.return;
算法2的第8行調(diào)用算法3(algorithm3)檢查每個(gè)規(guī)則的有效性。算法3運(yùn)用理論1評(píng)估內(nèi)容級(jí)別的規(guī)則,遞歸地尋找所有的規(guī)則,時(shí)間復(fù)雜度為O(k),復(fù)雜度小于窮舉搜索的復(fù)雜度O(2k),k為輸入高效用新聞閱讀模式的長(zhǎng)度。
算法3規(guī)則檢查算法
輸入:X,Y,,min_uconf,Pset。
1.uconf=σ(Y,X∪Y)/σ(X∪Y,X∪Y);
2.ifuconf≥min_uconfthen
3.R←{X→Y,uconf,σ(Y,X∪Y)}
6.R加入;
7.endif
8.fornw∈Xdo
9.X’=X-nw;
10.algorithm3(X,Y,,min_uconf,Pset);
10.endfor
設(shè)nw為新聞內(nèi)容,設(shè)usr為用戶,因?yàn)閚w的參與度是動(dòng)態(tài)變化的,nw的內(nèi)容端度量計(jì)算如下:
(6)
式中:acc_date為usr點(diǎn)擊nw的時(shí)間;rel_date為nw的發(fā)布時(shí)間。
nw的usr用戶端度量計(jì)算為:①DwellTime:usr在nw上花費(fèi)的時(shí)間;② 社交媒體活躍度(socialact):用戶是否在社交媒體分享該內(nèi)容。γ函數(shù)定義為:
γ(nw,Sr)=DwellTime(usr,nw)×socialact(usr,nw)
(7)
最終的效用模型定義如下:
socialact(usr,nw)
(8)
內(nèi)容級(jí)別的新聞推薦規(guī)則給出了新聞內(nèi)容之間基于效用的連接,但無(wú)法推薦新發(fā)布的內(nèi)容。如果直接應(yīng)用基于內(nèi)容的方法推薦新發(fā)布的內(nèi)容,那么存在兩點(diǎn)不足:① 推薦質(zhì)量低。推薦的內(nèi)容僅考慮內(nèi)容的相似性,不考慮新聞閱讀模式,用戶可能對(duì)內(nèi)容無(wú)興趣。② 多樣性不足。
本文開(kāi)發(fā)了基于詞匯歸納和概率模型的標(biāo)題級(jí)別推薦規(guī)則,包括四個(gè)階段:
第1階段:上下文建模和上下文嵌入。
第2階段:上下文嵌入建模為復(fù)雜網(wǎng)絡(luò)。
第3階段:詞義歸納。
第4階段:標(biāo)題級(jí)別的推薦規(guī)則。該算法無(wú)需先驗(yàn)知識(shí),利用模塊度獲得最佳的分簇結(jié)果。
2.3.1上下文建模和上下文嵌入
采用Word2vec[11]表示標(biāo)題的詞匯,設(shè)計(jì)了快速的詞匯嵌入訓(xùn)練方法,其次設(shè)計(jì)了詞匯預(yù)測(cè)模型和詞匯的上下文預(yù)測(cè)模型。Word2vec生成的詞匯嵌入能夠保存語(yǔ)法屬性和語(yǔ)義屬性,組合上下文所有的詞匯嵌入總結(jié)出歧義詞匯。
圖4所示是產(chǎn)生歧義詞匯嵌入的流程。第1步獲得目標(biāo)詞匯的近鄰詞匯向量,采用Word2vec獲得嵌入的結(jié)果。將Google新聞作為訓(xùn)練集,語(yǔ)料庫(kù)共包含1 000億個(gè)詞匯。獲得每個(gè)上下文的嵌入表示之后,將結(jié)果組合成一個(gè)向量,該向量表示了目標(biāo)詞匯上下文的詞義特征。
圖4 產(chǎn)生歧義詞匯嵌入的流程
設(shè)wi為標(biāo)題中位置i的歧義詞匯,假設(shè)上下文為ci,wi附近共有ω個(gè)詞匯,即ci=[wi-ω/2,…,wi-1,wi,wi+1,…,wi+ω/2]T,對(duì)wi的上下文嵌入結(jié)果為ci:
(9)
式中:wi為第j個(gè)詞匯在ci的嵌入,一個(gè)詞匯的上下文設(shè)為近鄰詞匯的語(yǔ)義特征組合。
2.3.2上下文嵌入建模為復(fù)雜網(wǎng)絡(luò)
上下文之間的相似性建模為復(fù)雜網(wǎng)絡(luò),相似詞匯間建立連接,如果兩個(gè)上下文嵌入相似,那么對(duì)應(yīng)的上下文向量間建立連接。采用k-NN算法將上下文嵌入建模為復(fù)雜網(wǎng)絡(luò),選擇較小的k值能夠降低網(wǎng)絡(luò)的復(fù)雜度。然后,使用余弦相似性度量?jī)蓚€(gè)節(jié)點(diǎn)間的距離。
2.3.3詞義歸納
Louvain算法的計(jì)算成本低,直接對(duì)網(wǎng)絡(luò)的模塊度函數(shù)做優(yōu)化處理,無(wú)需附加的參數(shù)信息。所以運(yùn)用Louvain社區(qū)檢測(cè)將復(fù)雜網(wǎng)絡(luò)分簇,每個(gè)簇為一個(gè)歸納的詞義。圖5所示是詞義歸納的一個(gè)實(shí)例,圖中“BEAR”是一個(gè)多義詞,具有兩個(gè)詞義:① 表示忍耐的動(dòng)詞;② 表示熊的名詞。首先考慮上下文詞匯的嵌入,第1個(gè)句子的上下文詞匯為“PAIN”,第2個(gè)句子的上下文詞匯為“IN”和“FOREST”。通過(guò)上下文詞匯的嵌入描述多義詞,然后,建立相似性詞匯嵌入的網(wǎng)絡(luò),再使用社區(qū)檢測(cè)算法將詞義分簇。
圖5 識(shí)別多義詞的實(shí)例
2.3.4標(biāo)題級(jí)別的推薦規(guī)則
設(shè)計(jì)一個(gè)標(biāo)題概率模型從語(yǔ)料庫(kù)推理出潛在的標(biāo)題。設(shè)新聞標(biāo)題語(yǔ)料庫(kù)為N,其詞匯為V,標(biāo)題t是關(guān)于詞匯wi∈V的多項(xiàng)式分布,記為p(wi|t)。假設(shè)每個(gè)內(nèi)容的標(biāo)題唯一,如果p(ti|tj)較高,則認(rèn)為標(biāo)題級(jí)別的規(guī)則tj→ti為優(yōu)質(zhì)規(guī)則。新聞的概率p(ti|tj)為:
(10)
采用新聞效用模型估計(jì)p(nw):
(11)
式中:D為點(diǎn)擊量數(shù)據(jù)集,Sr為D內(nèi)的一個(gè)會(huì)話。 式(10)從標(biāo)題概率模型獲得概率p(ti|nw),標(biāo)題級(jí)別規(guī)則R:{tj→ti}的標(biāo)題效用置信度表示為p(ti|tj)。給定一個(gè)標(biāo)題級(jí)別效用的置信度及一個(gè)下限值min_tconf。算法4為發(fā)現(xiàn)標(biāo)題級(jí)別推薦規(guī)則的算法,首先獲得兩個(gè)標(biāo)題ti和tj,然后計(jì)算條件概率p(tj|ti)和p(ti|tj),如果p(tj|ti)或p(ti|tj)不小于閾值,則發(fā)現(xiàn)了一個(gè)新的標(biāo)題規(guī)則R:{ti|→tj}或R:{tj|→ti}。
算法4發(fā)現(xiàn)標(biāo)題級(jí)別推薦規(guī)則的算法
輸入:點(diǎn)擊量D,標(biāo)題分布T,標(biāo)題置信度下限值min_tconf。
1.foreachti,tj∈Tdo
2. 計(jì)算p(ti|tj)和p(tj,ti);
3.ifp(ti|tj)≥min_tconfthen
4. 規(guī)則R:
5.endif
6.ifp(tj|ti)≥min_tconfthen
7. 規(guī)則R:
8.endif
9.endfor
10.returnT;
本文的新聞推薦系統(tǒng)共計(jì)算新聞的3種評(píng)分。
(1) 內(nèi)容級(jí)別的新聞推薦評(píng)分。給定一個(gè)用戶會(huì)話Sr和閱讀模式P,內(nèi)容nw的推薦評(píng)分計(jì)算為:AL(nw)=φ(P,Sr)×uconf(P→nw),φ(P,Sr)為閱讀模式P在會(huì)話Sr的效用值。從P的所有子集中選擇最高的推薦評(píng)分作為最終的nw推薦評(píng)分。假設(shè)一個(gè)閱讀模式P包含k個(gè)內(nèi)容,使用2k個(gè)P的子集產(chǎn)生候選推薦,選出評(píng)分最高的候選推薦作為最終的推薦。
(3) 新聞推薦總評(píng)分。綜合上述兩個(gè)評(píng)分作為新聞推薦的依據(jù),融合方法為:com(nw)=AL(nw)×TW(nw)。
實(shí)驗(yàn)環(huán)境由一個(gè)master節(jié)點(diǎn)和6個(gè)worker節(jié)點(diǎn)組成,每個(gè)節(jié)點(diǎn)裝備了Intel Xeon 2.6 GHz處理器和128 GB的內(nèi)存。分布計(jì)算平臺(tái)為Spark Release 2.3.0。
為了保證實(shí)驗(yàn)結(jié)果的置信度,采用5折交叉驗(yàn)證的實(shí)驗(yàn)方案,將數(shù)據(jù)集隨機(jī)分為5個(gè)子集,輪流選擇4個(gè)子集作為訓(xùn)練集,剩余的子集作為測(cè)試集,最終將5次實(shí)驗(yàn)結(jié)果的平均值作為最終的統(tǒng)計(jì)結(jié)果。根據(jù)訓(xùn)練集獲得算法的最優(yōu)參數(shù)集。
性能評(píng)價(jià)指標(biāo)包括平均精度均值MAP@K和多樣性。MAP定義為相關(guān)內(nèi)容數(shù)量除以數(shù)據(jù)集的內(nèi)容總數(shù)量,多樣性定義為推薦列表中每對(duì)新聞的不相似性平均值,假設(shè)新聞數(shù)量為N,平均不相似性計(jì)算為:
diver(N)=
(12)
式中:p為新聞的數(shù)量;sim()為余弦相似性。
實(shí)驗(yàn)中采用Semeval-2013語(yǔ)料庫(kù)[12],Semeval-2013共有50個(gè)詞匯,每個(gè)詞匯的樣本數(shù)量范圍為22~100。數(shù)據(jù)集包括OANC[13]的4 664個(gè)樣本,每個(gè)樣本是字典的一個(gè)短語(yǔ)。
采用Google新聞數(shù)據(jù)集預(yù)訓(xùn)練詞匯嵌入模型,該數(shù)據(jù)集包含約1 000億個(gè)詞匯。模型共有300萬(wàn)個(gè)不同的詞匯和短語(yǔ),采用Word2vec方法訓(xùn)練詞匯嵌入模型,詞匯嵌入的維度為300。算法的效用閾值min_util設(shè)為1萬(wàn),min_uconf設(shè)為0.6,min_tconf設(shè)為0.45。
選擇NTrecsys、LAPnwrec、PBnwrec、HARTnwrec作為對(duì)比方案。NTrecsys[14]是一種考慮新聞標(biāo)題的相似性推薦系統(tǒng),該系統(tǒng)評(píng)估標(biāo)題中關(guān)鍵詞的相似性,然后簡(jiǎn)單采用協(xié)同過(guò)濾推薦算法為用戶提供標(biāo)題相似的新聞內(nèi)容。LAPnwrec[15]是一種實(shí)時(shí)的網(wǎng)絡(luò)新聞推薦算法,該算法將用戶的位置作為相似性度量的一部分,以期緩解多樣性問(wèn)題。PBnwrec[16]則提出了新聞內(nèi)容的隱秘性度量指標(biāo),通過(guò)檢測(cè)新聞的隱含信息,緩解推薦系統(tǒng)的稀疏性問(wèn)題。HARTnwrec[17]是一種基于Apache Spark框架的分布式推薦系統(tǒng),與本文的實(shí)現(xiàn)框架相似。
圖6為推薦系統(tǒng)的推薦MAP結(jié)果。圖中nwrecsys在不同K值下的MAP結(jié)果均優(yōu)于其他的推薦算法,這是因?yàn)楸疚乃惴ㄍ瑫r(shí)考慮了新聞內(nèi)容級(jí)別的推薦規(guī)則和新聞標(biāo)題級(jí)別的推薦規(guī)則,基于效用模型將兩者關(guān)聯(lián),對(duì)新聞系統(tǒng)的推薦準(zhǔn)確率實(shí)現(xiàn)了明顯的提高。
圖6 推薦系統(tǒng)的推薦MAP結(jié)果
圖7為推薦算法的平均多樣性結(jié)果,可以看出,推薦內(nèi)容的數(shù)量越多則多樣性越低。原因在于選擇的新聞越多,推薦的新聞越契合用戶的興趣,推薦的新聞相似性則越高。nwrecsys的多樣性明顯高于其他幾個(gè)推薦算法。
圖7 推薦系統(tǒng)的平均多樣性結(jié)果
為了仿真新聞系統(tǒng)的冷啟動(dòng)問(wèn)題,參考文獻(xiàn)[18]的實(shí)驗(yàn)方法:將70%的新聞內(nèi)容分為訓(xùn)練子集,30%的新聞內(nèi)容分為測(cè)試子集。訓(xùn)練集包含評(píng)分信息、點(diǎn)擊量、閱讀時(shí)長(zhǎng)的反饋信息,測(cè)試集不包含任何的顯式反饋信息和隱式反饋信息,測(cè)試推薦系統(tǒng)在不同K值條件下的性能。新聞冷啟動(dòng)問(wèn)題中,因?yàn)樾掳l(fā)布的新聞沒(méi)有被閱讀的歷史記錄,所以大多數(shù)推薦算法無(wú)法工作。圖8為推薦算法對(duì)于新聞冷啟動(dòng)場(chǎng)景的平均MAP結(jié)果,圖中顯示,本文算法的MAP結(jié)果優(yōu)于其他的推薦算法,原因在于本文算法設(shè)計(jì)了標(biāo)題的概率模型,有助于向用戶推薦新發(fā)布的新聞。
圖8 推薦算法對(duì)于新聞冷啟動(dòng)場(chǎng)景的平均MAP結(jié)果
最終評(píng)測(cè)了不同閾值參數(shù)對(duì)推薦系統(tǒng)性能的影響。圖9顯示了推薦系統(tǒng)對(duì)于閾值的敏感性,可以看出min_uconf和min_tconf的值越低,推薦規(guī)則越多,而這些多余的規(guī)則導(dǎo)致置信度降低。總體而言,閾值越低,推薦系統(tǒng)的精度越低。
(a) 參數(shù)min_uconf的敏感性結(jié)果
(b) 參數(shù)min_tconf的敏感性結(jié)果圖9 推薦系統(tǒng)對(duì)于閾值的敏感性
作為線上應(yīng)用程序的一部分,計(jì)算效率是決定實(shí)用性的關(guān)鍵因素。評(píng)估了推薦算法的響應(yīng)時(shí)間,結(jié)果如圖10所示。NTrecsys算法、LAPnwrec算法、PBnwrec算法并未對(duì)時(shí)間效率做優(yōu)化處理,對(duì)于大數(shù)據(jù)集的響應(yīng)時(shí)間較長(zhǎng);HARTnwrec是一種基于Apache Spark框架的分布式推薦系統(tǒng),平均執(zhí)行時(shí)間約為0.4 s;本文算法的平均執(zhí)行時(shí)間約為0.5 s。因此HARTnwrec與本文算法都具有較好的速度。
圖10 推薦算法的平均執(zhí)行時(shí)間
主流的新聞推薦方法將用戶點(diǎn)擊量作為隱式反饋信息來(lái)理解用戶的行為,但點(diǎn)擊量無(wú)法反映用戶的真實(shí)興趣。本文提出了基于高效用項(xiàng)集挖掘和詞義歸納的新聞推薦系統(tǒng),從語(yǔ)料庫(kù)和用戶交互兩個(gè)方面分析新聞系統(tǒng),將用戶點(diǎn)擊量和其他輔助屬性作為指標(biāo)建立新聞的效用模型,通過(guò)效用模型能夠支持對(duì)系統(tǒng)目標(biāo)的權(quán)衡,并且緩解冷啟動(dòng)問(wèn)題。
本文初步研究了新聞推薦系統(tǒng),因?yàn)橛⑽恼Z(yǔ)料庫(kù)的數(shù)據(jù)量較小,并且英文新聞的資源易于獲取,因此將英文新聞的資源作為研究對(duì)象。未來(lái)將收集中文語(yǔ)料庫(kù),選擇合適的中文新聞數(shù)據(jù)集作為實(shí)驗(yàn)數(shù)據(jù)集,針對(duì)中文新聞的推薦問(wèn)題做深入研究。