周立寒 劉亮亮 張再躍 張曉如
(1.江蘇科技大學(xué)計算機學(xué)院 鎮(zhèn)江 212000)(2.上海對外經(jīng)貿(mào)大學(xué)統(tǒng)計與信息學(xué)院 上海 201620)
隨著互聯(lián)網(wǎng)技術(shù)的不斷進步,人們生產(chǎn)、傳播信息的能力大大加強,單是視頻行業(yè)的崛起已帶來爆炸式增長的數(shù)據(jù)。而且根據(jù)我國實際情況,這一趨勢還存在非常大的發(fā)展空間。海量的視頻資源使得用戶無法迅速、準確地從中獲取自己想要的視頻信息,這無形中降低了用戶的滿意度。為解決此類視頻資源過載問題,越來越多的個性化視頻推薦服務(wù)不斷出現(xiàn)[1],各大視頻服務(wù)平臺引入推薦算法這一需求迫在眉睫。個性化推薦算法對用戶歷史的瀏覽與操作記錄進行深入分析,可以為用戶找出符合其預(yù)期的視頻資源,給予用戶一個舒適的網(wǎng)站操作體驗[2]。如今許多視頻服務(wù)平臺均通過推薦算法來對平臺改造,使其滿足個性化需求。例如,國外知名的YouTube 視頻網(wǎng)站主要采用基于用戶和協(xié)同過濾相結(jié)合的混合推薦算法[3],且目前不斷往深度學(xué)習(xí)領(lǐng)域發(fā)展。國內(nèi)比較火的抖音主要采用基于社會網(wǎng)絡(luò)和信息流的推薦[4]。
但是,在現(xiàn)實生活中,傳統(tǒng)協(xié)同過濾算法由于僅考慮用戶對視頻的評分信息,而不考慮用戶其他具體行為和視頻資源特征,導(dǎo)致算法仍存在推薦質(zhì)量低的問題。再者,由于評分矩陣的極度稀疏性,推薦結(jié)果存在較大偏差[5]。不僅如此,傳統(tǒng)推薦算法還存在擴展性和冷啟動等問題。在深入研究相關(guān)算法后,本文提出一種基于用戶偏好和視頻特殊標簽的推薦算法,該算法從用戶行為數(shù)據(jù)以及視頻標簽兩方面來進行考量。接著將權(quán)重因子融入相似度計算公式,加權(quán)計算視頻相似度。
協(xié)同過濾技術(shù)是個性化視頻推薦算法中的核心算法[6],中國有句古話叫“物以類聚,人以群分”則可以很好地解釋協(xié)同過濾[7~8]的算法思維。算法步驟并不復(fù)雜,最基本的是用戶歷史瀏覽與操作數(shù)據(jù)的收集和相似度計算。傳統(tǒng)協(xié)同過濾主要包括兩方面內(nèi)容:基于用戶的協(xié)同過濾和基于項目的協(xié)同過濾,如圖1 所示為基于項目協(xié)同過濾的算法流程。

