国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

Spark框架下的受眾分群及矩陣分解的推薦算法研究

2016-08-09 07:23:32周虹君殷復(fù)蓮陳怡婷周嘉琪伊成昱
中國新通信 2016年11期

周虹君 殷復(fù)蓮 陳怡婷 周嘉琪 伊成昱

【摘要】 本文針對協(xié)同過濾推薦算法中存在的矩陣稀疏問題,提出了基于聚類和矩陣分解的推薦算法,并結(jié)合隱式反饋信息構(gòu)建的電視用戶收視偏好模型,將推薦算法應(yīng)用有電視動畫受眾分群和推薦中。針對受眾分群和節(jié)目推薦所使用的聚類算法和推薦算法涉及大量的迭代計算的問題,采用了高效的分布式計算系統(tǒng)——Spark進行電視動畫節(jié)目推薦研究。該方法提高了推薦準(zhǔn)確度,運行時間明顯減少,具有較強的可擴展性。

【關(guān)鍵詞】 Spark 受眾分群 矩陣分解 推薦 電視動畫 節(jié)目標(biāo)簽

引言

推薦算法是目前應(yīng)用較廣的數(shù)據(jù)挖掘技術(shù),在學(xué)術(shù)研究和應(yīng)用方面都得到了廣泛關(guān)注。Shihang H[1]在MapReduce上實現(xiàn)了對網(wǎng)絡(luò)服務(wù)的協(xié)同過濾推薦,而MapReduce并不擅長推薦算法的迭代計算;Jing M[2]構(gòu)建了大規(guī)模的廣告推薦系統(tǒng);Duo L[3]提出了基于統(tǒng)計模型的推薦方法,以解決協(xié)同過濾算法中的矩陣稀疏問題,并將其應(yīng)用于用戶行為分析及推薦中;YiBo H[4]提出了基于聚類的協(xié)同過濾推薦算法,但其涉及的迭代式計算較多,致使無法實現(xiàn)較高的效率。Manda W[5]等人在Spark上實現(xiàn)了基于ALS模型的協(xié)同過濾推薦。結(jié)合以上研究以及存在的問題,文本利用Spark在內(nèi)存計算和迭代計算上的優(yōu)勢,提出了Spark框架下受眾分群及聚類分解的推薦算法,將其應(yīng)用于廣電動畫節(jié)目受眾推薦研究中。本文使用隱式反饋信息構(gòu)建“用戶-標(biāo)簽”收視偏好模型,通過聚類劃分用戶簇實現(xiàn)受眾分群,然后使用矩陣分解的推薦算法針對不同的用戶簇進行推薦,可進一步降低矩陣的稀疏性。使用“用戶-標(biāo)簽”收視偏好模型進行受眾分群,一方面可以通過標(biāo)簽實現(xiàn)對用戶的肖像刻畫,另一方面可以使得各用戶簇的特性更加直觀。

一、用戶收視偏好模型

動畫節(jié)目受眾分群和推薦需基于用戶收視偏好模型,本文使用隱含在用戶與節(jié)目交互之中的隱式反饋信息構(gòu)建該模型,包括二元數(shù)據(jù)(如用戶是否觀看了某個動畫節(jié)目)和計數(shù)數(shù)據(jù)(如用戶收看某動畫節(jié)目的收視時長、收看次數(shù))[7]。

1.1“用戶-標(biāo)簽”偏好模型

使用爬蟲技術(shù)獲取動畫節(jié)目標(biāo)簽并與用戶收視數(shù)據(jù)結(jié)合,形成“用戶-標(biāo)簽”基本模型,使用收視時長、節(jié)目播出時長重構(gòu)出“用戶-標(biāo)簽”偏好模型的特征——忠誠度和興趣度,構(gòu)成“用戶-標(biāo)簽”偏好集合:IL={L1,L2},L1、L2分別表示用戶對節(jié)目的忠誠度和興趣度。

忠誠度:某用戶收視含某標(biāo)簽的節(jié)目總時長與含該標(biāo)簽的節(jié)目播出總時長的關(guān)系,表征該用戶對某標(biāo)簽的忠誠程度。如式所示:

原始的收視偏好矩陣很稀疏,通過矩陣分解可有效降低收視矩陣的稀疏程度[6]。矩陣分解的求解方法很多,常用方法有:最小二乘迭代法ALS和隨機梯度下降法SGD。

