999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于協同過濾的新聞推薦算法研究

2022-02-20 01:25:07李梅
電腦知識與技術 2022年34期

李梅

摘要:協同過濾算法分為ItemCF算法和UserCF算法,分別側重物品和用戶,常用于新聞推薦。文章介紹了這兩個基礎算法及實現的步驟,并列出了這兩個算法的優缺點。通過新聞數據集20Newsgroups比較了ItemCF算法和UserCF算法在準確率、召回率、覆蓋率及流行度這四個評價指標的值,ItemCF算法都低于UserCF算法。

關鍵詞:新聞推薦;ItemCF算法;UserCF算法

中圖分類號:TP312? ? ? 文獻標識碼:A

文章編號:1009-3044(2022)34-0051-03

每天瀏覽新聞已經是大多數人的生活習慣,如何從海量的新聞中獲取感興趣的新聞,成為很多人關心的問題,可以節省大量時間,新聞推薦系統可以完美解決這個問題。下面介紹基于協同過濾的新聞推薦算法。

1 基于用戶的協同過濾算法

基于用戶的協同過濾算法(UserCF)在為大家推薦喜歡看的電影方面,如最近看得比較多的歐美大片,為喜歡聽音樂人們推薦好聽的歌曲,如WestLife的經典歌曲。UserCF算法影響深遠,近年來,廣泛應用于各種類別的新聞推薦。

1.1 基礎算法

當人們需要在網上尋找自己需要的信息時,面對如此龐大的信息量,常會感到茫然,這時亟須一個推薦系統。通過用戶間的大量對比,發現興趣愛好等最相似的m個用戶,采用相應的算法,將這m個用戶感興趣的item推薦給該用戶,即為我們熟悉的基于用戶的協同過濾算法(UserCF) 。

從UserCF算法的定義可以看出此算法經歷兩個步驟。

1) 第一步 ,對比大量用戶,包括他們的購物行為等,經常去哪些店鋪,經常點擊哪類物品,發現與該用戶興趣愛好等相似的m個用戶。

2) 第二步,把發現的這m個用戶都有興趣的并且該用戶未涉獵過的這些item推薦給該用戶。

第一個步驟的核心就是尋找相似的m個用戶,找到后并計算他們之間的相似度。例如:現在有A、B、C、D四個用戶,分別對a、b、c、d、e五個物品表達了自己的喜好程度(通過評分的高低來表現自己的喜好程度高低),而B用戶由于工作需要推薦軟件測試方面的書籍,這就需要計算發現B用戶的相似用戶群,然后找到用戶群喜歡的經常查看的但C未涉獵的軟件測試方面的書籍推薦給B[1]。計算相似度可以使用Jaccard公式:

1.2 用戶相似度計算的改進

生活中你會發現,兩個人都購買了《三國演義》,不能體現這兩個人的共同興趣,因為這本名著老幼皆知,中國人買得很多,即熱門物品對相似度的影響。再例如,兩個人都買過《軟件測試技術及項目案例實踐》,這個購買行為就說明兩人興趣愛好相似,只有對軟件測試感興趣或者從事軟件測試工作的人才會買這本書。因此,改進相似度計算公式。

def UserSimilarity(train):

W = dict()

for u in train.keys():

for v in train.keys():

if u == v:

continue

W[u][v] = len(train[u] & train[v])

W[u][v] /= math.sqrt(len(train[u]) * len(train[v]) * 1.0)

return W

2 基于物品的協同過濾算法

基于物品的協同過濾算法(ItemCF),在某些網站中通過點擊等行為,使用“Customers who? viewed this also viewed(看過還看過)”以及“Customers who viewed this item also bought(看過且買過)”來進行推薦。

2.1 基礎算法