圖1 基于物品的協(xié)同過濾算法流程
步驟1:構(gòu)建一個基于用戶項目評分的二維矩陣。首先對用戶評分表進行遍歷,有兩種生成矩陣的方式,可以將用戶是否有行為作為一種值的選取,其中,0 代表用戶無操作行為,1 代表用戶有操作行為。其次,可以直接將用戶評分值填入矩陣。
步驟2:物品相似度計算。算法可以采用不同相似度度量公式來計算項目間相似性,主要包括Pearson 相關(guān)系數(shù)或者余弦相似度等。這里主要使用余弦相似度,計算公式如式(1)。
步驟3:經(jīng)過步驟2得到項目相似度后,再依照式(2)計算用戶對項目的偏好程度。其中,S(j,K)是經(jīng)由算法得到的與項目j相似的長度為K 的項目列表。對用戶歷史操作記錄進行遍歷,找到每個歷史行為記錄中與之相近的K個項目作為候選集。
步驟4:按照用戶偏好得分對步驟3 中候選集進行排序,最終得到用戶對視頻偏好最高的N個物品進行推薦。
當(dāng)前,許多學(xué)者對協(xié)同過濾都提出一定的改進措施。文獻[9]在余弦距離公式中引入一個平衡因子,對傳統(tǒng)算法優(yōu)化改造,借此提高產(chǎn)品推薦準確度。文獻[10]等將用戶興趣的權(quán)重與物品屬性進行融合,降低算法的平均絕對誤差。文獻[11]設(shè)計一種用戶偏好模型,利用這個偏好模型來修正用戶對項目的歷史評分,然后再加權(quán)結(jié)合傳統(tǒng)協(xié)同過濾,用于提高推薦召回率。文獻[12]提出將超鏈和圖結(jié)合的算法,首先對slope one 算法進行優(yōu)化,接著搭建一個基于視頻的二部圖,最終提高了推薦的命中率。文獻[13]提出基于圖的推薦算法,結(jié)合電影屬性和用戶偏好關(guān)系,將電影信息進行圖元素的映射,融合圖結(jié)構(gòu)特點來計算電影的相似性,一定程度緩解了數(shù)據(jù)稀疏性和推薦準確度問題。文獻[14]提出構(gòu)建新的初始張量,主要包含標簽屬性、項目及用戶之間的關(guān)聯(lián)關(guān)系。然后對該張量采用N 模型矩陣展開,形成對應(yīng)的三個新矩陣。文獻[15]對長尾視頻進行研究,懲罰熱門視頻,對冷門視頻進行權(quán)值優(yōu)化,將最后得到的權(quán)值納入相似性計算公式,算法最終可以緩解長尾視頻“推薦不易”的問題。文獻[16]在用戶評分數(shù)據(jù)和項目屬性特征上進行綜合考慮,并且在評分較少時,利用項目屬性相似度代替物品相似度,并最終通過兩方加權(quán)的方式,以減少評分稀疏帶來的偏差。然而,無法有效擺脫項目評分稀疏問題仍舊是這個算法的主要弊端之一。
傳統(tǒng)的協(xié)同過濾以用戶和視頻作為分析對象,相似度計算僅依靠單一的評分行為,沒有考慮當(dāng)評分較少時所造成的數(shù)據(jù)稀疏性問題。而用戶在視頻平臺進行一系列顯隱操作時,并不是僅有評分行為,還有一些隱性行為。本文對用戶行為過程產(chǎn)生的數(shù)據(jù)進行研究分析并建模,找到用戶與視頻之間的內(nèi)在關(guān)聯(lián)關(guān)系,以用戶偏好代替評分數(shù)據(jù),下面通過一個算法流程來簡單解釋用戶對視頻的興趣。
1)考慮用戶對視頻的評分,當(dāng)評分系統(tǒng)為5 分制時,將評分為3 設(shè)置臨界值。當(dāng)評分大于等于3時,將用戶對該視頻的喜好度置1,否則置為0,繼續(xù)往下執(zhí)行;
2)判斷用戶對視頻的歷史點擊次數(shù),設(shè)定闕值為2,當(dāng)點擊次數(shù)大于等于2時,喜好度基礎(chǔ)上加1,否則不操作,程序繼續(xù)往下執(zhí)行;
3)判斷用戶對一則視頻的觀看時間比重,設(shè)定一個中間值s(0<s<1),s 代表用戶觀看時長占該視頻總時長的比重,若用戶觀看視頻時間占比大于等于s,則喜好度加1,否則不做操作。
該算法類似于if…else…語句執(zhí)行過程。
視頻是可以看成為非結(jié)構(gòu)化信息數(shù)據(jù),它們之間的相似性需要從多方面進行考慮。因此,考慮到視頻標簽數(shù)據(jù),并將一些用戶行為納入考量。當(dāng)用戶選擇為視頻打上特殊標簽,則該用戶一定程度上對該視頻存在偏好信息。另一方面,這個標簽也可以作為視頻隱含意義,可成為判斷視頻間相似度的條件。
假設(shè)視頻標簽集合為Tag={m1,m2,m3…,ma},其中a為標簽總數(shù),n 為視頻項目數(shù),那么視頻標簽屬性可以用n×a的矩陣表示,矩陣元素的值設(shè)定為1 或0。1 代表該視頻具有此標簽,0 則代表不具有此標簽,由此得出的視頻屬性相似度計算公式為如式(3)。其中,|Nj|代表視頻j所具有的總標簽屬性。
為了從不同方面考量視頻間的相似度,本文從用戶興趣和視頻標簽兩個維度分別計算相似度,引入權(quán)重因子β,將兩種優(yōu)化算法進行融合,通過β對二者結(jié)果進行線性加權(quán),得到加權(quán)后的相似度結(jié)果。公式如式(4),其中β為權(quán)重因子,在0到1中間進行取值,通過實驗得到最優(yōu)解。
輸入:用戶視頻評分矩陣Rm×n,視頻標簽矩陣Tagn×a以及選定鄰居數(shù)K。
輸出:目標用戶的可能選擇點擊的視頻推薦列表。
步驟1:根據(jù)4.1中算法流程得到用戶興趣矩陣,用用戶興趣矩陣代替評分矩陣。
步驟2:使用余弦相似度度量公式計算視頻間相似程度并歸一化得到最終視頻相似度。
步驟3:對視頻標簽進行相似度計算,并歸一化得到T_sim(i,j)。
步驟4:遍歷用戶歷史視頻數(shù)據(jù)集,找到歷史視頻最相似的K 個候選視頻,并根據(jù)式(4)計算用戶對候選集中視頻的預(yù)測得分,得到用戶興趣度。
步驟5:從候選集中選出N個分最高的視頻對用戶進行推薦。
本文采用推薦算法研究領(lǐng)域中比較經(jīng)典的數(shù)據(jù)集MovieLens,采用的版本為ml-latest-small,其中包括用戶,電影(包括標簽信息)及評分數(shù)據(jù),評分標準為1~5 之間,其中評分分值越大,則代表用戶對該則電影就越偏愛。為評估算法性能,將數(shù)據(jù)集按照二八原則進行隨機拆分,將80%的數(shù)據(jù)設(shè)為訓(xùn)練集,其余20%為測試集,用于準確度等評測指標的驗證。
據(jù)表1可知,該數(shù)據(jù)的稀疏程度為98.3%。

