SA  >> Vol. 8 No. 4 (August 2019)

    基于協同過濾算法的電視用戶個性化推薦
    Personalized Recommendation of TV Users Based on Collaborative Filtering Algorithm

  • 全文下載: PDF(647KB) HTML   XML   PP.522-530   DOI: 10.12677/SA.2019.84071  
  • 下載量: 96  瀏覽量: 1,070  

作者:  

陳星星,李瑞濤,廖軍華,吳延科:廣東海洋大學數學與計算機學院,廣東 湛江

關鍵詞:
K-means聚類分析KNN算法協同過濾個性化推薦 K-means KNN Collaborative Filtering Personalized Recommendation

摘要:

為了更好地整合和利用現有的數據,提高電視節目產品營銷效益,本文通過對廣電網絡公司電視用戶的收看信息數據進行數據處理,建立用戶偏好模型,得到各個用戶的三個偏好類型,然后使用協同過濾算法進行單個用戶的個性化推薦,以及使用K-means算法和KNN算法將用戶進行分群,得到用戶群的推薦,進而有效地解決了用戶個性化推薦的問題。

In order to integrate and utilize existing data better, and improve the marketing effectiveness of TV program products, this paper processes the data of the watching information of TV users and establishes the user preference model to obtain three preference types of each user, and then uses the collaborative filtering algorithm to carry out personalized recommendation of individual users. In addition, we use K-means algorithm as well as the KNN algorithm to divide the users into groups and obtain the recommendation of each user group, thereby effectively solving the problem of personalized recommendation of the users.

1. 引言

在“數字融合”和“三網融合”引領下,電視產業進入了大數據時代,數據挖掘和數據資料的發現與利用開始為電視行業的多項工作提供更為科學的決策依據,為電視業的題材選擇和媒介營銷帶來了巨大的變革。通過對大量觀看數據的整合和利用,可以分析用戶的特征和偏好,根據用戶的收視偏好為用戶貼上合適的“標簽”,盡可能精確地勾勒出用戶的“畫像” [1] 。繼而對產品進行分類,將合適的產品在合適的時間推送給合適的用戶,實現市場營銷的精準化。

在現代許多平臺,例如淘寶、京東、抖音和快手等等,在進行用戶的興趣分析以及類型推薦的時候,都使用了協同過濾算法。迄今協同過濾算法已經非常成熟,主要包括了基于物品的協同過濾算法和基于用戶的協同過濾算法,它們都可以很好地描繪產品的屬性以及用戶的興趣愛好,所以其在推薦系統的算法中具有十分重要的研究價值。

很多學者對于這個問題都做出了一定的研究。例如,林霜梅 [2] 提出了一種改進的向量空間模型(VSM)用戶單興趣表示法及其動態學習算法,用以捕捉用戶最新的興趣需求。沈建軍 [3] 采用協同過濾算法對電視用戶個性化推薦進行研究,對用戶產品推薦算法提供了不少創新思想。在高肖俊的《基于用戶收視興趣模型的廣電客戶分群及精確化營銷系統建設》中,作者根據用戶以往收看信息建立收視興趣度和忠誠度,以及電視用戶對節目的評分,使用協同過濾算法產生推薦結果。在周虹君的《Spark框架下的受眾分群及矩陣分解的推薦算法研究》中通過找到目標用戶的最近鄰居集,以及通過最近鄰居集去計算預測評分,從而解決了評分矩陣過于稀疏和冷啟動的問題,提高了推薦結果的準確度。《個性化推薦系統綜述》主要介紹了各種推薦算法,包括協同過濾算法、關聯規則和深度學習等等的發展歷程,更好地了解推薦算法的優缺點以及適用范圍。在夏歡的《基于組合策略的IPTV節目推薦》中,其提出了兩種組合策略的用戶模型更新的方法相結合,并且這兩種方法實現了協同過濾部分和基于內容的推薦部分,也很好地解決了評分矩陣過于稀疏和冷啟動的問題。在《推薦系統實踐》中,作者通過實際的推薦例子,突出了協同過濾算法對比于其他推薦系統的優勢,也為協同過濾算法在各大平臺上的使用奠定了基礎。

雖然推薦系統的研究都有較為完善的理論,但是給用戶推薦的節目被該用戶所喜歡的成功率較低,夏歡 [4] 認為,結合相應節目的評分方法,可以有效地提高用戶接受的成功率。

基于以上研究現狀,本文的剩余內容將按以下結構展開:第2部分為對廣電網絡公司的電視用戶收看數據進行數據預處理,第3部分建立了用戶偏好模型提取各個用戶的偏好類型,第4部分使用了協同過濾算法對各個電視用戶進行了節目的推薦,第5部分是使用K-means算法和KNN算法對用戶進行分群,在考慮到節目包的總時長和經濟效益的基礎上,有效地推薦節目。