簡單的抑或通俗解釋,通過歷史喜歡的item推薦與這個item相似的item,即物——物。從原理上我們可以得知:這個算法物——物的推薦方式,與目標用戶的興趣愛好并不存在某種之間聯系。例如,要計算《傲慢與偏見》和《簡·愛》兩部電影之間的相似度,需要使用對這兩部影片都有過評價的用戶數據。UserCF算法中,需要找到行與行之間的相似度;ItemCF算法中,要找到列之間的相似度,這個是兩者在找相似度方面的差別。ItemCF算法主要經歷下面兩個步驟:

1) 第一步,找到物品之間的相似度,通過倒排表等方式。

2) 計算推薦結果,同時過濾熱門物品。

2.2 物品相似度計算的改進

根據前面的介紹,在計算物品的相似度矩陣中有個問題,如果物品j過于熱門,就像大家熟悉的網紅物品,有很多用戶都給它進行了評分,則計算出的Wij就會很大。熱門Item影響了推薦,包括明星、網紅代言的這些Item都會有影響。為了避免推薦熱門的物品,可以用下面的公式:

修改后的公式變化很大,減少了物品j的權重占比,還可以避免與網紅熱門商品相似的概率。這里假設:每個用戶的興趣愛好可能就那么幾個,一個用戶如果對某兩個item感興趣,則這兩個item所屬的范圍是有限的,但是大量用戶對相關item感興趣,例如都喜歡軟件測試書籍,則具有一定相似度。利用修改后的公式計算相似度矩陣與評分矩陣的乘積,與優化前的結果是一樣的。

3 UserCF和ItemCF的綜合比較

由前面的分析,可以看出UserCF和ItemCF這兩個算法的推薦實現思路:UserCF算法先要利用相關算法發現m個用戶,即用戶——用戶,以此為第一步,然后將m個相似用戶評分item在目標用戶沒有評分的item推薦給用戶;ItemCF算法要發現大量item之間的相似度,如不同品牌的長款大衣,根據這些 item的相似度進行推薦,即人們熟悉的物——物。由此可以看到:

UserCF算法側重用戶所處的群體,他們有相似的愛好,在進行推薦時也是這個群體中大家極力推崇的,通過歷史行為計算得到[2]。

ItemCF算法側重用戶以前行為的歷史item,用戶自己的喜好變化對用戶影響更大,偏向于個性化。

下面從三個方面對比UserCF和ItemCF算法。

1) 在適用場景上的比較

ItemCF算法強調物品間的相似性,因此在進行推薦時,當用戶數量大大超過item 數量時,ItemCF算法更加合適。例如,購物網站和技術博客網站的item或文章數據比較穩定,所以計算item相似度時不但計算量小,而且不必經常進行更新[3]。UserCF算法強調用戶間的相似性,所以在進行推薦時,當item的 數量大大超過用戶數量時,UserCF算法更加合適。UserCF算法在新聞類網站中可以經常看到。例如,在社交網站中可以使用UserCF算法,可解釋性也更強。所以這些網站的內容更新比較快,用戶更偏愛社會化熱點。

2) 在推薦系統多樣性上的比較

ItemCF算法在考慮單個用戶的多樣性方面優勢不及UserCF算法,item覆蓋率比較小,多樣性和豐富度都低,且其精度稍微小于UserCF算法。ItemCF算法在考慮系統的多樣性方面要大大勝過UserCF算法,原因歸于UserCF算法偏重推薦熱門item。

3) 在用戶特點上的比較

UserCF算法在進行推薦時,如果目標用戶暫時找不到興趣愛好相同的鄰居,則該算法的推薦效果就會大打折扣了,結果就不好了。因此,用戶是否適應UserCF,與“目標用戶有多少鄰居”成正比。ItemCF算法要發現某個人愛好item 的自相似度,一旦大了,則說明該用戶對ItemCF算法的適應度很好。反之,說明該用戶的偏好不滿足ItemCF算法的假設條件,則此時使用ItemCF算法對該用戶進行推薦效果不佳。

