周立寒 劉亮亮 張?jiān)佘S 張曉如
(1.江蘇科技大學(xué)計(jì)算機(jī)學(xué)院 鎮(zhèn)江 212000)(2.上海對(duì)外經(jīng)貿(mào)大學(xué)統(tǒng)計(jì)與信息學(xué)院 上海 201620)
隨著互聯(lián)網(wǎng)技術(shù)的不斷進(jìn)步,人們生產(chǎn)、傳播信息的能力大大加強(qiáng),單是視頻行業(yè)的崛起已帶來(lái)爆炸式增長(zhǎng)的數(shù)據(jù)。而且根據(jù)我國(guó)實(shí)際情況,這一趨勢(shì)還存在非常大的發(fā)展空間。海量的視頻資源使得用戶(hù)無(wú)法迅速、準(zhǔn)確地從中獲取自己想要的視頻信息,這無(wú)形中降低了用戶(hù)的滿(mǎn)意度。為解決此類(lèi)視頻資源過(guò)載問(wèn)題,越來(lái)越多的個(gè)性化視頻推薦服務(wù)不斷出現(xiàn)[1],各大視頻服務(wù)平臺(tái)引入推薦算法這一需求迫在眉睫。個(gè)性化推薦算法對(duì)用戶(hù)歷史的瀏覽與操作記錄進(jìn)行深入分析,可以為用戶(hù)找出符合其預(yù)期的視頻資源,給予用戶(hù)一個(gè)舒適的網(wǎng)站操作體驗(yàn)[2]。如今許多視頻服務(wù)平臺(tái)均通過(guò)推薦算法來(lái)對(duì)平臺(tái)改造,使其滿(mǎn)足個(gè)性化需求。例如,國(guó)外知名的YouTube 視頻網(wǎng)站主要采用基于用戶(hù)和協(xié)同過(guò)濾相結(jié)合的混合推薦算法[3],且目前不斷往深度學(xué)習(xí)領(lǐng)域發(fā)展。國(guó)內(nèi)比較火的抖音主要采用基于社會(huì)網(wǎng)絡(luò)和信息流的推薦[4]。
但是,在現(xiàn)實(shí)生活中,傳統(tǒng)協(xié)同過(guò)濾算法由于僅考慮用戶(hù)對(duì)視頻的評(píng)分信息,而不考慮用戶(hù)其他具體行為和視頻資源特征,導(dǎo)致算法仍存在推薦質(zhì)量低的問(wèn)題。再者,由于評(píng)分矩陣的極度稀疏性,推薦結(jié)果存在較大偏差[5]。不僅如此,傳統(tǒng)推薦算法還存在擴(kuò)展性和冷啟動(dòng)等問(wèn)題。在深入研究相關(guān)算法后,本文提出一種基于用戶(hù)偏好和視頻特殊標(biāo)簽的推薦算法,該算法從用戶(hù)行為數(shù)據(jù)以及視頻標(biāo)簽兩方面來(lái)進(jìn)行考量。接著將權(quán)重因子融入相似度計(jì)算公式,加權(quán)計(jì)算視頻相似度。
協(xié)同過(guò)濾技術(shù)是個(gè)性化視頻推薦算法中的核心算法[6],中國(guó)有句古話(huà)叫“物以類(lèi)聚,人以群分”則可以很好地解釋協(xié)同過(guò)濾[7~8]的算法思維。算法步驟并不復(fù)雜,最基本的是用戶(hù)歷史瀏覽與操作數(shù)據(jù)的收集和相似度計(jì)算。傳統(tǒng)協(xié)同過(guò)濾主要包括兩方面內(nèi)容:基于用戶(hù)的協(xié)同過(guò)濾和基于項(xiàng)目的協(xié)同過(guò)濾,如圖1 所示為基于項(xiàng)目協(xié)同過(guò)濾的算法流程。
圖1 基于物品的協(xié)同過(guò)濾算法流程
步驟1:構(gòu)建一個(gè)基于用戶(hù)項(xiàng)目評(píng)分的二維矩陣。首先對(duì)用戶(hù)評(píng)分表進(jìn)行遍歷,有兩種生成矩陣的方式,可以將用戶(hù)是否有行為作為一種值的選取,其中,0 代表用戶(hù)無(wú)操作行為,1 代表用戶(hù)有操作行為。其次,可以直接將用戶(hù)評(píng)分值填入矩陣。
步驟2:物品相似度計(jì)算。算法可以采用不同相似度度量公式來(lái)計(jì)算項(xiàng)目間相似性,主要包括Pearson 相關(guān)系數(shù)或者余弦相似度等。這里主要使用余弦相似度,計(jì)算公式如式(1)。
步驟3:經(jīng)過(guò)步驟2得到項(xiàng)目相似度后,再依照式(2)計(jì)算用戶(hù)對(duì)項(xiàng)目的偏好程度。其中,S(j,K)是經(jīng)由算法得到的與項(xiàng)目j相似的長(zhǎng)度為K 的項(xiàng)目列表。對(duì)用戶(hù)歷史操作記錄進(jìn)行遍歷,找到每個(gè)歷史行為記錄中與之相近的K個(gè)項(xiàng)目作為候選集。
步驟4:按照用戶(hù)偏好得分對(duì)步驟3 中候選集進(jìn)行排序,最終得到用戶(hù)對(duì)視頻偏好最高的N個(gè)物品進(jìn)行推薦。
當(dāng)前,許多學(xué)者對(duì)協(xié)同過(guò)濾都提出一定的改進(jìn)措施。文獻(xiàn)[9]在余弦距離公式中引入一個(gè)平衡因子,對(duì)傳統(tǒng)算法優(yōu)化改造,借此提高產(chǎn)品推薦準(zhǔn)確度。文獻(xiàn)[10]等將用戶(hù)興趣的權(quán)重與物品屬性進(jìn)行融合,降低算法的平均絕對(duì)誤差。文獻(xiàn)[11]設(shè)計(jì)一種用戶(hù)偏好模型,利用這個(gè)偏好模型來(lái)修正用戶(hù)對(duì)項(xiàng)目的歷史評(píng)分,然后再加權(quán)結(jié)合傳統(tǒng)協(xié)同過(guò)濾,用于提高推薦召回率。文獻(xiàn)[12]提出將超鏈和圖結(jié)合的算法,首先對(duì)slope one 算法進(jìn)行優(yōu)化,接著搭建一個(gè)基于視頻的二部圖,最終提高了推薦的命中率。文獻(xiàn)[13]提出基于圖的推薦算法,結(jié)合電影屬性和用戶(hù)偏好關(guān)系,將電影信息進(jìn)行圖元素的映射,融合圖結(jié)構(gòu)特點(diǎn)來(lái)計(jì)算電影的相似性,一定程度緩解了數(shù)據(jù)稀疏性和推薦準(zhǔn)確度問(wèn)題。文獻(xiàn)[14]提出構(gòu)建新的初始張量,主要包含標(biāo)簽屬性、項(xiàng)目及用戶(hù)之間的關(guān)聯(lián)關(guān)系。然后對(duì)該張量采用N 模型矩陣展開(kāi),形成對(duì)應(yīng)的三個(gè)新矩陣。文獻(xiàn)[15]對(duì)長(zhǎng)尾視頻進(jìn)行研究,懲罰熱門(mén)視頻,對(duì)冷門(mén)視頻進(jìn)行權(quán)值優(yōu)化,將最后得到的權(quán)值納入相似性計(jì)算公式,算法最終可以緩解長(zhǎng)尾視頻“推薦不易”的問(wèn)題。文獻(xiàn)[16]在用戶(hù)評(píng)分?jǐn)?shù)據(jù)和項(xiàng)目屬性特征上進(jìn)行綜合考慮,并且在評(píng)分較少時(shí),利用項(xiàng)目屬性相似度代替物品相似度,并最終通過(guò)兩方加權(quán)的方式,以減少評(píng)分稀疏帶來(lái)的偏差。然而,無(wú)法有效擺脫項(xiàng)目評(píng)分稀疏問(wèn)題仍舊是這個(gè)算法的主要弊端之一。
傳統(tǒng)的協(xié)同過(guò)濾以用戶(hù)和視頻作為分析對(duì)象,相似度計(jì)算僅依靠單一的評(píng)分行為,沒(méi)有考慮當(dāng)評(píng)分較少時(shí)所造成的數(shù)據(jù)稀疏性問(wèn)題。而用戶(hù)在視頻平臺(tái)進(jìn)行一系列顯隱操作時(shí),并不是僅有評(píng)分行為,還有一些隱性行為。本文對(duì)用戶(hù)行為過(guò)程產(chǎn)生的數(shù)據(jù)進(jìn)行研究分析并建模,找到用戶(hù)與視頻之間的內(nèi)在關(guān)聯(lián)關(guān)系,以用戶(hù)偏好代替評(píng)分?jǐn)?shù)據(jù),下面通過(guò)一個(gè)算法流程來(lái)簡(jiǎn)單解釋用戶(hù)對(duì)視頻的興趣。
1)考慮用戶(hù)對(duì)視頻的評(píng)分,當(dāng)評(píng)分系統(tǒng)為5 分制時(shí),將評(píng)分為3 設(shè)置臨界值。當(dāng)評(píng)分大于等于3時(shí),將用戶(hù)對(duì)該視頻的喜好度置1,否則置為0,繼續(xù)往下執(zhí)行;
2)判斷用戶(hù)對(duì)視頻的歷史點(diǎn)擊次數(shù),設(shè)定闕值為2,當(dāng)點(diǎn)擊次數(shù)大于等于2時(shí),喜好度基礎(chǔ)上加1,否則不操作,程序繼續(xù)往下執(zhí)行;
3)判斷用戶(hù)對(duì)一則視頻的觀看時(shí)間比重,設(shè)定一個(gè)中間值s(0<s<1),s 代表用戶(hù)觀看時(shí)長(zhǎng)占該視頻總時(shí)長(zhǎng)的比重,若用戶(hù)觀看視頻時(shí)間占比大于等于s,則喜好度加1,否則不做操作。
該算法類(lèi)似于if…else…語(yǔ)句執(zhí)行過(guò)程。
視頻是可以看成為非結(jié)構(gòu)化信息數(shù)據(jù),它們之間的相似性需要從多方面進(jìn)行考慮。因此,考慮到視頻標(biāo)簽數(shù)據(jù),并將一些用戶(hù)行為納入考量。當(dāng)用戶(hù)選擇為視頻打上特殊標(biāo)簽,則該用戶(hù)一定程度上對(duì)該視頻存在偏好信息。另一方面,這個(gè)標(biāo)簽也可以作為視頻隱含意義,可成為判斷視頻間相似度的條件。
假設(shè)視頻標(biāo)簽集合為T(mén)ag={m1,m2,m3…,ma},其中a為標(biāo)簽總數(shù),n 為視頻項(xiàng)目數(shù),那么視頻標(biāo)簽屬性可以用n×a的矩陣表示,矩陣元素的值設(shè)定為1 或0。1 代表該視頻具有此標(biāo)簽,0 則代表不具有此標(biāo)簽,由此得出的視頻屬性相似度計(jì)算公式為如式(3)。其中,|Nj|代表視頻j所具有的總標(biāo)簽屬性。
為了從不同方面考量視頻間的相似度,本文從用戶(hù)興趣和視頻標(biāo)簽兩個(gè)維度分別計(jì)算相似度,引入權(quán)重因子β,將兩種優(yōu)化算法進(jìn)行融合,通過(guò)β對(duì)二者結(jié)果進(jìn)行線(xiàn)性加權(quán),得到加權(quán)后的相似度結(jié)果。公式如式(4),其中β為權(quán)重因子,在0到1中間進(jìn)行取值,通過(guò)實(shí)驗(yàn)得到最優(yōu)解。
輸入:用戶(hù)視頻評(píng)分矩陣Rm×n,視頻標(biāo)簽矩陣Tagn×a以及選定鄰居數(shù)K。
輸出:目標(biāo)用戶(hù)的可能選擇點(diǎn)擊的視頻推薦列表。
步驟1:根據(jù)4.1中算法流程得到用戶(hù)興趣矩陣,用用戶(hù)興趣矩陣代替評(píng)分矩陣。
步驟2:使用余弦相似度度量公式計(jì)算視頻間相似程度并歸一化得到最終視頻相似度。
步驟3:對(duì)視頻標(biāo)簽進(jìn)行相似度計(jì)算,并歸一化得到T_sim(i,j)。
步驟4:遍歷用戶(hù)歷史視頻數(shù)據(jù)集,找到歷史視頻最相似的K 個(gè)候選視頻,并根據(jù)式(4)計(jì)算用戶(hù)對(duì)候選集中視頻的預(yù)測(cè)得分,得到用戶(hù)興趣度。
步驟5:從候選集中選出N個(gè)分最高的視頻對(duì)用戶(hù)進(jìn)行推薦。
本文采用推薦算法研究領(lǐng)域中比較經(jīng)典的數(shù)據(jù)集MovieLens,采用的版本為ml-latest-small,其中包括用戶(hù),電影(包括標(biāo)簽信息)及評(píng)分?jǐn)?shù)據(jù),評(píng)分標(biāo)準(zhǔn)為1~5 之間,其中評(píng)分分值越大,則代表用戶(hù)對(duì)該則電影就越偏愛(ài)。為評(píng)估算法性能,將數(shù)據(jù)集按照二八原則進(jìn)行隨機(jī)拆分,將80%的數(shù)據(jù)設(shè)為訓(xùn)練集,其余20%為測(cè)試集,用于準(zhǔn)確度等評(píng)測(cè)指標(biāo)的驗(yàn)證。
據(jù)表1可知,該數(shù)據(jù)的稀疏程度為98.3%。
表1 數(shù)據(jù)集具體參數(shù)
不同于評(píng)分預(yù)測(cè),本文采用TopN 推薦,主要為用戶(hù)提供可點(diǎn)擊的視頻推薦列表,更貼近算法實(shí)際需求。準(zhǔn)確率和召回率是TopN 推薦中常見(jiàn)的評(píng)測(cè)指標(biāo)。準(zhǔn)確率用于表示訓(xùn)練集上獲得的推薦列表占測(cè)試集的比重,式(5)為準(zhǔn)確率定義式。召回率表示在樣本正例中被正確預(yù)測(cè)的比例,式(6)為召回率定義。
其中,U為用戶(hù)集合,Rec(u)是用戶(hù)u在測(cè)試集上的推薦列表,Test(u)是用戶(hù)u 在測(cè)試集上已存在的行為數(shù)據(jù)。
實(shí)驗(yàn)中時(shí),設(shè)置輸入的候選列表長(zhǎng)度為10,并將鄰居數(shù)輸入設(shè)為15。通過(guò)比對(duì)不同β值下結(jié)果來(lái)測(cè)試權(quán)重因子對(duì)改進(jìn)算法推薦精度的影響。從圖2和3不難看出,在將β從0遞增至1的過(guò)程中,準(zhǔn)確率和召回率隨著β的變大先增大后減小,當(dāng)β取值為0.6時(shí),準(zhǔn)確率和召回率分別都達(dá)到最大值。
圖2 準(zhǔn)確率隨β值的變化
圖3 召回度隨β值的變化
實(shí)驗(yàn)中,將傳統(tǒng)協(xié)同過(guò)濾和本文中改進(jìn)的算法進(jìn)行分析比對(duì),得到的實(shí)驗(yàn)結(jié)果如表2 所示。不難看出,改進(jìn)后的算法在準(zhǔn)確率和召回率和覆蓋率分別提高了15%和32%。
表2 改進(jìn)算法與傳統(tǒng)協(xié)同過(guò)濾對(duì)比結(jié)果
推薦算法一直是數(shù)據(jù)挖掘領(lǐng)域的一大研究熱點(diǎn),且隨著短視頻的流行,視頻服務(wù)平臺(tái)對(duì)于推薦算法的呼聲很高。本文對(duì)傳統(tǒng)協(xié)同過(guò)濾進(jìn)行改進(jìn),將用戶(hù)歷史行為信息納入考量,對(duì)用戶(hù)不同行為進(jìn)行賦值。以最后結(jié)果代表用戶(hù)興趣,并將得到的用戶(hù)興趣矩陣取代傳統(tǒng)推薦算法中的用戶(hù)評(píng)分矩陣。
接著引入視頻標(biāo)簽特性,對(duì)兩個(gè)相似度進(jìn)行線(xiàn)性加權(quán),避免傳統(tǒng)層次分析中用戶(hù)自定義權(quán)值。最后實(shí)驗(yàn)結(jié)果表明,本文提出的改進(jìn)協(xié)同過(guò)濾算法能夠取得良好的推薦結(jié)果。