2013年,短視頻分享應用開始進入人們的視野,不同於傳統「文字+圖片」的社交模式,此類應用通過手機拍攝到10秒左右的視頻,並將該視頻進行上傳和分享。因此,本文所提及的短視頻是指播放時長在5-15秒的視頻。相對於微電影、播客等媒體形式來說,短視頻具有生產簡單化、傳播即時化、內容碎片化和分享社會化的突出特點。短視頻的時間特性決定了其依附性,需要依靠社交網絡的媒介獲得龐大的觀看群體。對於各大社交網絡平臺和媒體來說,如何對用戶進行高效準確的短視頻推薦,是提高自身活躍度的一個關鍵因素[1]。
短視頻的產生是伴隨著移動聯網技術產生的新媒體,更是多種價值的融合。一方面,短視頻能夠極大的滿足人們的精神需求。在當今娛樂碎片化的時代下,文字形式的心靈雞湯已經不能滿足人們的精神世界。人們更渴望輕鬆娛樂和隨意的分為。網絡短視頻正好迎合了人們娛樂和分享的心裡,通過幾秒鐘的視頻,和朋友一起娛樂消遣。另一方面,短視頻在豐富人們的生活的同時,也潛在著巨大的商業價值。由於短視頻的播放時間短,內容豐富而多樣的特性,能夠產生較大的瀏覽量。因此,進行廣告投放將會是短視頻的一大趨勢,有針對性的內容植入和廣告投放會是巨大的視頻營銷機會。最後一點,便是短視頻能夠滿足人們的新聞需求。網絡短視頻的及時性和新聞的及時性具有高度一致性,其在新聞業的應用將帶領新聞業走向多元化的發展。國外的NOW THIS NEWS在2012年即推出了短視頻新聞應用,為政府和多種機構提供傳播支持。
在國內來看,以人民網為例。人民網是國內主流的新聞媒體之一,其新聞業務涉及到多個領域。為了更好的服務社會,人民網於2010年構建了人民電視平臺。該平臺是人民網的視頻品牌,官方視頻新聞頻道,目前已經形成以新聞類視頻節目為主,同時囊括文化、娛樂、體育、生活、社會等各類綜合內容的業務格局。該平臺的視頻以三分鐘以內的小視頻為主,用戶在查看某個視頻時,會在網頁上同時得到相關視頻的推薦信息。這些信息方便了用戶的瀏覽,提高了用戶體驗,但同時也存在推薦效率不高,同一個視頻會在一個網頁被多次推薦等問題。同時,人民網還推出了微視頻平臺,該平臺的主旨是「讓用戶在平臺在分享原創視頻,幫助用戶記錄生活經典微瞬間」,目前已經具有很大的用戶群體。這足以說明短視頻已經開始在國內的多個領域嶄露頭角。在短視頻日益普及的情況下,如何從大量的短視頻中挖掘更有效的信息,提高短視頻的推薦效率和準確度,將會是一個具有巨大實用價值的研究熱點。
2 研究現狀
對於一個短視頻網站來說,短視頻推薦系統是必不可少的一環。推薦系統根據用戶的相關信息,從視頻源裡檢索過濾,最後將與用戶興趣匹配度較高推薦給用戶。這種推薦系統在大型網際網路站點YouTube,Amazon,Netflix等都得到了成功應用。
推薦系統的開發是具有挑戰性的,多種多樣的方法被提出來。方法被劃分為以下三類:協同過濾[2],基於內容[3],以及融合前兩者的混合模型。
基於內容的推薦系統:根據歷史信息(如評價、分享、收藏過的文檔)構造用戶偏好文檔, 計算推薦項目與用戶偏好文檔的相似度, 將最相似的項目推薦給用戶.例如,在視頻推薦中,我們首先由用戶的觀看記錄或者評價收藏信息提取重要欄位(如視頻標籤,視頻分類等),從而獲取用戶的興趣標籤。之後再將新視頻與用戶興趣比對,從而產生推薦。
基於內容推薦方法的優點是:1)不需要其它用戶的數據,沒有冷開始[4]問題和稀疏問題。2)能為具有特殊興趣愛好的用戶進行推薦。3)能推薦新的或不是很流行的項目,沒有新項目問題。4)通過列出推薦項目的內容特徵,可以解釋為什麼推薦那些項目。5)已有比較好的技術,如關於分類學習方面的技術已相當成熟。缺點是:要求內容能容易抽取成有意義的特徵,要求特徵內容有良好的結構性,並且用戶的口味必須能夠用內容特徵形式來表達,不能顯式地得到其它用戶的判斷情況。
協同過濾推薦技術是推薦系統中應用最早和最為成功的技術之一。它一般採用最近鄰技術,利用用戶的歷史喜好信息計算用戶之間的距離,然後 利用目標用戶的最近鄰居用戶對商品評價的加權評價值來預測目標用戶對特定商品的喜好程度,系統從而根據這一喜好程度來對目標用戶進行推薦。協同過濾最大優 點是對推薦對象沒有特殊的要求,能處理非結構化的複雜對象,如音樂、電影。
雖然協同過濾作為一種典型的推薦技術有其相當的應用,但協同過濾仍有許多的問題需要解決。最典型的問題有稀疏問題和可擴展問題。
混合模型考慮到了基於內容推薦以及協同過濾推薦兩者的不足和缺點,將兩者融合。根據具體的混合方式不同,混合模型的性能也有所區別。
國內外各個方向都有涉及推薦系統的研究,有些集中於探索混合算法從而得出更高效的混合模型。例如在論文」OSCAR: an Online SCalable Adaptive Recommender for Improving the Recommendation Effectiveness of Entertainment Video Webshop」[5]中,研究人員就提出了一種混合模型,根據用戶的行為和數據的具體特徵選擇最合適的推薦算法給用戶。
還有對於目前協同過濾進行改進的,比如在:」Slope One Predictors for Online Rating-Based Collaborative Filtering」[6]中,研究人員提出Slope One這種方法。它旨在利用其它用戶用戶對資源的評分來預測用戶對資源的評分。還有些側重於研究社交網絡,從而更好地為協同過濾得出相似的用戶,研究結果也表明,朋友之間的興趣相似度較高,社交網絡可以很大程度上幫助推薦系統提升性能。
基於以上推薦方法的研究,結合視頻的特點,在普通視頻推薦領域已經有很多研究成果。以YouTube為例,在論文「The YouTube video recommendation system」[7]中詳細介紹了相關推薦方法在YouTube視頻網站上的應用,同時取得了很好的反饋效果。但是針對短視頻的推薦方法的研究還比較少。由於短視頻自身的生產簡單化、傳播即時化、內容碎片化和分享社會化的突出特點,如果只是將應用在普通視頻上的方法簡單的遷移到短視頻上,將必然會帶來效率低下的缺陷,同時推薦效果也會大打折扣。因此,需要根據短視頻的真實情況進行深入研究,探索出切實可用並且高效的短視頻推薦方法。
3 推薦方法的初步建立和效果評估
在視頻推薦領域,目前理論和實踐界面臨的主要問題首先是由於數據量較大引起的計算的複雜性。雲技術發展所採用的分布式計算模式以及推薦系統中的用戶模型相關技術可以應用來解決這一問題。我們的模型基於以上技術,但又對其進行了改進。
設想一下真實的推薦系統運行場景,我們就會發現這個計算量的巨大以及實施的困難性。
如果是基於內容的推薦系統,首先假設我們已經抽取了用戶的特徵值向量(假設用戶有n個),視頻的特徵值向量(假設視頻數目有m個)。接下來就是計算在已有視頻中和每個用戶的相似度分值。顯然,這個算法的時間複雜度是兩個的乘積,即O(m*n)。我們採用餘弦相似度來計算兩個特徵向量的匹配分值:
式(3-1)
其中,,分別表示用戶u,視頻m的特徵值向量;,分別表示用戶u,視頻m的第i個特徵的分值;k表示特徵值數目。
這樣一個策略忽略了抽取特徵值所用的時間。即使是這樣,只完成最終這個相似度計算,也會花費大量的時間。實驗數據 :處理1000個用戶 1000個電影大約10小時 (MovieLens數據集,CPU 2.67ghz,內存4G)
如果是基於協同過濾的算法進行推薦,首先,我們需要維持一張巨大的「用戶-視頻」評分矩陣,如圖2-1所示。僅僅是維持這張表就會佔用大量的內存空間。假設我們的評分數據佔2位元組,1000個用戶以及1000個電影的這張表,將佔用大約2G的內存空間,更何況目前的短視頻網站的用戶量以及電影量遠遠超過這一數目。
根據用戶的瀏覽記錄,我們可以用餘弦相似度計算的方法計算出與指定用戶相似的用戶。這種計算比起基於內容的方法是巨量的,會消耗很大的內存和cpu時間。即使我們採用緩存或者分步驟計算的策略,要完成這種大量的數據處理,也是會消耗大量的資源。
正是由於這種複雜性,我們需要採取一些措施來實現高性能計算的需求。我們知道常用的提高性能的方式比如增加一層緩存或者利用並行計算的思想將計算分布開來。在這個問題中最好的選擇就是分布式系統。」分布式系統是一個組件分布在網絡計算機中,並且組件之間值通過傳播消息通信和協作的系統。這個定義也就使分布式系統產生了以下尤其明顯的特徵: 組件之間的並行性,缺少全局時鐘調控以及組件故障不相關性。」[10]
影響推薦系統性能的一個重要因素, 就是用戶模型的準確建立. 用戶的興趣度模型能夠反映用戶的興趣偏好, 然而用戶的興趣不是一成不變的, 是隨著時間推移逐漸積累的, 因此個性化推薦系統需要不斷地更新用戶的興趣度模型。值得指出的是用戶的個性化信息需求是相對穩定的、時間相對長久的信息需求, 與那些隨機的、臨時的查詢有所區別. 因為它是比較穩定的需求, 所以需要保存這種需求, 並可以根據用戶對於所推薦的信息的感興趣程度加以修改, 以便於獲得更好的效果。
對於用戶興趣模型的建立來源於用戶數據的收集,所收集數據的類型和質量將會直接決定用戶興趣建模和推薦所採用的方法以及可達到的質量。對於抽取用戶反饋信息的反饋技術,有兩種不同的技術來記錄用戶的反饋信息。一種是系統直接要求用戶評價項目,這種技術被稱為顯式反饋,如評分評論等;另一種技術是隱式反饋,反饋過程並不需要用戶主動參與,這些反饋信息來源於系統對用戶行為的監控和分析,如瀏覽歷史,搜索歷史,點擊數量等。
對於用戶興趣模型的表示,目前主要有基於關鍵詞的向量空間模型表示法、概率主題模型表示法、基於本體論(Ontology)的概念表示法等。本文中採用的方法以空間向量為基礎,之後根據存在問題進一步優化。
要完成分布式計算的功能,我們的用戶興趣模型必須要能支持分布式的工作模式。標籤雲模型可以很好的實現這一功能。用標籤來去抽象出用戶的特徵值和視頻的特徵值。標籤集是依附在網絡內容上用來描述這些內容的關鍵字集合。近年來,標籤集成為了闡釋多媒體資源的一種廣泛使用的方法。
對於特徵項的抽取,常用的有文檔頻率法,開發法,信息增益法,互信息法以及文檔頻率等數十種,由於視頻網站一般提供自由地標籤編輯功能,所以特徵項提取這一部分我們不再考慮。
對於標籤權值的計算,常見的方法有布爾權重,詞項頻率權重,TF-IDF權重[8]。本文的權重計算基於TD-IDF權重。
(1)布爾權重: 布爾權重中,只統計特徵項在文本中出現與否。如果特徵項在文本中出現過,則賦予1,否則賦予0,即:
布爾權重表示的優點是計算、查詢速度快,但是布爾權重中忽略了可對文檔意義起重要作用的詞頻,對於任意特徵項,只統計出現與否,而不關心出現次數。此外,由於在布爾權值中,只有0/1兩種權重,無法進行模糊匹配。
(2)詞項頻率權重: 與布爾權重法只根據特徵詞出現與否不同,詞頻(Term Frequency,TF)權重是根據詞項在文檔中的頻率來給詞項賦權值的。在詞頻權重法中,用表示在文本中出現的詞頻,定義為:
式(3-3)
與布爾權值法相比,詞頻權值法精準度有所提升,但是無法體現出低頻特徵項的區分能力。有些低頻詞有很強的區分能力,而有些詞儘管頻率很高,但是幾乎沒有或者只有很少的區分能力。
(3)TF-IDF權重: TF-IDF權重由兩部分組成,詞項頻率以及逆文檔頻率,計算公式如(3-4)所示
式(3-4)
逆文檔頻率可以有效地防止某些沒有區分度的抽象詞彙被賦予過高權值,比如在一場足球比賽的專欄中,「足球」一詞不具有區分度,但是詞頻較高。逆文檔頻率能有效降低這類詞條權值,計算公式如(3-5)所示,其中M表示視頻總數,表示特徵項在M中出現次數,表示特徵標籤的逆文檔詞頻。
式(3-5)
因為考慮到詞條數目,所以最終權值計算公式如(3-6)所示
式(3-6)
我們所提出的模型基於上文所提到的分布式計算模型以及用戶興趣模型,但又對其進行了改進:
與普通的大數據應用不同,一個短視頻推薦系統有以下幾個特點:(1)安全性要求低。對於普通短視頻網站來說,最新的視頻信息是網頁公開的,不是商業機密性數據(2)單元用戶計算量小。對於每一個用戶而言,與之相關的數據計算量不會很巨大。(3)實時性較強。對於短視頻而言,每天都會有新的視頻湧入,用戶對新視頻的關注度要大於對舊視頻的關注度。
考慮到以上的特點,本文提出一種新的分布式計算的方案:客戶端計算。把計算的任務交由客戶端來進行處理,伺服器只做簡單的數據傳輸和操作。這種模式就好比ad-hoc網絡對傳統通信網絡的革新一樣,將集中的控制權分布開來。這種方案在更大程度上實現了分布式計算,也更充分地利用了空閒資源,也就把伺服器從繁忙的計算中解脫出來。
3.2 數據集
推薦算法實驗所採用的數據集一般都是從實際業務系統中積累起來的,使得推薦技術學術研究儘量與行業實際情況接軌。目前已有不少實際的業務系統公開了自己採集的數據集供研究者們使用。下面簡單介紹兩個本文後續章節的實驗中採用的數據集,它們在視頻推薦技術研究中也最為常用。
(1) Netflix 電影評分數據集
Netflix 公司在 2005 年底開啟 Netflix Prize 比賽的同時,公布了用於比賽和學術研究的 Netflix 電影評分數據集。該數據集包含了 Netflix 系統從 1999 開始的 6年間記錄的近50 萬用戶對 17000 多部電影的評分數據。系統使用 5 分評分制,評分值可為:1、2、3、4 和 5。數字越大則代表用戶對電影評價越高。Netflix 電影評分數據集包含了一下幾個文件:
1、MOVIE TITLE:包含數據集中所有影片的一些基本信息,如影片名稱,上映時間等。
2、TRAINING DATASET:作為提供給參賽者或者研究者進行推薦算法實驗的訓練集,包含了用戶 ID、電影 ID 和用戶評分等關鍵信息。
3、QUALIFYING DATASET:未包含評分的測試數據集合,提供給參賽者作其設計系統的評分預測對象。
4、PROBE DATASET:上個數據文件的包含用戶真實評分的版本,以讓學術研究者對評分預測結果進行準確度評測。
(2)MovieLens數據集
電影推薦系統 MovieLens 由 Minnesota 大學開發。MovieLens 電影評分數據集包括了該電影推薦系統中用戶對電影的評分等相關數據,評分值同樣為 1 到 5 的整數,該數據集按數據規模的不同,存在 3 個版本:
·A. MovieLens 10M:規模最大的版本,記錄了 72000 個用戶對 10000 部電影的一千萬條評分及相關數據,總大小為 10M 左右。
·B. MovieLens 1M:中等規模版本,記錄了 6000 個用戶對 4000 部電影的一百萬條評分及相關數據,總大小為 1M 左右。
·C. MovieLens 100K:規模較小的版本,記錄了約 1000 個用戶對近 1700 部電影的十萬條評分及相關數據,總大小超過 100K。
在本文中,由於時間的有限和資源的有限,我們採用離線實驗的方法,並且採用MovieLens數據集10M的版本。這主要是因為,在10M的版本中,MovieLens數據組提供了標籤數據,利用這些標籤數據我們可以省去標籤特徵向量抽取的過程。
3.3 短視頻推薦方法
在確定好要使用的數據後,我們採用Matlab來進行模型驗證。
首先,我們的實驗數據驗證方式是:將視頻數據集劃分為兩部分(90%訓練數據,10%測試數據),通過對於這兩部分數據的劃分,用戶對於視頻的瀏覽記錄也將分為兩部分。對於有些用戶的數據完全在訓練集裡,完全在測試集裡或者在測試集裡數目過於少,這些用戶將被過濾掉。我們的訓練集模擬在特定時間點用戶的過去瀏覽歷史,我們的測試集模擬用戶未來將會感興趣的電影集。視頻推薦算法通過對於訓練集裡用戶瀏覽記錄的學習,得到用戶的Profile,再經過測試集內部全部視頻相似度計算,得到推薦視頻,之後我們將我們產生的推薦視頻與用戶在測試集裡實際數據進行對比,產生結果。
為了在Matlab上完成上述,我們必須分步驟地進行,因為數據量實在巨大(視頻數據條數10681條,瀏覽歷史個數10000054條)分步驟可以很大程度上減輕計算複雜度。我們的實驗分為以下四步驟進行:(1)pre預處理(2)step1完成用戶的profile提取(3)step2對用戶產生推薦結果。
1、pre預處理。首先,因為MovieLens數據格式是他們固有格式的,我們需要把這些數據導入到Matlab中,以便於後續數據處理。我們將MovieLens的原數據三個文件ratings.dat,movies.dat,tags.dat轉換為ratings.mat.movies.mat,tags.mat;接著,我們將tags和movies兩張表進行聯合在一起,產生movies_tags表格,因為我們的標籤是綁定在movie上的;再然後,我們要從電影數據裡面抽取實驗組所用的實驗集,我們通過Matlab的隨機數函數產生1000個視頻id為實驗組視頻id。由於視頻被劃分為了實驗組,那麼用戶的評分數據也就需要將對於對應電影的評分數據納入實驗組中。其餘的視頻以及評分數據均為訓練集。
2、step1完成用戶的profile提取。首先,不是所有的用戶數據都是有用的數據。比如有些用戶的瀏覽數據全部集中在訓練集或者測試集,以及有些用戶的測試集數據數目過少,這些無用用戶數據要全部過濾掉;接著,在有用的用戶數據裡,我們需要從他們的訓練集瀏覽記錄中獲取所觀看電影的標籤,將這些標籤加入用戶的標籤集,並且計算這些標籤的TF-IDF權值。由於這個計算量過於巨大,我們將權值計算函數進行了性能優化,加入哈希算法來提升了它的時間複雜度。圖3-7為我們的權值計算流程圖。
3、step2對用戶產生推薦結果。在這一步中,我們需要將電影的標籤向量和用戶的標籤向量進行餘弦相似度計算,從而得出兩者匹配分值。由於Matlab豐富的數學計算能力,這個模塊很容易實現,之後我們使用簡單的排序算法去計算出用戶的推薦視頻排名。
(責編:王妍(實習)、燕帥)