4 實驗驗證

所使用的數據來源是新聞數據集20Newsgroups。選擇的幾個主題為:國內新聞、航空、軍事、傳媒研究院、公益、媒體。爬取的每條數據包含三個字段:標題、時間、正文、預處理數據。

4.1 原始數據加工

原始數據只包含標題、時間和正文三個字段,這里增加唯一編號、類別、瀏覽次數和跟帖次數這幾個字段并對原始數據簡單處理,其中“瀏覽次數”和“跟帖次數”是為了方便后續對新聞進行排序增加的隨機值。

4.2 新聞熱度值計算

這里為每則新聞計算一個熱度分,為后續的“熱度榜”和“為你推薦”做新聞排序使用。這里的新聞熱度值采用如下的公式計算:

hotValue=seeNum*0.4+disNum*0.5-diffDays*0.1

其中:seeNum:某則新聞被瀏覽的次數;

disNum:某則新聞被評論的次數;

diffDays:新聞在某一天發表及和當前的日期差。

新聞是一個時效性很強的個體,因此在考慮其熱度值時要把時間因素考慮進去。

4.3 新聞相似度計算

新聞相似度在進行新聞推薦時的一個很重要的因素,這里使用新聞主題詞的重合度來考量新聞相似度。

1) 新聞分詞處理

首先需要對新聞進行分詞處理。實現思路是:因為新聞標題多樣,如軍事類、科技類、汽車類,利用Python的jieba分詞包,可以對這些關鍵詞分詞處理。看一篇新聞的第一切入點便是新聞標題,新聞標題是整篇新聞的高度概括,因為當兩則新聞的標題重合度越高時,新聞本身的內容相似度也就越大[4]。

原始數據加載之后保存在相應的變量中,在對文章標題分詞時使用,分詞使用的是jieba.analyse.extract_tags()函數。句子組成中包含了大量的單音節詞、標點符號等,在分詞時要去掉這些詞語或標點符號,其具體的實現方法是加載停用詞表進行過濾,提取新聞標題的關鍵詞,例如標題。

2) 計算相似度

相似度的計算需要相關函數去完成,這里用到的函數為:getCorrelation(self)。

4.4 指定標簽下的新聞統計

統計指定標簽下的新聞是為用戶選擇標簽后生成“為你推薦”內容做準備,這里指定用戶可以選擇的標簽有:互聯網、金融、旅游、經濟、文學、音樂、綜藝等。

其中各個模塊介紹如下:

MySQL數據存儲:這里使用MySQL存儲系統所使用的數據。系統實現選用的是Python的Django框架,在框架中有對數據對象的封裝。

用戶選擇:不同的用戶選擇不同,推薦的內容也不同,因為用戶不同所處的圈子也不同。

選擇標簽:解決冷啟動問題。當然用戶也可以不選擇相應的標簽,此時“為你推薦”模塊顯示的是熱度數據。

用戶點擊瀏覽文章:即用戶在系統中產生了相關行為,每篇文章的詳細頁都會推薦該篇文章的相似文章。

熱度榜:熱度值高的排在最上面,這樣計算結果高的文章將顯示出來。

為你推薦:如果用戶是初次登錄,則根據用戶選擇的標簽返回“為你推薦”的內容;若用戶沒有選擇標簽,則返回熱度值較高的新聞作為“為你推薦”的內容;如果用戶是在點擊瀏覽過新聞之后返回“為你推薦”模塊,則返回用戶有行為文章的相似文章,作為“為你推薦”的內容。

從以表1可見,準確率和流行度等評價指標, ItemCF算法都低于UserCF算法。