2. 協同過濾算法

協同過濾算法是最早誕生、較為著名的推薦算法。其主要的功能為預測和推薦,該算法依據對用戶的歷史行為數據進行挖掘,發現用戶的喜愛偏好,對于偏好不同的用戶進行有效地個性化推薦。協同過濾算法主要分為兩種,分別是基于用戶的協同過濾算法和基于物品的協同過濾算法,可以簡單地描述為:人以類聚,物以群分。協同過濾算法的實現過程如圖1所示,假設用戶1的偏好產品為產品1、產品2、產品3和產品4,用戶3的偏好產品為產品2和產品3,若把用戶3作為目標用戶,則用戶1是他的鄰居用戶,所以把產品1和產品2推薦給用戶3,從而實現了協同過濾。

Figure 1. Classification of television programs

圖1. 電視節目的分類

在本文中,用到的是基于用戶的協同過濾算法,下面主要介紹基于用戶的協同過濾算法的步驟:

1) 建立用戶模型

通過查閱資料和數據,得到各個用戶對于各個物品的評分,若某個用戶對某個物品無評分,則為0,便得到了用戶評分矩陣,構造出用戶模型。一般來說,對于評分不為0的產品,評分越高,則代表用戶對該產品的偏好度越高,否則越低。

2) 尋找目標用戶的鄰居

根據上面的用戶評分矩陣,并使用皮爾遜相關系數、余弦相似度或者修正余弦相似度,可以計算各個目標用戶與用戶群中其他用戶的相似度,取相似度最大的k個用戶作為該目標用戶的最近鄰居集。在本文中我們采用的是修正的余弦相似度公式(1)進行計算。

S i m ( i , j ) = q = 1 15 ( R i , q ? R i ¯ ) ( R j , q ? R j ¯ ) q = 1 15 ( R i , q ? R i ¯ ) R j ¯ q = 1 15 ( R j , q ? R j ¯ ) 2 (1)

其中:Sim(i,j) 表示用戶i和j的余弦相似性; R j , q 表示用戶j對q類型的評分。

3) 產生目標用戶的推薦產品

根據目標用戶的最近鄰居集,并使用式子(2)計算出目標用戶未觀看過的產品類型的預測評分,然后把預測評分較高的產品類型,優先推薦給目標用戶。

P i , q = R i ¯ + j U s i m ( i , j ) × ( R j , q ? R j ¯ ) j U ( | s i m ( i , j ) | ) (2)

其中: P i , q 表示用戶i對類型q的預測評分; R j , q 表示用戶j對類型q的評分。

3. 數據來源及預處理

本文采用了第六屆泰迪杯數據挖掘挑戰賽C題的原始數據,進而對電視用戶收看信息的原始數據進行數據清洗、屬性規約和數據變換三個步驟。數據清理主要針對以下兩個方面進行:

1) 去除回看信息重復和用戶點播信息重復的數據、觀看時間為空的記錄和觀看時長小于一分鐘的記錄。

2) 將其中冗余的屬性以及與挖掘過程不相關的屬性剔除得到處理后的數據,如表1所示。

Table 1. Form of data processing

表1. 數據預處理的形式

在處理后的數據中,用戶收視信息和用戶回看信息的統計日期均采用YMD格式。我們發現,每個頻道一周的節目表當中,周一至周五的節目表相似,周六與周日的節目表相似。因此將用戶收視信息和用戶回看信息的統計日期轉換為星期的格式,然后將數據按周一至周五、周末分為兩類,分別寫入兩個表格當中。

4. 建立用戶偏好模型

4.1. 構建用戶偏好類型

首先,我們通過python爬蟲技術,爬取各個頻道分別在工作日及周末的兩個節目表,經過分析和統計得出每個頻道節目表中各個節目類型所占時間比例。在此基礎上,可以初步確立節目分為綜藝、財經、體育、電影、電視劇、科教、新聞、少兒動畫、音樂、生活、戲劇、軍事、紀錄片、法律和廣告購物,共15種節目類型,如圖2所示。

Figure 2. The type of TV program

圖2. 電視節目的分類

然后把各個電視用戶的觀看各種類型的時間計算出來,得到“用戶–類型–觀看時長”矩陣,如表2所示。

Table 2. Matrix: “user-type-duration”

表2. “用戶–類型–時長”矩陣

4.2. 用戶類型的偏好度

引入興趣度和忠誠度,并且用它們之間的加權和(即用戶偏好度)來刻畫用戶對各種節目類型的喜歡程度和偏好程度 [1] 。

興趣度:用戶觀看某種節目類型的總時長與該用戶觀看總時長的關系。代表該用戶對某種節目類型的感興趣程度 [1] 。