ALS模型中,對R≈PQT固定P求解Q,然后再固定Q求解P,重復(fù)交替這兩步直至算法收斂[5]。本文基于Spark分布式計算框架,因此采用更易于分布式計算的ALS算法。

2.2推薦算法的評價指標(biāo)

為評價算法推薦的準(zhǔn)確性,本文中采用一下評價指標(biāo):均方誤差MSE、均方根誤差RMSE、全局平均準(zhǔn)確率MAP[7]。MSE表示評價數(shù)據(jù)的變化程度,其值越小,說明推薦模型描述實驗數(shù)據(jù)具有更好精確度,RMSE為其標(biāo)準(zhǔn)差。而MAP是基于排名的評價指標(biāo),其值越高說明推薦的節(jié)目越精準(zhǔn),節(jié)目的排位也更能滿足用戶。其具體定義分別如下式

三、實驗及結(jié)果分析

本文使用某省單月用戶收視作為實驗數(shù)據(jù), 進行動畫節(jié)目核心受眾分群及其推薦。實驗在Linux上搭建Spark平臺,并使用Python API、Anaconda科學(xué)計算集成以及IPython Notebook作為IDE。

3.1“用戶-標(biāo)簽”偏好模型的受眾分群

(1)Spark平臺下的K-means受眾分群

計算動畫節(jié)目受眾所投入的累計時長,取時長最長的70個動畫標(biāo)簽進行降維處理,并構(gòu)建“用戶-標(biāo)簽”偏好矩陣。使用K-Means聚類實現(xiàn)用戶分群,本文將最大迭代次數(shù)設(shè)為100,確保算法達到收斂。由于聚類簇數(shù)K會影響最后的聚類效果,因此需要通過實驗來確定。目標(biāo)函數(shù)WCSS是K-means聚類的內(nèi)部評價指標(biāo),其數(shù)值可以表征聚類結(jié)果的誤差,其值越大,代表聚類的誤差越大。本實驗通過改變K值,綜合聚類效果及運行時間確定K的取值。實驗結(jié)果如圖1:

隨著K增大,目標(biāo)函數(shù)WCSS數(shù)值降低,聚類效果越好,同時運行時間也增加。綜合不同K下的WCSS和運行時間,本文選擇K=8作為聚類的簇數(shù),根據(jù)“用戶-標(biāo)簽”偏好模型,將用戶劃分成8類。

使用節(jié)目標(biāo)簽對分群后的各類簇用戶進行肖像刻畫。表3為各類簇前十個高頻核心標(biāo)簽。如表,類1用戶偏愛冒險、國產(chǎn)動畫;類2用戶的興趣集中在益智和戰(zhàn)斗、冒險類動畫;類3用戶偏向親子和家庭類動畫,可預(yù)測其主要受眾為低齡兒童;類4用戶的興趣集中在輔導(dǎo)、音樂類及真人秀節(jié)目;類5用戶的標(biāo)簽集中在搞笑和益智類;類6用戶的興趣度明顯集中在音樂、輔導(dǎo)等益智類的節(jié)目;類7用戶喜歡劇情、冒險、戰(zhàn)斗類的動畫;類8用戶偏向于游戲、綜藝等少兒類節(jié)目。

(2)不同平臺下受眾分群的對比

本實驗在Spark和R中使用K-menas對實驗數(shù)據(jù)進行聚類,并就其CPU占用時間進行對比。實驗結(jié)果如表4。使用Spark受眾分群的CPU占用時間比R少一個數(shù)量級,時間減少約80%,說明在迭代運算方面,Spark更有優(yōu)勢。

3.2矩陣分解的協(xié)同過濾推薦算法

使用“用戶-節(jié)目”收視偏好模型,根據(jù)分群后結(jié)果,使用矩陣分解的協(xié)同過濾算法分別對各類用戶推薦,本實驗使用ALS進行矩陣分解。實驗將用戶的最大因子向量維度設(shè)為100維,最大迭代次數(shù)設(shè)為10次,收斂閾值設(shè)為0.01。

本實驗對某月收看動畫節(jié)目天數(shù)最多(29天)的機頂盒的用戶進行推薦,受眾分群后該用戶屬于用戶簇5,此類用戶偏愛冒險、奇幻、搞笑類動畫。推薦結(jié)果按照偏好評分取前50個節(jié)目。

