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