劉 超 賈毓臻 王 攀
1(江蘇大學電氣信息工程學院 江蘇 鎮(zhèn)江 212013)2(南京郵電大學現(xiàn)代郵政研究院 江蘇 南京 210003)
隨著天翼高清業(yè)務(wù)的持續(xù)發(fā)展,業(yè)務(wù)的多樣性和復(fù)雜性十分明顯,業(yè)務(wù)質(zhì)量是確保用戶體驗和業(yè)務(wù)發(fā)展的關(guān)鍵[1]。IPTV借助寬帶有線電視網(wǎng)的基礎(chǔ)配置,將家用電視機作為輸出設(shè)備,通過IP協(xié)議提供多種數(shù)字媒體服務(wù)[2]。IPTV主要用于連接用戶與終端、用戶與用戶、用戶與服務(wù),讓用戶能夠充分發(fā)現(xiàn)服務(wù)、體驗服務(wù)、社交互動,使電視真正成為家庭媒體娛樂中心[3]。用戶行為是人與商家的關(guān)鍵紐帶,通過用戶行為分析,幫助IPTV服務(wù)提供商提升服務(wù)質(zhì)量同時為終端用戶提供精準個性化服務(wù),具體體現(xiàn)在三個方面:(1) 改善系統(tǒng)設(shè)施,通過用戶數(shù)據(jù)分析,便于對系統(tǒng)結(jié)構(gòu)進行設(shè)計,減少服務(wù)器數(shù)量,節(jié)省開支;(2) 改善視頻調(diào)度、存儲方案,通過視頻點播率、點播時長等分析,可以改進存儲算法,充分利用服務(wù)器的內(nèi)存與帶寬;(3) 改善服務(wù)質(zhì)量,拉近運營商與用戶之間的距離,為用戶提供高效優(yōu)質(zhì)的服務(wù)[4]。
自從1999年開始,全球大約有大大小小的50多家電信運營商進入IPTV運營。隨著亞洲和北美地區(qū)IPTV市場的快速增長,有眾多學者對IPTV用戶行為開展了許多有意義的分析與研究,并取得了大量極具影響力的研究成果。汪敏娟等[5]提出基于點播行為特征指數(shù)的分群算法對IPTV用戶進行精準分類,該算法無法清洗無意識的點播行為,不能充分描述用戶的實際偏好,分群準確率低于90%。唐明等[6]提出基于關(guān)鍵詞的用戶興趣模型對用戶的興趣愛好進行歸納總結(jié)。這種采用關(guān)鍵詞的表達方法雖易于理解,計算機難以對其準確識別。Hei等[7]以有限范圍的節(jié)點信息為基礎(chǔ),采用被動嗅探方法獲取數(shù)據(jù)包,對P2P IPTV系統(tǒng)進行了測量與研究,由于無法獲取系統(tǒng)全局信息,研究結(jié)果局限性較大。
由于目前對于IPTV用戶行為分析還沒有規(guī)范性模型,針對IPTV視頻業(yè)務(wù)的復(fù)雜性和多樣性,本文提出一種基于深度學習的IPTV視頻用戶行為分析方法。該方法采用DNN模型對用戶點播行為進行分析,同時借助wireshark工具采集IPTV收視數(shù)據(jù),能夠避免無意識的點播行為,最終為用戶精準個性化服務(wù)提供有效的數(shù)據(jù)支持。
IPTV具有雙向性,用戶通過點播行為向服務(wù)器發(fā)送請求命令,服務(wù)器返回用戶需求,同時IPTV的播放數(shù)據(jù)是客觀且真實的,結(jié)合雙向性,根據(jù)數(shù)據(jù)采集系統(tǒng),對IPTV特有的收視數(shù)據(jù)進行歸納分析,具有重要意義。
數(shù)據(jù)采集就是從網(wǎng)絡(luò)收集原始數(shù)據(jù)流量[8],本系統(tǒng)數(shù)據(jù)流量的采集利用Wireshark[9],Wireshark是世界上流行的網(wǎng)絡(luò)分析工具,借助它能夠爬取到各種協(xié)議的網(wǎng)絡(luò)二進制數(shù)據(jù)包,明顯提高了對網(wǎng)絡(luò)活動的監(jiān)測分析效率。數(shù)據(jù)采集拓撲圖如圖1所示,通過在機頂盒和電視接口ONU之間增加一個鏡像路由器,借助Wireshark工具在PC機上采集流量數(shù)據(jù)。
圖1 數(shù)據(jù)采集拓撲圖
數(shù)據(jù)流量中反映IPTV視頻用戶行為的主要元素是遙控器點播視頻所對應(yīng)的URL、點播該視頻的時間戳、IPTV開機關(guān)機時間戳。通過對URL進行解析,得到點播視頻對應(yīng)名稱;根據(jù)點播視頻時間戳計算出視頻播放時長,定義點播當前視頻時間為Tnow,切換至下個視頻時間為Tnext,則播放時長T為:
T=Tnext-Tnow
(1)
同時根據(jù)IPTV開機關(guān)機時間戳計算在線時長。將一天中各個開關(guān)機時間段的關(guān)機時間Tclose減去開機時間Topen的差相加求和得到一天IPTV在線時長Ton:
Ton=∑(Tclose-Topen)
(2)
由于上述采集到的數(shù)據(jù)為文本類型,而深度學習算法中輸入類型只能是數(shù)值型[10],無法直接接受文本型數(shù)據(jù)。但若在數(shù)量很多的非數(shù)值型環(huán)境下使用深度神經(jīng)網(wǎng)絡(luò),就需要對輸入數(shù)據(jù)進行預(yù)處理,將非數(shù)值型輸入轉(zhuǎn)化為數(shù)值類型數(shù)據(jù)。其中數(shù)據(jù)預(yù)處理分為量化與歸一化兩部分。
1.2.1量 化
針對所采集的原始數(shù)據(jù)集為非數(shù)值型數(shù)據(jù)并且行為特征不明顯,因此,在數(shù)據(jù)分析前,需要將數(shù)據(jù)按特征進行分類,同時將分類后的數(shù)據(jù)量化為數(shù)值型數(shù)據(jù)[11]。將原始數(shù)據(jù)集分為三個特征:IPTV在線時長、視頻播放時長、點播視頻類型。在分析過程中,需要將原始數(shù)據(jù)集量化處理,從以上幾個特征對IPTV用戶點播視頻活躍度進行分析。
對于在線時長,為了簡化模型,在測試過程中以等級形式對其進行量化,其中在線時長分為:0~1 h、1~2 h、2~3 h、3~4 h、4~5 h、5 h以上,分別用0、1、2、3、4、5表示。
對于視頻播放時長,即點播一個視頻直到切換至其他視頻的連續(xù)時間Tcon(單位:h)。根據(jù)Tcon,將用戶行為分為兩類:設(shè)定Tcon小于等于5 min時,記為瀏覽行為;Tcon大于5 min時,認為用戶在觀看視頻,則記為觀看行為。將瀏覽和觀看行為初始值X0分別設(shè)為0和1。
對于點播視頻類型,將視頻名稱按類型劃分為電視劇、電影、綜藝、紀錄片、體育、游戲、動畫,從而得到用戶某一類視頻點播率P,P=N/S,其中N代表某一類被點播視頻,S表示當天點播視頻類型總數(shù)。此處是觀看記錄,而不是瀏覽記錄。
1.2.2歸一化
為了后續(xù)數(shù)據(jù)處理的方便,使得梯度始終朝著最小值的方向前進,同時保證模型運行時快速收斂[12],需要把量化后的數(shù)據(jù)經(jīng)過相關(guān)處理后限制在一定域值范圍內(nèi)。因此將上述量化后的數(shù)據(jù)集進一步處理。
對于在線時長,通過上述公式轉(zhuǎn)換后得到數(shù)據(jù)集[0,0.2,0.4,0.6,0.8,1]。
對于點播視頻名稱而言,通過量化后已得到視頻點播率,屬于0-1之間,所以不對其進行歸一化處理。
深度神經(jīng)網(wǎng)絡(luò)(DNN)按照不同層的位置劃分可以分為三類,輸入層、隱藏層和輸出層[13]。隱藏層可以包含多層,負責增強模型的表達能力,本文采用包含三層隱藏層的DNN模型,如圖2所示。輸出層可以包含多個輸出,從而更靈活有效地應(yīng)用于分類回歸。其中層與層之間是全連接的,同一層的神經(jīng)元之間無連接。
圖2 深度神經(jīng)網(wǎng)絡(luò)圖
由于DNN內(nèi)部網(wǎng)絡(luò)復(fù)雜,本文對局部模型進行解析,其結(jié)構(gòu)如圖3所示。
圖3 DNN局部結(jié)構(gòu)圖
從第l-1到第l層可用一個線性關(guān)系表示:
z=Wx+b
(3)
式中:W表示權(quán)值矩陣,x表示輸入向量,b表示偏倚向量,變換如下:
(4)
在式(4)基礎(chǔ)上加入一個激勵函數(shù)σ(z)以增加模型非線性和魯棒性。本文使用softmax函數(shù)作為模型的激勵函數(shù):
(5)
由于IPTV機頂盒的業(yè)務(wù)流程主要利用遙控器向家庭寬帶網(wǎng)絡(luò)獲取視頻信號,網(wǎng)絡(luò)將點播的視頻信號發(fā)送到機頂盒,經(jīng)過解碼后最終在電視上輸出。因為機頂盒具有唯一的用戶標識,所以機頂盒遙控器行為是分析用戶行為的關(guān)鍵屬性。IPTV可提供的業(yè)務(wù)有電視直播、視頻點播、互動游戲等,通過遙控器行為可以得知用戶操作屬于直播還是點播等其他行為。本文主要針對IPTV用戶點播視頻活躍度行為進行分類。
將預(yù)處理后的數(shù)據(jù)輸入到CSV文檔中,完成數(shù)據(jù)集D的制作。本文使用留出法(hold-out)[14],該方法將數(shù)據(jù)集D劃分為兩個互斥的集合:訓練集S和測試集T,即D=S∪T,S∩T=φ。利用S訓練出理想模型后,再使用T來評估模型優(yōu)劣。
將訓練集S輸入到深度學習網(wǎng)絡(luò)訓練模塊中,模型輸出預(yù)測結(jié)果,同時根據(jù)真實用戶標簽,反饋到深度學習網(wǎng)絡(luò)訓練模塊中對誤差進行持續(xù)修正訓練,訓練過程中,利用損失函數(shù)來判斷模型預(yù)測的好壞,如下式所示:
(6)
本文設(shè)置7個樣本標簽,分別表示用戶喜歡收看的種類電視劇、電影、綜藝、紀錄片、體育、游戲、動畫。由于樣本標簽是離散數(shù)據(jù),為了方便模型分類預(yù)測,使用one-hot編碼處理樣本標簽y,則:
因此,將式(6)進一步化簡,得到:
(7)
當loss值足夠小時,代表模型預(yù)測結(jié)果與真實結(jié)果近似接近,此時模型訓練完畢。為了驗證模型準確率,向訓練后的模型輸入測試集T,最終輸出用戶點播視頻活躍度分類。
實驗環(huán)境:編譯工具Python 3.5.0,采集工具wireshark 2.2.1,操作系統(tǒng)Mac os 10.12.6,CPU i7-4850HQ四核處理器,主頻2.5 GHz,內(nèi)存16 GB,硬盤容量512 GB SSD。
實驗數(shù)據(jù):實驗組織100個友好家庭用戶,在其觀看視頻后采取問卷調(diào)查等方式,獲得用戶真實的點播數(shù)據(jù)及對視頻的點評數(shù)據(jù)。調(diào)查內(nèi)容主要有觀看視頻種類、觀后感,其等級分為喜歡、不喜歡,另外還包含開機在線時長、觀看視頻的連續(xù)時間等,完成對用戶活躍度的判斷,其結(jié)果將作為真實用戶標簽。同時連續(xù)30天采集每個家庭的機頂盒數(shù)據(jù),對其進行預(yù)處理得到符合模型標準要求的數(shù)據(jù)集D,則D=3 000。其中2 500條數(shù)據(jù)集為訓練集S,剩余500條為測試集。
本文利用深度學習對IPTV視頻點播用戶進行分析。實驗?zāi)P蜑槿龑与[藏層網(wǎng)絡(luò)結(jié)構(gòu),即l=3,輸入x0為15維特征集向量,包括在線時長,觀看7類視頻連續(xù)時間以及7類視頻點播率,設(shè)置網(wǎng)絡(luò)模型第一層為20維,第二層為16維,經(jīng)過第三層,下降成7維,最后輸出與對應(yīng)7維標簽相比較,優(yōu)化差距,訓練模型。
實驗設(shè)置模型訓練次數(shù)為10 000次,當loss值足夠小時,模型訓練完畢。圖4為訓練loss變化圖。
圖4 loss變化圖
如圖4所示,經(jīng)過10 000次訓練,loss值已經(jīng)降低到0.3左右并保持穩(wěn)定,模型訓練完畢。訓練過程中,為了判斷模型是否訓練符合要求,實驗設(shè)置每訓練50次,輸入一次測試集驗證準確率,同時輸出測試結(jié)果,如圖5所示。
圖5 測試集驗證準確率
實驗結(jié)果顯示,隨著訓練次數(shù)的增加,測試準確率不斷提高。當訓練次數(shù)為0~2 500次時,即測試次數(shù)為0~50次時,模型準確率呈線性增長趨勢;訓練到2 500次以后,準確率逐漸平緩上升,訓練到10 000次時,準確率已保持在93%左右。對比汪敏娟等提出的精準分群算法,其分群準確率低于90%,本研究分析效果較好,解決對離散數(shù)據(jù)分類的問題,并且能夠避免無意識的點播行為,同時能夠捕獲到各種協(xié)議網(wǎng)絡(luò)數(shù)據(jù)流,縮小實驗局限性,準確度較高。
研究表明,利用深度學習技術(shù)能夠以較高的準確率快速精準地分析IPTV用戶點播視頻類型活躍度。盡管本文的研究已經(jīng)取得了一定階段性成果,但是由于模型還不夠完善,并且對用戶行為分析不夠全面。下一步工作將會對用戶行為進行全方位分析,包括用戶點播視頻消費指數(shù)、用戶觀看視頻體驗質(zhì)量等,并對以上信息進行行為建模、深度學習和知識發(fā)現(xiàn),具體分析IPTV用戶的觀看視頻行為習慣和興趣愛好,從整體上洞悉用戶的需求、強化客戶關(guān)懷,使得運營商可進一步為用戶提供更有價值的、個性化的服務(wù)。