i n t e r e s t ( i , q ) = k = 1 n ? t l a b e l ( i , q ) [ k ] q = 1 m k = 1 n ? t l a b e l ( i , q ) [ k ] (3)

其中: i n t e r e s t ( i , q ) 表示用戶i對節目類型q的興趣度; k = 1 n ? t l a b e l ( i , q ) [ k ] 表示用戶i觀看節目類型q的時長; q = 1 m k = 1 n ? t l a b e l ( i , q ) [ k ] 表示用戶i觀看所有節目類型的總時長。

忠誠度:用戶收看某節目類型的總時長與該節目類型的播放時長的關系。代表該用戶對該節目類型的忠誠程度 [1] 。

L o y a l t y ( i , q ) = k = 1 n ? t l a b e l ( i , q ) [ k ] k = 1 n ? t p r o g r a m ( i , q ) [ k ] (4)

其中: L o y a l t y ( i , q ) 表示用戶i對節目類型q的忠誠度; k = 1 n ? t l a b e l ( i , q ) [ k ] 表示用戶i收看節目類型q的總時長; k = 1 n ? t p r o g r a m ( i , q ) [ k ] 表示節目類型q的播出總時長。

用戶偏好度:描述的是用戶對某一類型節目的喜好和偏好程度,一般為興趣度和忠誠度的加權和 [5] 。

L a b e l ( i , q ) = ω 1 L o y a l t y ( i , q ) + ω 2 i n t e r e s t ( i , q ) (5)

為“用戶–標簽”偏好集合中不同特征賦予權值,且權值之和等于1,以便區分不同集合中其模型的貢獻度。本文假定模型的權值為 ω 1 = 0.7 ω 2 = 0.3

然后通過計算每個用戶對于各個類型的偏好度,得到“用戶–類型–偏好度”矩陣,選取了每個用戶的偏好度最高的三個標簽作為該用戶的偏好標簽,如表3所示。

Table 3. These preference types for each user

表3. 各個用戶的三個偏好類型

5. 協同過濾算法對單個用戶的推薦

5.1. 建立用戶模型

由于用戶偏好度代表的是用戶對某一種類型的喜歡和熱愛程度,一般來說用戶對某一類型的偏好度越高,相應的該用戶對這種類型的評分(0~1之間)也會越高,因此我們近似地把“用戶–類型–偏好度”矩陣看做用戶對節目類型的評分矩陣。

5.2. 尋找目標用戶的鄰居

在這一階段,主要完成目標用戶的鄰居的尋找。將全部用戶視為一個用戶群U,每一次拿出一個用戶作為目標用戶,并且在其余的用戶中尋找到該目標用戶的鄰居u [6] 。然后使用式子(1)計算每兩個用戶之間的相似度,得出相似度矩陣,在矩陣中找出與目標用戶相似度最高的用戶作為目標用戶的鄰居。

5.3. 產生目標用戶的推薦類型

對于目標用戶,找到了他的鄰居之后,使用式子(2)計算該目標用戶未觀看過的類型的預測評分 [7] ,然后選取其中目標用戶中的預測評分中最高的那一個節目類型作為該目標用戶的推薦類型。最后,把目標用戶的三個偏好類型加上這一個推薦類型,共為四個電視節目類型,作為目標用戶的全部推薦類型。

5.4. 實現用戶的節目推薦

推薦指數的定義:某一節目產品的推薦指數等于該用戶對這種節目類型的偏好度與這一節目產品的評分的加權和 [8] 。

我們通過python爬蟲技術,在豆瓣網爬取了各個節目的標簽和評分,以便獲得更精確的產品營銷推薦。每一個用戶都有四個推薦類型,對應這四個推薦的節目類型,再結合節目的評分的高低和用戶的偏好度的大小,進而將節目精準地推送給各個用戶,得到每個用戶的節目推薦表,如表4所示。

Table 4. Recommended program for individual user

表4. 各個用戶的推薦節目

6. 用戶的打包推薦

6.1. K-means聚類分析與KNN算法進行用戶分群

首先,通過所得到的“用戶–類型–觀看時長”矩陣,針對全部用戶,利用K-means聚類算法,分類得到100個聚類中心,然后運用KNN最近鄰分類算法將全部的待測用戶找到所隸屬的聚簇,將同一個聚簇內的用戶歸為一個用戶群。

通過K-means聚類分析算法得到100個聚類中心如表5所示。

Table 5. Clustering center of K-means algorithm

表5. K-means算法的聚類中心

通過KNN最鄰近分類算法,將各個用戶都分類到所隸屬的聚簇用戶群中,所得到的結果,如表6所示。

Table 6. User groups of individual user

表6. 各個用戶所在的用戶群

找出各聚類中心最近的3個測試變量,分別將這3個測試變量作為該聚簇用戶群的三個偏好類型。結果如表7所示。

Table 7. Preference types of each user group

