朱若馨,李研偉
(陜西國防工業(yè)職業(yè)技術(shù)學(xué)院 陜西 西安 710300)
近年來,很多用戶都喜歡使用在線新聞網(wǎng)站和手機(jī)APP來進(jìn)行新聞閱讀[1]。但是,由于每天都有大量新聞產(chǎn)生和發(fā)布,用戶難以在有限的時(shí)間內(nèi)從大量新聞中找到自己感興趣的內(nèi)容,面臨嚴(yán)重的新聞信息過載[2]。個(gè)性化新聞推薦可以根據(jù)用戶個(gè)人興趣對(duì)候選新聞進(jìn)行排序展示,是提升用戶在線新聞閱讀體驗(yàn)的一項(xiàng)重要技術(shù)。如何設(shè)計(jì)一個(gè)高效、精準(zhǔn)的個(gè)性化推薦系統(tǒng)是新聞平臺(tái)的關(guān)鍵問題[3]。
個(gè)性化新聞推薦的簡化流程見圖1[4-5]:從用戶閱讀歷史中挖掘用戶興趣,再根據(jù)用戶興趣對(duì)候選新聞進(jìn)行個(gè)性化排序,最終將排名靠前的新聞?wù)故窘o用戶。雖然對(duì)推薦系統(tǒng)已開展了廣泛的研究,但現(xiàn)有推薦算法仍然存在局限性:(1)新聞?dòng)袕?qiáng)時(shí)效性。新聞平臺(tái)每天會(huì)產(chǎn)生大量新的新聞,而舊的新聞會(huì)快速消失。這帶來了嚴(yán)重的冷啟動(dòng)問題,導(dǎo)致許多如協(xié)同過濾等依賴用戶行為的推薦方法無法使用;(2)新聞文章具有豐富的文本,這些文本包含重要信息未被利用,不能簡單地使用ID等特征來表示新聞;(3)準(zhǔn)確地建模用戶對(duì)新聞的興趣存在挑戰(zhàn)。用戶的興趣通常比較多樣并隨時(shí)間動(dòng)態(tài)演化,需要基于大量的用戶反饋行為來挖掘和建模。然而新聞平臺(tái)上往往不具有顯式的用戶反饋,甚至隱式反饋也十分稀疏。因此,新聞推薦是一個(gè)重要并具有挑戰(zhàn)性的研究課題。
圖1 個(gè)性化新聞推薦流程
推薦系統(tǒng)設(shè)計(jì)主要可以分為3個(gè)部分:數(shù)據(jù)信息層、數(shù)據(jù)處理層和用戶交互層。在數(shù)據(jù)信息層,主要將用戶的行為,如在APP上的閱讀新聞、停留時(shí)間等信息存儲(chǔ)到Hadoop集群中,作為離線日志使用;在數(shù)據(jù)處理層,主要使用深度學(xué)習(xí)的方法從離線日志中提取用戶的興趣,同時(shí)在新聞庫中使用用戶的興趣進(jìn)行匹配,生成候選新聞集;在用戶交互層中,我們將候選新聞集反饋給用戶,當(dāng)用戶產(chǎn)生瀏覽、點(diǎn)擊等行為后,再將日志落地到Hadoop集群中,以此來優(yōu)化推薦系統(tǒng)。
在本文中,我們利用新聞豐富的文本信息來實(shí)現(xiàn)用戶的個(gè)性化新聞推薦。
在基于內(nèi)容的推薦系統(tǒng)中,我們通過對(duì)新聞標(biāo)題進(jìn)行文本分類,對(duì)已閱讀及未閱讀的新聞打上相應(yīng)標(biāo)簽?;谛侣剺?biāo)簽進(jìn)行推薦的核心就是如何對(duì)文本進(jìn)行準(zhǔn)確的自動(dòng)化分類。本文的推薦系統(tǒng)中,我們使用TextCNN模型對(duì)文本進(jìn)行分類。
Kim首先提出了TextCNN模型。網(wǎng)絡(luò)結(jié)構(gòu)見圖2。
圖2 TextCNN網(wǎng)絡(luò)結(jié)構(gòu)
其中,b是偏置,f是一個(gè)非線性函數(shù)。將卷積核w應(yīng)用在當(dāng)前句子所有的可能位置{x1:h,x2:h+1,…,xn-h+1:n},會(huì)得到一個(gè)特征向量:
然后我們?cè)诘玫降奶卣飨蛄可?,使用max-pooling操作,在特征向量中取最大值,max-polling操作是獲取對(duì)當(dāng)前卷積核響應(yīng)最大的值,同時(shí)還可以將變長的向量長度變?yōu)槎ㄩL的特征,這樣我們就可以得到卷積核對(duì)應(yīng)的特征值。
在實(shí)際使用中,我們可以使用多個(gè)卷積核與多層卷積網(wǎng)絡(luò)進(jìn)行深度特征的提取,最后利用全連接網(wǎng)絡(luò)使輸出特征數(shù)與分類類別匹配,來實(shí)現(xiàn)文本分類。
本文實(shí)驗(yàn)環(huán)境的設(shè)置和實(shí)驗(yàn)平臺(tái)的搭建如下:
(1)硬件方面:Windows10系統(tǒng)、CPU Inter(R) Core(TM) i7-8750H 2.20 GHz、內(nèi)存8 GB。
(2)軟件和依賴的庫:Python3.7、Tensorflow_gpu-1.13.1等。
3.2.1 TextCNN模型可調(diào)參數(shù)設(shè)置
在采用TextCNN模型進(jìn)行文本分類時(shí),需要對(duì)參數(shù)進(jìn)行選擇。對(duì)于模型中的可變參數(shù),我們選擇了表1所示的參數(shù)。
表1 TextCNN可調(diào)參數(shù)設(shè)置
3.2.2 實(shí)驗(yàn)設(shè)計(jì)
在實(shí)驗(yàn)中,我們使用THUCNews數(shù)據(jù)集進(jìn)行測試。THUCNews數(shù)據(jù)集是根據(jù)新浪新聞RSS訂閱頻道2005-2011年間的歷史數(shù)據(jù)篩選過濾生成,包含74萬篇新聞文檔(2.19 GB),劃分出14個(gè)候選分類類別:財(cái)經(jīng)、彩票、房產(chǎn)、股票、家居、教育、科技、社會(huì)、時(shí)尚、時(shí)政、體育、星座、游戲、娛樂。
我們選擇多個(gè)基準(zhǔn)驗(yàn)證TextCNN 模型的分類性能,將TextCNN與傳統(tǒng)的機(jī)器學(xué)習(xí)方法進(jìn)行對(duì)比。其中,TextCNN采用一層卷積層稱為TextCNN-1,TextCNN-2采用兩層卷積網(wǎng)絡(luò),傳統(tǒng)機(jī)器學(xué)習(xí)方法包括樸素貝葉斯(NB)、最近鄰(KNN)和支持向量機(jī)(SVM)。使用各分類整體平均精確率(precision)、召回率(recall)和 F1值(F-measure)評(píng)價(jià)不同模型的分類效果,作為衡量分類器性能的標(biāo)準(zhǔn)。
3.2.3 結(jié)果分析
在訓(xùn)練過程中,我們隨機(jī)選取90%作為訓(xùn)練集,5%作為測試集,5%作為驗(yàn)證集,結(jié)果見表2。
表2 模型分類結(jié)果比較
通過表2可以發(fā)現(xiàn):(1)采用預(yù)訓(xùn)練詞向量,作為模型的特征輸入分類模型,在相同的數(shù)據(jù)集上各個(gè)分類模型均取得了80%以上的精確率,說明預(yù)訓(xùn)練詞向量表的的文本信息基本可以滿足分類需要。(2)無論單層卷積神經(jīng)網(wǎng)絡(luò)還是多層卷積神經(jīng)網(wǎng)絡(luò),取得的分類效果都優(yōu)于3種傳統(tǒng)機(jī)器學(xué)習(xí)算法,說明CNN模型在文本分類上有巨大的提升,相比于Naive Bayesian、KNN和SVM,TextCNN-2的F1值分別提升了9.97%、6.38%、4.52%。因此,我們可以得出,使用TextCNN能夠提取更加全面的局部文本塊特征信息,在文本分類效果上有很好的提升。
網(wǎng)頁前端使用CSS和HTML完成頁面布局,Java Script實(shí)現(xiàn)新聞的動(dòng)態(tài)效果。根據(jù)預(yù)先設(shè)定的新聞分類標(biāo)簽,我們將相應(yīng)的新聞歸類到不同的欄目。同時(shí),在首頁根據(jù)用戶興趣實(shí)現(xiàn)個(gè)性化推薦,使網(wǎng)頁實(shí)現(xiàn)千人千面,不同的用戶看到的是自己感興趣的新聞。
在網(wǎng)站后端,我們使用Hadoop存儲(chǔ)用戶的瀏覽日志,然后通過個(gè)性化推薦模塊產(chǎn)生候選新聞后,將其存儲(chǔ)在Redis中,在前端發(fā)送請(qǐng)求給后端后,可以迅速將推薦候選新聞反饋給前端,實(shí)現(xiàn)高并發(fā)條件下的高可用性。此外,我們?cè)诤蠖瞬渴鸹赥ensorflow的深度學(xué)習(xí)模型,使系統(tǒng)獲取的新聞可以實(shí)現(xiàn)實(shí)時(shí)分類打標(biāo)簽。
本文針對(duì)現(xiàn)有推薦系統(tǒng)的局限性,提出一種基于內(nèi)容的新聞個(gè)性化推薦算法。該算法利用新聞豐富的文本信息,引入自然語言處理中的文本分類技術(shù),使用TextCNN模型對(duì)新聞自動(dòng)標(biāo)注,實(shí)現(xiàn)新聞的個(gè)性化推薦。相較于傳統(tǒng)的編輯推薦模式,可以省去大量的人工操作,還可以根據(jù)不同的用戶推薦不同的內(nèi)容,做到千人千面。調(diào)查顯示,基于內(nèi)容的個(gè)性化推薦系統(tǒng),受到用戶的廣泛好評(píng)。