鄧園園, 吳美香, 潘家輝
(華南師范大學 軟件學院, 南海 528225)
當今時代, 互聯(lián)網(wǎng)發(fā)展迅猛, 帶動了電視產(chǎn)業(yè)的發(fā)展, 電視信息資源爆炸式增長導致了人們接觸的電視產(chǎn)品信息量過載, 使用戶多樣化需求與電視產(chǎn)品海量資源之間的矛盾日益突出. 此時, 各種基于用戶喜好的電視產(chǎn)品推薦系統(tǒng)應運而生, 推薦精準度成為衡量各大推薦系統(tǒng)的關鍵手段, 而推薦精準度依賴于推薦算法. 現(xiàn)流行的推薦算法有基于內(nèi)容推薦、基于協(xié)同過濾推薦、基于關聯(lián)規(guī)則推薦以及組合推薦等算法, 其中, 基于協(xié)同過濾的推薦算法對推薦對象無結構要求,廣泛應用于電影推薦中.
(1) 國內(nèi)外研究現(xiàn)狀
國外的協(xié)同過濾算法首次提出是在二十世紀九十年代, 根據(jù)用戶評分進行推薦, 這是最原始的推薦依據(jù).當時的用戶數(shù)據(jù)還是比較稀疏的, 為了解決稀疏性問題, 專家們提出了可以利用用戶的歷史行為信息來間接獲取數(shù)據(jù)的技術[1]. 至今, 推薦系統(tǒng)已經(jīng)成為數(shù)據(jù)挖掘的主要服務對象. 國外著名的推薦系統(tǒng)有GroupLens、PHOAKS和Ringo. 其中GroupLens是一個基于群體的共同偏好的新聞推薦系統(tǒng). PHOAKS通過記錄在線用戶所發(fā)帖子中的網(wǎng)站數(shù)量, 進行排名, 給相關用戶推薦數(shù)量較高的網(wǎng)站, 達到網(wǎng)站推薦目的. Ringo是一個音樂推薦系統(tǒng), 通過對音樂人的評分對用戶進行分組,根據(jù)用戶組內(nèi)互推達成推薦目的. 由此可見, 國外的協(xié)同過濾技術已經(jīng)較為成熟和先進.
雖然推薦系統(tǒng)已經(jīng)應用在我國的電子商務和社交方面, 但是我國的推薦系統(tǒng)相關技術還處于初步階段,以推薦系統(tǒng)為關鍵詞的論文發(fā)表也大大落后于國外,并且大部分是參考國外的先進成果[2]. 2009年, 國內(nèi)首個個性化推薦系統(tǒng)團隊成立, 主要致力于個性化推薦系統(tǒng)的研究. 目前, 我國推薦系統(tǒng)做得較好的有豆瓣網(wǎng)、淘寶網(wǎng)、愛奇藝等各大視頻網(wǎng)站等.
(2) 關于協(xié)同過濾算法的改進研究
傳統(tǒng)的協(xié)同過濾算法存在冷啟動、稀疏等問題導致推薦精度偏差. 為了提高推薦精度, 相關學者也進行了一些優(yōu)化處理. 重慶理工大學黃賢英等人[3]提出結合用戶興趣度聚類的協(xié)同過濾算法, 將用戶-項目矩陣、項目-關鍵詞矩陣結合成用戶-關鍵詞矩陣, 使系統(tǒng)發(fā)現(xiàn)隱藏的用戶間的關系, 平均絕對誤差(MAE)值降低到0.643, 提高了推薦準確率. 浙江大學劉曉等人[4]提出電視劇推薦系統(tǒng)計算相似度時引入熱門電視劇的熱門程度考慮, 避免熱門電視劇與其他電視劇相似度偏高, 獲得大量推薦的問題, 準確率提高至39.7%. 上海理工大學實驗室[5]提出在皮爾遜相似度原理上添加熱門因子來優(yōu)化皮爾遜相似度計算, 改進后算法的MAE值減少到了0.758, 推薦準確率得到提高.
基于以上的研究成果, 同樣考慮到電視產(chǎn)品推薦的冷門項目問題, 本文提出基于物品的協(xié)同過濾算法在電視產(chǎn)品推薦系統(tǒng)中的研究應用, 并在此基礎上根據(jù)用戶的歷史點播記錄引入了點播金額權重這一個隱式特征進行改進, 使得推薦精度更加準確.
由于協(xié)同過濾的推薦算法對推薦對象無結構要求,廣泛應用于電影推薦中, 本文采用基于協(xié)同過濾的推薦算法來解決電視產(chǎn)品推薦問題. 協(xié)同過濾推薦算法主要分為兩類: 基于用戶的協(xié)同過濾算法和基于物品的協(xié)同過濾算法[6].
基于用戶的協(xié)同過濾推薦算法的基本思想是基于用戶對物品的偏好找到用戶的鄰居用戶, 然后將鄰居用戶的偏好推薦給當前用戶, 偏好可以通過對用戶的歷史行為數(shù)據(jù)(如商品購買、收藏、分享、評分、觀看時長等)挖掘而來. 在計算上, 根據(jù)不同用戶對相同物品的偏好程度計算用戶之間的關系, 利用有相同偏好的用戶來預測當前用戶的偏好, 然后選擇預測喜愛程度最高的若干個推薦對象反饋給用戶. 基于用戶的協(xié)同過濾算法的推薦流程如圖1所示.
圖1 基于用戶的協(xié)同過濾算法的推薦流程圖
基于物品的協(xié)同過濾推薦算法的原理和基于用戶的協(xié)同過濾推薦算法相似, 將物品和用戶對換. 在計算時計算的是物品之間的關系, 而不是用戶之間的關系,從物品本身出發(fā), 基于用戶對物品的偏好找到相似的物品, 然后利用K個最近鄰居物品的加權來預測當前用戶對這K個鄰居物品的喜好程度, 從而將喜好程度高的若干個物品推薦給用戶. 基于物品的協(xié)同過濾算法的推薦流程如圖2所示.
圖2 基于物品的協(xié)同過濾算法的推薦流程圖
基于用戶的協(xié)同過濾推薦算法和基于物品的協(xié)同過濾推薦算法都各有優(yōu)勢, 對于電視產(chǎn)品的推薦來說,客戶量的數(shù)據(jù)遠遠少于產(chǎn)品(物品)數(shù)據(jù), 在這種非社交網(wǎng)絡的電視產(chǎn)品推薦引擎中, 內(nèi)容內(nèi)在的聯(lián)系的推薦原則比基于相似用戶的推薦原則更加有效, 故在電視產(chǎn)品推薦上選擇基于物品的協(xié)同過濾算法. 在給用戶推薦電視產(chǎn)品時, 給用戶推薦與該用戶歷史觀看的電視節(jié)目相似度高的電視產(chǎn)品, 和推薦相似用戶觀看的電視產(chǎn)品給用戶相比, 顯然前者更加具有說服力.
本文采用基于物品的協(xié)同過濾推薦算法來解決給用戶推薦電視產(chǎn)品的問題, 并在傳統(tǒng)的基于物品的協(xié)同過濾推薦算法中引入點播金額權重進行改進, 用于提高推薦系統(tǒng)的準確率. 首先根據(jù)用戶的收視信息來分析用戶的收視偏好, 將用戶觀看某個電視節(jié)目的時間長短作為用戶喜好的顯式特征, 根據(jù)電視產(chǎn)品的營銷特性, 建立好數(shù)據(jù)模型后加入電視產(chǎn)品的點播金額權重, 再計算相似度. 然后根據(jù)電視產(chǎn)品之間的相似性和用戶的歷史觀看記錄來預測目標用戶對未觀看過的電視產(chǎn)品的觀看時長, 產(chǎn)生推薦結果, 尋找k最近鄰構成推薦矩陣. 算法流程圖如圖3所示.
用戶收視信息數(shù)據(jù)主要包括用戶的機頂盒號、電視節(jié)目名稱, 對應電視節(jié)目觀看時長、電視產(chǎn)品點播金額, 將用戶觀看某個電視節(jié)目的時長作為衡量用戶喜好程度的依據(jù). 根據(jù)用戶機頂盒號、電視節(jié)目名稱、觀看時長這三個數(shù)據(jù)生成矩陣, 作為基于物品的協(xié)同過濾算法模型的輸入數(shù)據(jù), 建立數(shù)據(jù)模型.
在建立完數(shù)據(jù)模型后, 對構建好的初始矩陣(用戶-觀看時長矩陣X)采取矩陣相乘的方式進行點播金額權重(電視產(chǎn)品-點播金額權重矩陣M)的賦權, 得到最終數(shù)據(jù)矩陣W, 如式(1). 因為流行物品往往和任意物品的相似度都很高, 現(xiàn)實中基于物品的協(xié)同過濾推薦算法應用往往會增加對流行物品的懲罰度[7]. 對于電視產(chǎn)品的推薦來說, 有些電視產(chǎn)品是需要點播金額才可以觀看的, 根據(jù)用戶的消費心理, 點播金額小的電視節(jié)目往往會更受歡迎, 也就是所謂的“流行產(chǎn)品”, 在進行推薦時, 這些流行產(chǎn)品會對推薦結果引起干擾, 造成推薦結果不準確. 而且點播金額還能在一定程度上反映用戶的偏好, 點播金額昂貴的電視產(chǎn)品用戶仍愿意點播說明用戶很喜愛這個電視產(chǎn)品. 所以在構建數(shù)據(jù)模型時引入點播金額權重, 可使推薦結果更加準確.
圖3 引入點播金額權重后協(xié)同過濾算法的流程圖
計算物品相似度是基于物品的協(xié)同過濾算法的核心, 計算電視產(chǎn)品之間的相似度即為計算向量間的距離, 距離越近相似度越大, 主要有歐幾里得距離、皮爾遜相關系數(shù)、余弦相似度[8]這三種方法.
由于電視產(chǎn)品推薦和其他用評分作為用戶偏好的推薦系統(tǒng)不同, 不存在“分數(shù)膨脹”的問題, 電視產(chǎn)品的收視數(shù)據(jù)比較密集和完整, 距離數(shù)據(jù)非常重要, 故最終選擇歐幾里德距離法計算電視產(chǎn)品之間的相似度.
歐幾里德距離法: 最初用于計算歐幾里德空間中兩個點的距離, 假設x,y是n維空間的兩個點, 它們之間的歐幾里德距離是:
當用歐幾里德距離表示相似度, 一般采用式(3)進行轉換: 距離越小, 相似度越大.
計算出電視產(chǎn)品之間的相似度后, 保留與目標電視產(chǎn)品相似度最大的K個電視產(chǎn)品作為其最鄰居電視產(chǎn)品集合.
根據(jù)上一步獲得的最鄰居電視產(chǎn)品集合, 結合鄰居電視產(chǎn)品對目標用戶未觀看過的電視產(chǎn)品的觀看時長以及相似度來計算目標用戶觀看未看過的電視產(chǎn)品的預測觀看時長, 通常采取中心加權平均值[9]的方法計算目標用戶v對未看過電視產(chǎn)品的預測觀看時長p(v,i),記ri、rj分別表示觀看過電視產(chǎn)品i、電視產(chǎn)品j的用戶的觀看時長平均值, 如式(4).
將預測的觀看時長歸一化后作為電視產(chǎn)品的推薦指數(shù), 將推薦指數(shù)的Top10作為推薦結果反饋給用戶.
本文的實驗采用Python語言, 泰迪杯比賽提供的廣電平臺收視信息數(shù)據(jù)作為實驗數(shù)據(jù), 共452 455條數(shù)據(jù), 主要是用戶觀看電視產(chǎn)品的數(shù)據(jù), 包含用戶機頂盒號、電視節(jié)目名稱, 對應電視節(jié)目觀看時長等數(shù)據(jù)(如表1), 還有電視產(chǎn)品對應的點播金額數(shù)據(jù)(如表2). 將這些數(shù)據(jù)的80%作為訓練集, 20%作為測試集.
表1 廣電平臺的收視信息數(shù)據(jù)表
表2 電視產(chǎn)品點播金額數(shù)據(jù)表
通過比較推薦結果和實際觀看的電視產(chǎn)品集的偏差, 來衡量一個推薦系統(tǒng)的好壞. 本文用平均絕對誤差(MAE)[3]和平均預測覆蓋率(APC)[10]兩個評估指標來對比分析傳統(tǒng)的基于物品的協(xié)同過濾算法和優(yōu)化后算法的效果.
(1)平均絕對誤差
平均絕對誤差是一種常用的用于衡量統(tǒng)計的準確性和比較的度量方法, 通過計算預測的用戶觀看時長與實際用戶觀看時長之間的偏差度來度量預測的準確性.MAE值越小, 推薦準確度就越高. 假設系統(tǒng)預測推薦的電視產(chǎn)品集合為 (x1,x2,…,xn), 用戶實際觀看電視產(chǎn)品集合為 (y1,y2,…,yn), 計算公式如下:
(2)覆蓋率
覆蓋率表示一個推薦系統(tǒng)對長尾商品的挖掘能力,設推薦給一個用戶的電視產(chǎn)品集合為R, 該用戶實際觀看電視產(chǎn)品集合為A, 采用APC(平均預測覆蓋率)計算平均整體的推薦效果, 如式(6).
本文設置兩組實驗, 實驗1用來確定最優(yōu)的點播金額權重值以達到最佳效果, 實驗2用來驗證優(yōu)化后算法的有效性.
實驗1在其他參數(shù)相同的條件下, 只改變點播金額權重, 點播金額權重值從0開始取值到1, 步長為0.1, 使用MAE指標來衡量不同點播金額權重下的推薦效果. 實驗結果如圖4所示, 由圖4可看出, 當點播金額權重值為0.3時MAE值最小, 推薦精度最高.
圖4 不同點播金額權重的平均絕對誤差對比圖
實驗2在相同參數(shù)的環(huán)境下, 將本文改進算法(點播金額權重取實驗1得到的最優(yōu)值0.3)同時與傳統(tǒng)協(xié)同過濾算法和文獻[5]改進算法進行對比, 產(chǎn)生推薦結果(如表3). 將三種算法得到的推薦結果與實際興趣集合進行比較, 用MAE和APC兩個評估指標衡量, 實驗結果如圖5和圖6所示.
由圖5可知, 相似鄰居數(shù)目的變化對三種算法均有影響, 隨著鄰居數(shù)目的增加MAE達到最小值并逐漸趨于穩(wěn)定. 在鄰居數(shù)目為15時, 三種算法的MAE均達到最小值, 此時推薦準確度最高. 無論鄰居數(shù)目為何值,本文改進算法和文獻[5]改進算法都比傳統(tǒng)算法的MAE值低, 而本文改進算法的MAE值總體上略優(yōu)于文獻[5]改進算法, 說明準確率較高. 由圖6可看出, 本文改進算法的平均預測覆蓋率均高于傳統(tǒng)算法和文獻[5]改進算法, 說明引入點播金額權重后能夠提高推薦系統(tǒng)的覆蓋率. 文獻[5]改進算法引入物品熱門因子來改進協(xié)同過濾算法, 達到優(yōu)化相似度的計算的目的, 但在本文電視產(chǎn)品推薦應用中, 由于電視產(chǎn)品的特性, 點播金額比物品熱門因子衡量物品熱門程度的效果更好, 故推薦效果更佳.
表3 推薦結果部分示例數(shù)據(jù)表
圖5 優(yōu)化前后平均絕對誤差對比圖
圖6 優(yōu)化前后平均預測覆蓋率對比圖
本文主要研究了基于物品的協(xié)同過濾算法在電視產(chǎn)品推薦系統(tǒng)中的改進及應用, 在傳統(tǒng)的協(xié)同過濾算法中引入點播金額權重來避免流行物品對推薦結果產(chǎn)生的干擾, 使推薦結果更加準確. 實驗表明, 優(yōu)化后的推薦算法的平均絕對誤差和平均預測覆蓋率均比傳統(tǒng)的協(xié)同過濾算法高, 說明優(yōu)化后算法的推薦結果準確率得到提高. 個性化電視產(chǎn)品的推薦不僅能夠給用戶帶來獲取信息的便利性, 還能給運營商帶來巨大的經(jīng)濟利益, 達到一石二鳥的效果.