表7. 各個用戶群的偏好類型

6.2. 節目產品的打包和推送

為了便于產商在產品包內植入廣告從而獲取最大的經濟效益,將每一個產品包的節目總時長限制在一個合理的范圍內,并且優先考慮到高評分的產品 [9] ,建立聚類推薦模型,實現了節目的打包推送問題。

由上述得到的各個用戶群的三個偏好類型,匹配到相應類型的電視節目產品,從中選擇評分較高的電視節目產品,由于考慮到每個節目產品包的互補性與互斥性 [10] ,規定每一種類型的節目產品不超過三個。為了便于產商在產品包內植入廣告從而獲取最大的經濟效益 [11] ,將每一個產品包的節目總時長限制在 200 min T 720 min

對電視節目產品打包并且將產品包推送給每一個用戶群,并且計算出每個節目包的總時長,推送結果如表8所示。

Table 8. Recommended program package for each user group

表8. 各個用戶群的推薦節目包

7. 結論及展望

本文通過對用戶觀看數據進行預處理、挖掘出各個用戶的觀看偏好,并且通過爬蟲技術,爬取得到節目的類型,進而把節目推薦給感興趣的用戶,使得廣電網絡公司在電視節目的營銷上更加有針對性,但是模型主要存在以下兩個不足之處:

1) 各個電視臺的節目類型時間比例是根據各個電視臺(分周一至周五和周末)的常規播放規律來進行計算的,與準確的節目類型播放規律會有一定的誤差。

2) 評分較高的節目推薦給目標用戶,往往會導致推送的不精準和有一大部分評分較低的節目沒有用戶去收看。

對于上述的不足,可以通過更精準地利用爬蟲技術對電視臺的播放節目類型時間比例和節目類型、評分進行爬取,以減低推薦的誤差,希望以后的學習可以在這方面做出一定的研究。

NOTES

*通訊作者。

综合分布图 排球世锦赛2019规则 码连码四七 彩票app下载 快乐赛车五分钟开 转盘拍7娃娃机原理 3d杀码彩经网 内蒙古十一选五组选奖 qq彩票篮彩 极速飞艇上迪士尼 彩票足球 福利彩票排列三开奖结果 亿彩网官网 彩票官网试刮 体彩超级大乐透走势图 e球彩怎么玩 竞彩足球任选9场

文章引用:
陳星星, 李瑞濤, 廖軍華, 吳延科. 基于協同過濾算法的電視用戶個性化推薦[J]. 統計學與應用, 2019, 8(4): 522-530. https://doi.org/10.12677/SA.2019.84071

參考文獻

[1] 周虹君, 殷復蓮, 陳怡婷, 周嘉琪, 伊成昱. Spark框架下的受眾分群及矩陣分解的推薦算法研究[J]. 互聯網 + 健康, 2016, 20(2): 139-141.
[2] 張曉陽. 基于受眾收視行為分析的電視節目編排策略芻探[J]. 企業家天地, 2011, 3(1): 187-188.
[3] 高肖俊, 丁云強. 基于用戶收視興趣模型的廣電客戶分群及精確化營銷系統建設[J]. 視聽界, 2016, 3(2): 1-3.
[4] 夏歡. 基于組合策略的IPTV節目推薦[D]: [碩士學位論文]. 昆明: 云南大學, 2016.
[5] 沈建軍. 面向互動電視的影視節目推進系統研究與實現[D]: [碩士學位論文]. 杭州: 復旦大學, 2012.
[6] 鐘智, 朱曼龍, 張晨, 黃樑昌. 最近鄰分類方法的研究[J]. 廣西師范學院, 2011, 5(1): 2-3.
[7] 趙營. 基于協同過濾算法的習題推薦[J]. 科技經濟導刊, 2016, 6(5): 136.
[8] 李楚桐, 莫贊. 基于協同過濾算法的推薦系統研究[J]. 信息通信, 2018, 1(2): 38-39.
[9] 王國霞, 劉賀平. 個性化推薦系統綜述[J]. 計算機工程與應用, 2012, 48(7): 66-67.
[10] 于玉龍, 王秀芳. 改進的協同過濾推薦算法[J]. 互聯網 + 通信, 2016, 1(1): 12.
[11] 張巖. 基于協同過濾的個性推薦算法研究及系統實現[D]: [碩士學位論文]. 北京: 北京化工大學, 2014.

排球世锦赛2019规则 码连码四七 彩票app下载 快乐赛车五分钟开 转盘拍7娃娃机原理 3d杀码彩经网 内蒙古十一选五组选奖 qq彩票篮彩 极速飞艇上迪士尼 彩票足球 福利彩票排列三开奖结果 亿彩网官网 彩票官网试刮 体彩超级大乐透走势图 e球彩怎么玩 竞彩足球任选9场