何穎,劉英華,鄒妍
(赤峰學(xué)院數(shù)學(xué)與計(jì)算機(jī)科學(xué)學(xué)院,赤峰024000)
推薦系統(tǒng)(Recommendation System)是一種信息過濾系統(tǒng),根據(jù)分析用戶的興趣特點(diǎn)和歷史行為數(shù)據(jù)可以預(yù)測用戶對物品的評(píng)分或偏好,幫助用戶決策分析[1]。推薦系統(tǒng)具有以下兩個(gè)最顯著的特性:①主動(dòng)化。從用戶的角度來看,傳統(tǒng)搜索引擎解決信息過載是最直接,最有效的方式,但它需要用戶有明確的目標(biāo),然后輸入目標(biāo)關(guān)鍵詞進(jìn)行搜索相似的內(nèi)容,但是在實(shí)際生活應(yīng)用中,用戶有時(shí)不明確自己的需求甚至存在潛在的隱形需求,傳統(tǒng)搜索引擎就無法向用戶提供準(zhǔn)確的服務(wù)。而推薦系統(tǒng)可以不必掌握用戶的明確需求,而是通過分析用戶的歷史行為數(shù)據(jù),主動(dòng)為用戶推薦用戶感興趣的信息。②個(gè)性化。推薦系統(tǒng)適合挖掘長尾數(shù)據(jù)[2](Long tail data),將用戶感興趣的信息個(gè)性化推送給用戶,滿足不同用戶不同的需求。推薦系統(tǒng)已經(jīng)開始廣泛運(yùn)用在各個(gè)領(lǐng)域,但是對于推薦系統(tǒng)的優(yōu)化仍然是一個(gè)難以解決的問題,目前主流的推薦系統(tǒng)技術(shù)是協(xié)同過濾推薦[3](Collaborative Filtering Recommendation)技術(shù)或基于內(nèi)容推薦(Content-based Recommendations)技術(shù)。協(xié)同過濾推薦技術(shù)一般又可細(xì)分為基于物品的協(xié)同過濾(Item-Based)和基于用戶(User-Based)的協(xié)同過濾推薦,二者本質(zhì)上沒有區(qū)別,一般都是采用最近領(lǐng)[4](KNN)算法,只是各自側(cè)重點(diǎn)不同,前者側(cè)重于搜索物品相似度,后者側(cè)重于搜索相似用戶。內(nèi)容推薦技術(shù)其主要思想是根據(jù)用戶過去喜歡的物品,為用戶推薦和用戶過去喜歡的物品相似的物品。
在新聞?lì)I(lǐng)域,推薦系統(tǒng)將用戶的特征作為依據(jù),利用用戶歷史行為數(shù)據(jù)進(jìn)而挖掘用戶可能感興趣的文章內(nèi)容并推送給用戶,以減少用戶在新聞搜索上花費(fèi)的時(shí)間和精力?;趦?nèi)容推薦系統(tǒng)是當(dāng)下最符合解決新聞信息在傳播過程降低價(jià)值和效率的有效解決方式,考慮到單一推薦算法的不足,本系統(tǒng)根據(jù)用戶自定義標(biāo)簽、行為屬性以及興趣愛好作為特征,將用戶感興趣的新聞推送給用戶,對推薦系統(tǒng)進(jìn)行了個(gè)性化推薦策略優(yōu)化,解除了傳統(tǒng)搜索引擎對明確目標(biāo)需求的依賴,獲得了有針對性地、用戶喜愛的信息內(nèi)容。該系統(tǒng)的實(shí)現(xiàn)對于提升新聞信息在用戶中的推送效果、為用戶增加良好的用戶體驗(yàn)都有著較高的參考價(jià)值。
在真實(shí)應(yīng)用場景中,往往會(huì)使用一系列具有代表性的屬性去描述物品的特征,這些屬性通??煞譃榻Y(jié)構(gòu)化屬性和非結(jié)構(gòu)化屬性。本系統(tǒng)構(gòu)建了新聞熱度值屬性與新聞標(biāo)簽屬性來描述新聞特征。
(1)新聞熱度值計(jì)算。對于特定新聞?lì)I(lǐng)域,其熱度的公式計(jì)算是:
其中,hotValue 是新聞熱度分,indexValue 表示初始新聞熱度分,userValue 是用戶交互產(chǎn)生的熱度分,timeValue 代表隨時(shí)間衰弱的熱度分。新聞入庫后,首先對新聞進(jìn)行聚類分析,對于不同類型的新聞系統(tǒng)要為其賦予相應(yīng)的初始熱度值,隨后該新聞進(jìn)入推薦列表進(jìn)行熱度值排序;隨著新聞不斷被用戶瀏覽、評(píng)價(jià)、收藏、閱讀等,這些用戶行為可被視為幫助提升新聞熱度。由于新聞具有較強(qiáng)的時(shí)效性,因此新聞發(fā)布后,熱度需隨著時(shí)間推移而衰弱。
(2)新聞標(biāo)簽統(tǒng)計(jì)。構(gòu)建自定義標(biāo)簽是為解決新用戶加入系統(tǒng)后遇到冷啟動(dòng)問題,用戶選擇標(biāo)簽后系統(tǒng)生成“為你推薦”內(nèi)容,這里為用戶選取具有代表性的標(biāo)簽供用戶選擇:AI、技術(shù)、綜藝、互聯(lián)網(wǎng)、字節(jié)跳動(dòng)、金融、特朗普、脫貧、公益、美國、新冠肺炎、文化、音樂、電影等標(biāo)簽。這些社會(huì)化的標(biāo)簽既可以作為新聞資源分類的工具,也可以側(cè)面反映用戶個(gè)人喜愛偏好。這部分偽代碼如下:
在確定好新聞的特征和用戶的偏好模型后,需要計(jì)算新聞之間的相似度??梢允褂眯侣勚黝}詞或者正文內(nèi)容的重合度來衡量新聞的相似度。新聞標(biāo)題是新聞?wù)牡母叨雀爬?,?dāng)兩則新聞標(biāo)題重合度越高,新聞?wù)膬?nèi)容相似度也越高。因此本系統(tǒng)對新聞標(biāo)題進(jìn)行分詞處理并提取出關(guān)鍵詞,對于關(guān)鍵詞相似度計(jì)算采用切比雪夫距離[5](Chebyshev Distance)計(jì)算方法。在二維平面中,計(jì)算點(diǎn)a(x1,y1)與b(x2,y2)橫縱坐標(biāo)差的最大值的計(jì)算公式如下:
在推薦算法中評(píng)價(jià)用戶是否喜歡物品主流技術(shù)是利用監(jiān)督學(xué)習(xí)(Supervised Learning)或非監(jiān)督學(xué)習(xí)(Unsupervised Learning),評(píng)判用戶對物品的喜好程度,根據(jù)用戶的喜好程度,為用戶生成一個(gè)偏好模型,進(jìn)而對未知的物品進(jìn)行分析預(yù)測評(píng)判。
在基于內(nèi)容推薦系統(tǒng)中,使用監(jiān)督學(xué)習(xí),利用用戶歷史閱讀數(shù)據(jù),學(xué)習(xí)用戶對各種新聞的偏好程度,然后結(jié)合新聞標(biāo)簽特征計(jì)算出用戶對新聞的偏好程度。
推薦系統(tǒng)是基于用戶大量的歷史行為數(shù)據(jù)為用戶進(jìn)行相應(yīng)的推薦,但是對于新加入系統(tǒng)的用戶,系統(tǒng)中尚未存儲(chǔ)新用戶的歷史行為數(shù)據(jù),這就是冷啟動(dòng)問題。常見的解決冷啟動(dòng)實(shí)現(xiàn)方法如下:
(1)基于熱門數(shù)據(jù)推薦實(shí)現(xiàn)冷啟動(dòng)。熱門數(shù)據(jù)是指(某類)物品依照事先預(yù)定好的規(guī)則排序得到的排名靠前的數(shù)據(jù)。在冷啟動(dòng)時(shí),推送的熱門數(shù)據(jù)需要具有多樣性,系統(tǒng)事先不知道用戶的興趣,而用戶可能擁有很多不同的興趣甚至潛在的興趣,為了匹配到用戶復(fù)雜多樣的興趣,系統(tǒng)同樣需要提供多樣的熱門數(shù)據(jù)。熱門數(shù)據(jù)反映大眾的偏好,雖然不能個(gè)性化推薦給用戶,但是當(dāng)用戶與熱門數(shù)據(jù)進(jìn)行交互,產(chǎn)生了歷史行為數(shù)據(jù)之后,即可進(jìn)行針對用戶歷史行為數(shù)據(jù)的個(gè)性化推薦,如圖1 所示。
圖1 個(gè)性化新聞推薦系統(tǒng)的熱門數(shù)據(jù)
(2)利用用戶注冊信息。用戶注冊信息是指當(dāng)新用戶加入系統(tǒng)中所填寫的信息。這些注冊信息是用戶與系統(tǒng)連接的橋梁,系統(tǒng)根據(jù)用戶注冊填寫的信息分析用戶感興趣的新聞?lì)I(lǐng)域,并把屬于用戶感興趣的領(lǐng)域的新聞推送給用戶。在本系統(tǒng)中新用戶在加入系統(tǒng)時(shí),可以選擇感興趣的自定義標(biāo)簽,個(gè)性化推薦系統(tǒng)根據(jù)用戶的注冊時(shí)選擇的自定義標(biāo)簽推送相應(yīng)的新聞。此外,某些推薦系統(tǒng)將用戶的注冊信息以及第三方社交平臺(tái)的個(gè)人信息采集起來,利用大數(shù)據(jù)技術(shù)構(gòu)建一個(gè)包括但不限于用戶性別、職業(yè)、收入、興趣點(diǎn)等屬性的精準(zhǔn)用戶畫像[6],這種基于大數(shù)據(jù)用戶畫像的推薦系統(tǒng),其推薦精度得到了大幅提升,收到用戶廣泛好評(píng),如圖2 所示。
圖2 新用戶選擇感興趣的自定義標(biāo)簽
個(gè)性化推薦系統(tǒng)需要靈活多變的推薦策略以滿足不同的用戶的不同需求,系統(tǒng)需要根據(jù)用戶的興趣特點(diǎn)推薦其感興趣的對象的活動(dòng)。個(gè)性化推薦策略既能豐富新聞推薦系統(tǒng)的維度,又能滿足不同維度偏好的用戶在瀏覽過程中激發(fā)其潛在的興趣發(fā)展需求。系統(tǒng)的構(gòu)建策略和使用流程主要可分為以下幾個(gè)階段:
①用戶登錄個(gè)性化新聞推薦網(wǎng)站,②網(wǎng)站自動(dòng)檢測用戶是否注冊,③不同用戶不同的推薦策略,對于新用戶進(jìn)行注冊并讓用戶選擇感興趣的新聞?lì)I(lǐng)域,即選擇自定義新聞標(biāo)簽。如果不選擇自定義標(biāo)簽,則自動(dòng)推薦實(shí)時(shí)熱門數(shù)據(jù);對于已經(jīng)注冊過用戶,檢測數(shù)據(jù)庫是否存儲(chǔ)用戶的歷史行為數(shù)據(jù),以分析用戶對新聞的偏好程度并把用戶感興趣的新聞推送給用戶。如果用戶雖然已經(jīng)注冊,但是數(shù)據(jù)庫尚未存儲(chǔ)用戶的歷史行為數(shù)據(jù),則檢測該用戶是否選擇了自定義標(biāo)簽,若存在自定義標(biāo)簽,則按自定義標(biāo)簽予以推薦,沒有選擇自定義標(biāo)簽則推薦熱門數(shù)據(jù),如圖3 所示。
圖3 個(gè)性化推薦策略流程圖
Vue.js 是一套輕量級(jí)的基于MVVM[7](Model View ViewModel)設(shè)計(jì)構(gòu)建用戶界面的漸進(jìn)式JavaScript 框架,與其他重量級(jí)框架不同的是,因其被設(shè)計(jì)為可自底向上增量開發(fā)的逐層應(yīng)用,使其具有高性能、靈活性強(qiáng)的特點(diǎn),現(xiàn)如今已被各大互聯(lián)網(wǎng)公司和組織采用。Vue.js 的主要優(yōu)點(diǎn)有:①雙向數(shù)據(jù)綁定,Vue.js 會(huì)實(shí)時(shí)自動(dòng)響應(yīng)數(shù)據(jù)的變化情況,Vue 通過Object.defineProperty()方法監(jiān)考數(shù)據(jù)變化并更新視圖,視圖變化更新數(shù)據(jù)則可以通過事件監(jiān)聽實(shí)現(xiàn),通常是使用input 標(biāo)簽監(jiān)聽input 事件,這也是Vue.js 最大的優(yōu)點(diǎn),通過MVVM思想實(shí)現(xiàn)數(shù)據(jù)的雙向綁定,簡化了Web 前端開發(fā)流程,大大提高開發(fā)效率。②組件化開發(fā),Vue.js 通過組件把一個(gè)整體應(yīng)用中的各種模塊拆分到一個(gè)一個(gè)單獨(dú)的組件中,降低了耦合度,便于后期維護(hù)系統(tǒng)。③具有豐富的組件庫,在實(shí)際的開發(fā)過程中,豐富的組件庫可以大大減少開發(fā)成本,提高開發(fā)效率。基于上述優(yōu)點(diǎn),本系統(tǒng)使用了Vue.js 框架搭建前端界面,如圖4 所示。
圖4 個(gè)性化推薦系統(tǒng)展示界面(部分)
本文提出了基于內(nèi)容推薦系統(tǒng)的推薦策略優(yōu)化方法,通過個(gè)性化新聞推薦系統(tǒng)把用戶感興趣的新聞及時(shí)推薦給用戶,并且解決了傳統(tǒng)推薦系統(tǒng)對目的搜索的依賴以及推薦系統(tǒng)的冷啟動(dòng)問題,極大提升了用戶粘性,避免用戶流失,因此對于新聞門戶網(wǎng)站,基于內(nèi)容推薦的個(gè)性化推薦系統(tǒng)具有廣闊的應(yīng)用前景。本文研究的不足之處在于基于內(nèi)容推薦系統(tǒng)新穎性不足,只能根據(jù)用戶的歷史行為數(shù)據(jù)進(jìn)行預(yù)測推薦,不利于發(fā)掘用戶潛在的感興趣的新聞,因此在實(shí)際開發(fā)中可以結(jié)合多種推薦算法對它進(jìn)行改進(jìn),例如可以將協(xié)同過濾技術(shù)和基于內(nèi)容的推薦技術(shù)結(jié)合起來混合使用,可以達(dá)到取長補(bǔ)短的效果。這種混合推薦技術(shù)[8]可以利用加權(quán)、分層等方式進(jìn)一步提升推薦的精度。通過一系列加權(quán)計(jì)算,找出兩個(gè)算法相應(yīng)的權(quán)重比例組合處理,得到最優(yōu)結(jié)果并推薦給用戶,分層方式把一個(gè)算法的輸出作為輸入到另一個(gè)算法,逐步縮小推薦候選集,進(jìn)一步得到更為精確的推薦結(jié)果。