表1 數(shù)據(jù)集具體參數(shù)
不同于評分預(yù)測,本文采用TopN 推薦,主要為用戶提供可點擊的視頻推薦列表,更貼近算法實際需求。準確率和召回率是TopN 推薦中常見的評測指標。準確率用于表示訓(xùn)練集上獲得的推薦列表占測試集的比重,式(5)為準確率定義式。召回率表示在樣本正例中被正確預(yù)測的比例,式(6)為召回率定義。
其中,U為用戶集合,Rec(u)是用戶u在測試集上的推薦列表,Test(u)是用戶u 在測試集上已存在的行為數(shù)據(jù)。
實驗中時,設(shè)置輸入的候選列表長度為10,并將鄰居數(shù)輸入設(shè)為15。通過比對不同β值下結(jié)果來測試權(quán)重因子對改進算法推薦精度的影響。從圖2和3不難看出,在將β從0遞增至1的過程中,準確率和召回率隨著β的變大先增大后減小,當(dāng)β取值為0.6時,準確率和召回率分別都達到最大值。

圖2 準確率隨β值的變化

圖3 召回度隨β值的變化
實驗中,將傳統(tǒng)協(xié)同過濾和本文中改進的算法進行分析比對,得到的實驗結(jié)果如表2 所示。不難看出,改進后的算法在準確率和召回率和覆蓋率分別提高了15%和32%。

表2 改進算法與傳統(tǒng)協(xié)同過濾對比結(jié)果
推薦算法一直是數(shù)據(jù)挖掘領(lǐng)域的一大研究熱點,且隨著短視頻的流行,視頻服務(wù)平臺對于推薦算法的呼聲很高。本文對傳統(tǒng)協(xié)同過濾進行改進,將用戶歷史行為信息納入考量,對用戶不同行為進行賦值。以最后結(jié)果代表用戶興趣,并將得到的用戶興趣矩陣取代傳統(tǒng)推薦算法中的用戶評分矩陣。
接著引入視頻標簽特性,對兩個相似度進行線性加權(quán),避免傳統(tǒng)層次分析中用戶自定義權(quán)值。最后實驗結(jié)果表明,本文提出的改進協(xié)同過濾算法能夠取得良好的推薦結(jié)果。