雖然基于協同過濾的新聞推薦算法比較常見,從人們熟悉的搜狐、網易等門戶網站中,可以看到新聞的數量龐大,而且更新很快,有時幾個小時就會更新一次,所以在使用時選擇更優的推薦算法尤為重要。用戶的興趣愛好比較穩定,例如有的人喜歡看歐美電影,有的人喜歡聽古典音樂,有的人喜歡看每日新聞等。新聞網站中使用UserCF算法比較多,原因如下:UserCF算法根據不同的用戶只要更新用戶相似性表即可,比較好實現,但新聞的更新頻率太快,在ItemCF算法相當于要不停更新item相關度表,實現起來要困難得多[5]。所以,新聞網站中更愿意采用UserCF算法。

參考文獻:

[1] 項亮.推薦系統實踐[M].北京:人民郵電出版社,2012.

[2] 董晨露,柯新生.基于用戶興趣變化和評論的協同過濾算法研究[J].計算機科學,2018,45(3):215-219,248.

[3] 楊武,唐瑞,盧玲.基于內容的推薦與協同過濾融合的新聞推薦方法[J].計算機應用,2016,36(2):414-418.

[4] 黃賢英,熊李媛,李沁東.基于改進協同過濾算法的個性化新聞推薦技術[J].四川大學學報(自然科學版),2018,55(1):49-55.

[5] 高陽團.推薦系統開發實戰[M].北京:電子工業出版社,2019.

【通聯編輯:光文玲】

主站蜘蛛池模板: 97久久免费视频| 91视频日本| 久久这里只有精品国产99| 国产精品片在线观看手机版 | 丰满的少妇人妻无码区| a天堂视频| 国产激爽大片在线播放| 成人国产精品一级毛片天堂 | julia中文字幕久久亚洲| 四虎亚洲精品| 波多野一区| 亚洲国产精品成人久久综合影院| 欧美天堂久久| 久久香蕉国产线看观看式| a毛片在线免费观看| 国产亚洲精品在天天在线麻豆| 天天操精品| 99热精品久久| 香蕉伊思人视频| 97在线免费视频| 亚洲成人黄色在线| 国产一区二区三区在线精品专区| 久久精品国产999大香线焦| 尤物国产在线| 国产99热| 专干老肥熟女视频网站| 福利姬国产精品一区在线| 伊人AV天堂| 四虎在线观看视频高清无码| 手机成人午夜在线视频| 国产成人做受免费视频| 欧美日韩91| 欧美成人看片一区二区三区| 国产自无码视频在线观看| 91视频日本| 亚洲区第一页| 最新日韩AV网址在线观看| 伊人久久精品无码麻豆精品| 午夜三级在线| 亚洲va欧美va国产综合下载| 午夜激情婷婷| 成人亚洲视频| 国产精品久久精品| 一级毛片在线播放免费观看| 2021无码专区人妻系列日韩| 91精品啪在线观看国产60岁| 国产精品久久久久无码网站| 日韩欧美国产成人| 污视频日本| 色综合五月婷婷| 国产精品55夜色66夜色| 人人91人人澡人人妻人人爽| 日韩精品无码免费一区二区三区| 中文字幕乱妇无码AV在线| 国产亚洲精品自在久久不卡| 18黑白丝水手服自慰喷水网站| 亚洲国产黄色| 91福利免费视频| 免费国产不卡午夜福在线观看| 国产一区在线视频观看| 国产真实二区一区在线亚洲 | 一本大道香蕉久中文在线播放| 国产主播一区二区三区| 亚洲中文字幕23页在线| 香蕉国产精品视频| 欧美日本在线一区二区三区| 四虎永久免费地址在线网站| 久久国产精品嫖妓| 亚洲精品欧美日韩在线| 2024av在线无码中文最新| 毛片免费视频| 美女国内精品自产拍在线播放 | 中文字幕天无码久久精品视频免费| 亚洲精品免费网站| 久久综合色天堂av| 成人精品区| 久久6免费视频| 99久视频| 沈阳少妇高潮在线| 国产午夜无码专区喷水| 蝴蝶伊人久久中文娱乐网| 91精品日韩人妻无码久久|