王君威,余 粟
(上海工程技術(shù)大學(xué)機(jī)械與汽車工程學(xué)院,上海 201620)
隨著網(wǎng)絡(luò)的發(fā)展和電子設(shè)備的普及,人們已經(jīng)不再只是通過(guò)電視的新報(bào)道和紙質(zhì)報(bào)刊了解當(dāng)下正在發(fā)生的事情,利用電子設(shè)備獲取新聞消息成為當(dāng)前的主流趨勢(shì)。 打開(kāi)電子設(shè)備時(shí),會(huì)看到太多對(duì)用戶無(wú)用的嘈雜信息。 對(duì)用戶而言,沒(méi)有好的推薦將很難獲取有用信息,若不能根據(jù)用戶個(gè)性化的需要加以篩選,信息過(guò)載的情況就難以避免。 用戶需求明確時(shí),搜索能快速幫助用戶滿足需求。 當(dāng)用戶需求不明確時(shí),個(gè)性化新聞推薦成為了重要解決方案。
隨著今日頭條、抖音等App 的飛速發(fā)展,推薦系統(tǒng)的價(jià)值已得到了業(yè)界的廣泛認(rèn)可。 能夠向用戶提供有用信息,滿足用戶需求的新聞推薦也得到了相關(guān)學(xué)者的關(guān)注。 萬(wàn)梅等學(xué)者[1]根據(jù)社交網(wǎng)絡(luò)不斷演化的特點(diǎn),提出了一種基于神經(jīng)網(wǎng)絡(luò)嵌入和社交網(wǎng)絡(luò)動(dòng)態(tài)演化的新聞推薦算法,基于神經(jīng)網(wǎng)絡(luò)嵌入模型來(lái)學(xué)習(xí)用戶在時(shí)間序列和社交網(wǎng)絡(luò)中的行為特征,再使用無(wú)監(jiān)督的隨機(jī)游走學(xué)習(xí)用戶的網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu),通過(guò)插值法將行為特征向量和網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)匯總表示用戶向量,使用核函數(shù)將用戶的交互映射到低維的向量空間,從而提高了相似度計(jì)算的效率。 劉羽茜等學(xué)者[2]考慮到新聞的內(nèi)容特征和瀏覽新聞之間的關(guān)系、相應(yīng)的時(shí)序變化,以及不同新聞對(duì)用戶的重要性等方面,提出了一種全面提取用戶和新聞特征的新聞推薦模型。 該模型基于深度學(xué)習(xí),使用注入注意力機(jī)制的卷積神經(jīng)網(wǎng)絡(luò)深度提取新聞文本特征,通過(guò)對(duì)用戶的新聞瀏覽記錄進(jìn)行時(shí)序處理,獲取用戶的興趣趨勢(shì),使得注入注意力機(jī)制的深度特征融合新聞推薦模型角度更加全面。 張丹等學(xué)者[3]考慮可以基于用戶歷史瀏覽的時(shí)間序列來(lái)做推薦,使用隱馬爾可夫模型,并在其基礎(chǔ)上加入了狀態(tài)駐留的時(shí)間元素,將隱馬爾可夫模型的五元素?cái)U(kuò)展為六元素,以此來(lái)提高新聞推薦的準(zhǔn)確度。袁仁進(jìn)等學(xué)者[4]針對(duì)新聞推薦中的用戶畫(huà)像構(gòu)建與用戶興趣流動(dòng)的問(wèn)題,提出一種面向新聞推薦的用戶興趣模型構(gòu)建和更新方法,使用向量空間與bisecting K-means 一同構(gòu)建原始用戶興趣模型,然后使用艾賓浩斯遺忘曲線為基礎(chǔ)構(gòu)造遺忘函數(shù)來(lái)描述用戶的興趣變遷,更好地反映用戶的興趣變化。陶天一等學(xué)者[5]將知識(shí)圖譜中“實(shí)體-關(guān)系-實(shí)體”表示事物關(guān)系的形式引入到新聞推薦中來(lái),提出KHA-CNN,基于卷積神經(jīng)網(wǎng)絡(luò)和層次注意力機(jī)制獲取的新聞報(bào)道的特征,根據(jù)用戶的交互來(lái)獲取用戶畫(huà)像,基于兩方特征實(shí)現(xiàn)推薦。 王利娥等學(xué)者[6]看到當(dāng)前的推薦模型不能有效地平衡差分隱私的噪聲,提出了一種融合知識(shí)圖譜和隱私保護(hù)的新聞推薦方法,采用多通道卷積神經(jīng)網(wǎng)絡(luò)模型融合新聞標(biāo)題、知識(shí)圖譜中實(shí)體和實(shí)體上下文等多維度的特征向量;其次,利用注意力機(jī)制為不同敏感程度的特征向量添加不同程度的噪聲,從而降低噪聲對(duì)數(shù)據(jù)分析的影響;然后,對(duì)加權(quán)的用戶特征向量添加統(tǒng)一的拉普拉斯噪聲,以保證用戶數(shù)據(jù)的安全性;利用兩階段的隱私保護(hù)機(jī)制來(lái)提高用戶的隱私保護(hù)和推薦效果。 朱文躍等學(xué)者[7]針對(duì)傳統(tǒng)推薦系統(tǒng)中存在的共性問(wèn)題,冷啟動(dòng)、數(shù)據(jù)稀疏、推薦精度較低等問(wèn)題,提出了基于事件本體的推薦算法,結(jié)合新聞結(jié)構(gòu)和語(yǔ)義構(gòu)建事件本體,對(duì)用戶瀏覽的新聞抽取要素,構(gòu)建用戶興趣模型,綜合事件本體的相似度、用戶興趣相似度、非層次結(jié)構(gòu)相似度三個(gè)角度完成推薦。
本文分析了用戶活躍度和新聞時(shí)效對(duì)新聞推薦的影響,針對(duì)新聞場(chǎng)景提出一種個(gè)性化推薦方式。通過(guò)新聞時(shí)效性和用戶活躍度的判斷,對(duì)item和user的協(xié)同過(guò)濾進(jìn)行改進(jìn)、并加上冷啟動(dòng)進(jìn)行新聞報(bào)道的召回,盡可能獲取包含用戶興趣點(diǎn)的所有新聞報(bào)道,基于目標(biāo)用戶的評(píng)分進(jìn)行排序,產(chǎn)生面向用戶的個(gè)性化推薦。
新聞報(bào)道的推薦和傳統(tǒng)的物品推薦有些許不同,在物品推薦中,物品的數(shù)量和種類在相對(duì)長(zhǎng)的一段時(shí)間里面會(huì)保持穩(wěn)定,不會(huì)發(fā)生較大的變化;而且短期內(nèi)用戶對(duì)物品的喜好也不會(huì)發(fā)生大的變動(dòng)。 與之不同的是,世界上每天都會(huì)發(fā)布大量的新聞報(bào)道,新聞的數(shù)量隨著時(shí)間的推移也會(huì)越來(lái)越多。
在新聞推薦中已經(jīng)報(bào)道的新聞,如果當(dāng)時(shí)沒(méi)有及時(shí)推薦給感興趣的用戶,那么在相對(duì)較短的一段時(shí)間之后,不會(huì)再推薦對(duì)應(yīng)的用戶。 對(duì)用戶來(lái)講,一般情況下也不會(huì)對(duì)過(guò)往的新聞報(bào)道感興趣。 物品推薦往往還存在用戶對(duì)推薦結(jié)果的顯式評(píng)價(jià)(包括點(diǎn)贊、關(guān)注、購(gòu)買(mǎi)、評(píng)價(jià)等行為),而新聞報(bào)道的推薦只能根據(jù)用戶的歷史交互來(lái)判斷推薦結(jié)果。 除此之外,活躍度高的用戶交互記錄較為豐富,而活躍度低的用戶交互記錄相對(duì)稀疏,在判斷目標(biāo)用戶的興趣相似集合時(shí),往往會(huì)發(fā)現(xiàn)活躍度高的用戶與絕大部分用戶的興趣都相近,難以區(qū)分用戶的相似情況,這就對(duì)個(gè)性化新聞推薦提出了較高的要求。
本文提出的個(gè)性化新聞推薦整體流程如圖1 所示。 在新聞平臺(tái)數(shù)據(jù)集的基礎(chǔ)上,對(duì)用戶交互、新聞報(bào)道等相關(guān)信息進(jìn)行數(shù)據(jù)分析和處理,將數(shù)據(jù)集通過(guò)召回層,從ItemCF 和UserCF 以及冷啟動(dòng)的角度對(duì)新聞進(jìn)行召回,并基于相似用戶集合或新聞集合對(duì)召回新聞的評(píng)分進(jìn)行排序,最后產(chǎn)生目標(biāo)用戶的個(gè)性化新聞推薦。
圖1 個(gè)性化新聞推薦模型Fig. 1 Personalized news recommendation model
1.2.1 協(xié)同過(guò)濾
協(xié)同過(guò)濾(Collaborative Filtering)是推薦領(lǐng)域中最重要的算法,實(shí)質(zhì)是根據(jù)用戶的交互歷史以及擁有類似興趣的用戶的交互記錄或曾經(jīng)感興趣的物品來(lái)給目標(biāo)用戶進(jìn)行物品推薦。 主要分為基于item的協(xié)同過(guò)濾和基于user 的協(xié)同過(guò)濾。 2 個(gè)算法的思想基本一致,核心在于類似用戶判定或喜好物品的相似物品判定,即物品或用戶相似度的計(jì)算。
基于item 的協(xié)同過(guò)濾是根據(jù)用戶曾經(jīng)喜歡的物品,從數(shù)據(jù)集中找到相似的物品,推薦給用戶。 而基于User 的協(xié)同過(guò)濾是基于用戶的交互歷史,從用戶集合中找到與目前用戶的興趣較為接近的用戶子集,基于這些不同用戶的交互喜好,給目標(biāo)產(chǎn)生新的推薦。
協(xié)同過(guò)濾根據(jù)用戶與物品的歷史交互,將用戶點(diǎn)贊、收藏、轉(zhuǎn)發(fā)等不同的行為進(jìn)行量化,將量化后的行為作為用戶對(duì)物品的評(píng)分,構(gòu)建成評(píng)分矩陣,評(píng)分大小表示用戶感興趣的程度。 無(wú)論基于item 的協(xié)同過(guò)濾、還是User 的協(xié)同過(guò)濾都是基于評(píng)分矩陣R找到與相似物品或相似用戶,基于同樣興趣愛(ài)好的人群或相似喜好物品的集合產(chǎn)生的個(gè)性化推薦。
由于新聞推薦場(chǎng)景與物品推薦場(chǎng)景不同,在新聞場(chǎng)景下很少有用戶看過(guò)新聞后會(huì)基于對(duì)新聞的喜好進(jìn)行點(diǎn)贊、收藏、轉(zhuǎn)發(fā),顯式行為數(shù)據(jù)的極度稀疏導(dǎo)致無(wú)法根據(jù)通用方式完成新聞評(píng)價(jià),本文使用用戶對(duì)新聞的歷史交互點(diǎn)擊作為用戶對(duì)物品評(píng)分的依據(jù)。
以基于User 的協(xié)同過(guò)濾算法為例,評(píng)分矩陣形式如下:
其中,R表示評(píng)分矩陣;U表示用戶集合;I表示物品集合;m和n分別表示用戶和物品的個(gè)數(shù);使用u(i,j)表示第i個(gè)用戶對(duì)第j個(gè)商品的評(píng)分。
協(xié)同過(guò)濾算法常用余弦相似度或皮爾遜相關(guān)系數(shù)來(lái)衡量用戶或物品的相似程度。
余弦相似度公式如下所示:
其中,u與v分別表示不同用戶的評(píng)分向量;i表示物品序號(hào);rui為用戶u對(duì)第i個(gè)物品的評(píng)分;表示用戶u對(duì)物品集合中所有物品的評(píng)分集合中的第i個(gè)物品的評(píng)分向量。
在現(xiàn)實(shí)情況下由于不同用戶對(duì)物品評(píng)分的偏好不同,有的習(xí)慣給高分、有的經(jīng)常給低分,會(huì)造成評(píng)價(jià)不統(tǒng)一,影響推薦的效果,為了平衡不同用戶對(duì)物品的評(píng)分偏差,皮爾遜相關(guān)系數(shù)以不同用戶的平均分為平衡點(diǎn)對(duì)評(píng)分進(jìn)行修正,降低評(píng)分的偏差。
皮爾遜相關(guān)系數(shù)計(jì)算方式如下:
1.2.2 基于業(yè)務(wù)場(chǎng)景改進(jìn)的協(xié)同過(guò)濾召回
(1)基于時(shí)效性改進(jìn)的ItemCF?;趇tem的協(xié)同過(guò)濾算法分析用戶對(duì)物品的交互記錄,找到目標(biāo)用戶曾經(jīng)喜歡的item,用戶對(duì)物品的交互記錄獲取的評(píng)分作為item向量,而不是使用item本身特征,從物品集合中找出這個(gè)喜好item最相似的item,這個(gè)item將被認(rèn)為是目標(biāo)用戶的可能喜好,產(chǎn)生推薦。
在新聞推薦場(chǎng)景下,時(shí)效性的要求要比普通的物品推薦高得多,為了滿足新聞推薦對(duì)時(shí)效性的需要,在傳統(tǒng)基于item 協(xié)同過(guò)濾推薦的基礎(chǔ)上,設(shè)定新聞報(bào)道時(shí)效的關(guān)聯(lián)規(guī)則,將當(dāng)前時(shí)間戳與報(bào)道發(fā)布的時(shí)間戳做差值,當(dāng)差值超過(guò)一定的限度,就不再將該新聞報(bào)道納入被推薦范圍內(nèi),差值越小,推薦的優(yōu)先度則越高。 為此,本文在相似度計(jì)算公式上做出改進(jìn),將時(shí)效性作為衡量新聞報(bào)道相似度的一部分。
在本文中,將2 個(gè)新聞報(bào)道的發(fā)布時(shí)間戳差值的絕對(duì)值的倒數(shù)作為衡量2 個(gè)物品之間時(shí)效性的判斷依據(jù),為了防止報(bào)道發(fā)布時(shí)間過(guò)近,導(dǎo)致該時(shí)效性的值過(guò)大影響整個(gè)推薦效果,在分母處加1,防止倒數(shù)趨于無(wú)窮大。 時(shí)效性公式如下:
其中,w表示時(shí)效性的權(quán)重;i、j分別表示報(bào)道集合中第i、j個(gè)報(bào)道的向量;it、jt分別表示第i、j個(gè)報(bào)道的發(fā)布時(shí)間戳。
改進(jìn)后的基于物品的相似度評(píng)判標(biāo)準(zhǔn)可用式(5)來(lái)描述:
(2)基于用戶活躍度改進(jìn)的UserCF。 基于User的協(xié)同過(guò)濾運(yùn)用用戶交互構(gòu)建的評(píng)分矩陣,在計(jì)算求得用戶相似度后,篩選出與目標(biāo)用戶興趣較一致的用戶集合,從這些用戶集合中,找出目標(biāo)用戶之前未曾接觸過(guò)的可能感興趣的物品,生成推薦序列,推薦給目標(biāo)用戶。
用戶集合中有部分活躍用戶對(duì)新聞報(bào)道有較高的關(guān)注度,交互記錄比較豐富,在評(píng)分矩陣中該用戶的評(píng)分向量較為稠密。 活躍用戶評(píng)分向量的方差較大,覆蓋面較為廣泛。 而普通用戶因?yàn)閭€(gè)性和偏好的關(guān)系,評(píng)分矩陣的向量極為稀疏。 因此在評(píng)價(jià)用戶相似時(shí),能夠發(fā)現(xiàn)大量普通用戶都與活躍用戶相似,不能很好區(qū)分用戶是否相似。
為此,本文在用戶相似度評(píng)判上做出改進(jìn),將用戶間的活躍度作為比值,活躍度大的作為分母,活躍度較小的作為分子,構(gòu)建活躍度的判定公式。 計(jì)算公式如下:
其中,u與v分別表示不同用戶,uh和vh分別表示2 個(gè)用戶的活躍度。 在新聞推薦的場(chǎng)景下,本文將用戶的活躍度設(shè)定為用戶點(diǎn)擊新聞的個(gè)數(shù)。
將用戶活躍度帶入用戶相似度判定公式中,可得:
(3)冷啟動(dòng)召回。 冷啟動(dòng)召回是在協(xié)同過(guò)濾召回外的補(bǔ)充,是基于用戶特征和物品特征,推斷出用戶可能感興趣的物品召回方式。 冷啟動(dòng)問(wèn)題主要分為用戶冷啟動(dòng)(即沒(méi)有用戶的交互記錄)和新聞冷啟動(dòng)(即新聞沒(méi)有被任何用戶點(diǎn)擊)。 本文針對(duì)冷啟動(dòng)的問(wèn)題,采用基于熱門(mén)新聞和地理位置的召回策略,作為額外的新聞?wù)倩匮a(bǔ)充方式。
(1)獲取目標(biāo)用戶在新聞平臺(tái)上的訪問(wèn)日志,包括用戶ID、用戶點(diǎn)擊的新聞報(bào)道ID,用戶點(diǎn)擊的時(shí)間戳Click_timestamp、該用戶點(diǎn)擊報(bào)道時(shí)所在的區(qū)域Click_region等特征。
(2)獲取用戶曾點(diǎn)擊過(guò)新聞報(bào)道的產(chǎn)生時(shí)間戳、以及該新聞報(bào)道的字?jǐn)?shù)、新聞報(bào)道的類型。
(3)根據(jù)用戶點(diǎn)擊時(shí)間戳,存儲(chǔ)用戶點(diǎn)擊新聞的交互記錄,構(gòu)建用戶-新聞-時(shí)間字典,將其轉(zhuǎn)換為用戶評(píng)分矩陣。
(4)根據(jù)用戶評(píng)分矩陣,使用改進(jìn)用戶活躍度的UserCF 查找相似用戶,召回新聞報(bào)道。
(5)根據(jù)特定新聞的用戶點(diǎn)擊情況,構(gòu)建新聞報(bào)道-用戶-時(shí)間字典,存儲(chǔ)新聞報(bào)道的向量,轉(zhuǎn)換成新聞評(píng)分矩陣。
(6)根據(jù)新聞評(píng)分矩陣,使用改進(jìn)時(shí)效性的ItemCF 來(lái)查找相似物品,借此召回新聞報(bào)道。
(7)根據(jù)用戶的點(diǎn)擊次數(shù)、用戶點(diǎn)擊報(bào)道的區(qū)域,進(jìn)行冷啟動(dòng)召回,召回相關(guān)的新聞報(bào)道。
(8)匯總多路召回的新聞報(bào)道,從中選取評(píng)分最高的新聞,作為推薦結(jié)果。
綜上所述,研究給出算法實(shí)現(xiàn)步驟流程如圖2所示。
圖2 算法實(shí)現(xiàn)Fig. 2 Flowchart of the algorithm
為了驗(yàn)證提出個(gè)性化新聞推薦的效果,本文數(shù)據(jù)集選自某新聞平臺(tái)的后臺(tái)用戶新聞交互訪問(wèn)日志,包含近30 萬(wàn)用戶、36 萬(wàn)篇新聞文章、以及多達(dá)300 多萬(wàn)的交互訪問(wèn)記錄。
仿真實(shí)驗(yàn)隨機(jī)從交互數(shù)據(jù)集中篩選出2 萬(wàn)用戶以及對(duì)應(yīng)的新聞報(bào)道和歷史交互記錄作為數(shù)據(jù)集,數(shù)據(jù)集特征包括用戶id、用戶報(bào)道交互時(shí)間戳、字?jǐn)?shù)、報(bào)道id、報(bào)道產(chǎn)生時(shí)間戳等特征。 構(gòu)建個(gè)性化新聞推薦,針對(duì)每個(gè)目標(biāo)用戶使用基于用戶活躍度的userCF、基于新聞時(shí)效性的ItemCF 以及冷啟動(dòng)召回等3 個(gè)角度進(jìn)行召回,每個(gè)目標(biāo)用戶將獲取個(gè)性化召回新聞報(bào)道。 計(jì)算出目標(biāo)用戶對(duì)召回新聞的評(píng)價(jià),取評(píng)價(jià)在TopX的新聞作為推薦結(jié)果,呈現(xiàn)給用戶。
為了衡量個(gè)性化新聞推薦的推薦效果,本文選取了召回率(Recall,R)、準(zhǔn)確率(Precision,P) 以及混合召回和準(zhǔn)確率的F1指數(shù)作為性能指標(biāo)。
推薦結(jié)果的混淆矩陣見(jiàn)表1。
表1 混淆矩陣Tab. 1 Confusion matrix
選用指標(biāo)中,Precision表示個(gè)性化新聞推薦的準(zhǔn)確率,即推薦給用戶的新聞列表中,用戶點(diǎn)擊情況。 數(shù)學(xué)公式定義如下:
Recall表示個(gè)性化新聞推薦的召回率,即所有用戶點(diǎn)擊的新聞列表中,推薦新聞情況。 數(shù)學(xué)計(jì)算公式定義如下:
由于Precision和Recall兩個(gè)指標(biāo)在某些情況下是相互沖突的、準(zhǔn)確率高、召回率就會(huì)降低,召回率高、準(zhǔn)確率會(huì)降低。 為了平衡2 個(gè)指數(shù)的沖突,更好地衡量個(gè)性化推薦的推薦效果,引入了F1指標(biāo)。 數(shù)學(xué)公式定義如下:
本次實(shí)驗(yàn)從20 000 個(gè)用戶的數(shù)據(jù)集中隨機(jī)選取某用戶,分別以itemCF 和UserCF 以及個(gè)性化推薦這3 種方式針對(duì)該用戶從其最相鄰用戶集合中選出5、10、15、20、25、30、35、40 個(gè)鄰居,基于最近鄰居產(chǎn)生目標(biāo)用戶的個(gè)性化推薦。
表2 和表3 是個(gè)性化推薦算法與基于User 和Item協(xié)同過(guò)濾推薦算法的針對(duì)目標(biāo)用戶產(chǎn)生推薦的實(shí)驗(yàn)效果對(duì)比。F1-score的實(shí)驗(yàn)對(duì)比結(jié)果見(jiàn)圖3。 從以上結(jié)果中可以看出,在協(xié)同過(guò)濾的基礎(chǔ)上加入用戶活躍度和新聞時(shí)效性的考量,使用冷啟動(dòng)補(bǔ)充興趣點(diǎn),在新聞場(chǎng)景下的推薦效果明顯優(yōu)于協(xié)同過(guò)濾。
表2 準(zhǔn)確率實(shí)驗(yàn)對(duì)比Tab. 2 Comparison of accuracy experiments
表3 召回率實(shí)驗(yàn)對(duì)比Tab. 3 Comparison of recall experiments
圖3 F1-score 實(shí)驗(yàn)對(duì)比Fig. 3 F1-score experimental comparison
本文基于用戶活躍度和新聞時(shí)效性提出了一種個(gè)性化的新聞推薦算法,考慮到新聞推薦場(chǎng)景下,用戶對(duì)新聞時(shí)效性的需求以及不同活躍度用戶對(duì)推薦的影響,修改了新聞報(bào)道和不同活躍度用戶的相似度判定方式,基于協(xié)同過(guò)濾,從用戶、新聞報(bào)道和冷啟動(dòng)召回的角度召回用戶可能感興趣的新聞報(bào)道。實(shí)驗(yàn)證明,與傳統(tǒng)的協(xié)同過(guò)濾推薦相比,本文的個(gè)性化新聞推薦更為準(zhǔn)確。 冷啟動(dòng)召回的方式緩解了冷啟動(dòng),而改進(jìn)后的召回排序獲取推薦提高了推薦精度。 下一步可以在新聞推薦中融合、更多模型算法更多覆蓋用戶的興趣點(diǎn)完成召回和排序,提高推薦效果。