(1)有無受眾分群的推薦結(jié)果比較

實驗中,分別對經(jīng)過受眾分群的用戶和未分群的用戶進行節(jié)目推薦,預(yù)測出的評分表示用戶對該節(jié)目的偏好程度。為用戶ID=174294377推薦評分高的前十個節(jié)目,如表4:

可以看出,受眾分群后的推薦結(jié)果可挖掘到未分群推薦所忽略的節(jié)目,例如偏好評分較高的《熊出沒之叢林總動員》和《大風(fēng)車》,未出現(xiàn)在無受眾分群的推薦列表中。因此,受眾分群的協(xié)同過濾推薦可以挖掘到更多更加滿足用戶收視偏好的節(jié)目。

(2)有無受眾分群的推薦結(jié)果、以及用戶原始偏好指數(shù)對比

表5顯示,矩陣分解的推薦算法在整體上表現(xiàn)都是優(yōu)秀的,無論是有無進行受眾分群的推薦,都沒有較嚴(yán)重的誤差;另一方面,受眾分群后進行推薦相比于未分群進行節(jié)目推薦,更加接近用戶原始偏好指數(shù),推薦結(jié)果的可信度更高。

(3)有無受眾分群的推薦結(jié)果評價指標(biāo)對比

該實驗對全部用戶進行動畫節(jié)目推薦,分別計算兩個推薦方式的MSE、RMSE、MAPK、和運行時間,實驗結(jié)果如表6:

上圖顯示,經(jīng)過受眾分群的推薦,其MSE和RMSE的值越低,說明節(jié)目推薦的準(zhǔn)確度越高,其準(zhǔn)確率提高了60%;另一方面MAP的值越高,說明就排名而言,受眾分群的推薦更接近用戶的偏好。從運行時間而言,該算法節(jié)省了50%的運行時間。

四、總結(jié)

本文基于分布式處理框架Spark,提出了基于聚類和矩陣分解的推薦算法,并結(jié)合隱式反饋信息構(gòu)建的電視用戶收視偏好模型,將推薦算法應(yīng)用有電視動畫受眾分群和推薦中。通過對高頻受眾進行有無受眾分群的推薦,對比驗證得出,基于受眾分群的節(jié)目推薦,可以挖掘出傳統(tǒng)推薦所忽視的節(jié)目,從個體上,提高了所推薦節(jié)目預(yù)測評分的準(zhǔn)確性,從整體上,提高了推薦節(jié)目列表的排名準(zhǔn)確度。該方法能夠明顯減少推薦時間并且提高推薦準(zhǔn)確度,具有良好的可擴展性。

參 考 文 獻

[1] Shihang H,et al.Collaborative filtering of web service based on MapReduce[C]. ICSS.2014

[2] Jing M.A recommend system for modelling large-scale advertising[C].CCT.2014

[3] Duo L, et al. A NEW ITEM RECOMMEND ALGORITHM OF SPARSE DATA SET BASED ON USER BEHAVIOR ANALYZING[C].ICSP.2014

[4] YiBo H. An Item Based Collaborative Filtering Using Item Clustering Prediction[C].ISECS.2009

[5] Manda W, et al. Algorithmic Acceleration of Parallel ALS for Collaborative Filtering: Speeding up Distributed Big Data Recommendation in Spark[C].ICPADS.2015

[6] 鄭鳳飛,黃文培.基于Spark的矩陣分解推薦算法[J].中國機器學(xué)習(xí)會議.2015

[7] Nick P.Machine Learning with Spark[J]. Packt Publishing - ebooks Account.2014

[8]ZAHARIA M,et al.Resilient distributed datasets: a fault-tolerant abstraction for in-memory cluster computing[C].EECS.2011

广河县| 河间市| 五常市| 涿州市| 普洱| 台山市| 赤峰市| 涿鹿县| 高青县| 亚东县| 台东县| 景东| 文水县| 兰溪市| 万宁市| 曲松县| 福贡县| 都匀市| 独山县| 湘阴县| 仁寿县| 义马市| 漳州市| 敖汉旗| 赤水市| 中牟县| 互助| 贺兰县| 钟山县| 宜兴市| 盐亭县| 齐齐哈尔市| 方正县| 乐山市| 滦平县| 旌德县| 武陟县| 荆州市| 开化县| 明水县| 怀来县|