馬帥
(武漢郵電科學(xué)研究院研究生院,湖北武漢 430000)
互聯(lián)網(wǎng)技術(shù)的飛速發(fā)展帶來(lái)了日常在線用戶數(shù)與日俱增的紅利,但隨之而來(lái)的互聯(lián)網(wǎng)信息數(shù)據(jù)過(guò)載問(wèn)題也日益顯著[1-2]。大量復(fù)雜的數(shù)據(jù)導(dǎo)致用戶難以便捷地鎖定與自身匹配的數(shù)字物品,信息的利用率反而呈現(xiàn)負(fù)相關(guān)。在競(jìng)爭(zhēng)激烈的互聯(lián)網(wǎng)領(lǐng)域,推薦算法的研究就成了高效利用海量數(shù)據(jù)和提升用戶體驗(yàn)度的主陣地。當(dāng)前各類推薦算法研究都取得了一定的進(jìn)展[3-5],隨著數(shù)據(jù)變得越來(lái)越復(fù)雜和多樣,越來(lái)越多的非結(jié)構(gòu)化因素需要被考慮到推薦算法中。該文研究了多種推薦算法的改進(jìn)方法[6-9],考慮到當(dāng)前信息復(fù)雜度高和不規(guī)則,因此該文利用物品特征標(biāo)簽,在協(xié)同過(guò)濾算法的基礎(chǔ)上進(jìn)行改進(jìn),提高信息利用率、算法準(zhǔn)確率和召回率。通過(guò)對(duì)比傳統(tǒng)基于物品的協(xié)同過(guò)濾算法和文獻(xiàn)[10]研究的個(gè)性化推薦算法進(jìn)行算法優(yōu)化驗(yàn)證。
目前各類商業(yè)領(lǐng)域中推薦效果較為理想的算法當(dāng)屬協(xié)同過(guò)濾算法,各大應(yīng)用領(lǐng)域也都有符合自身特點(diǎn)的改進(jìn)型協(xié)同過(guò)濾算法[11-13]。協(xié)同過(guò)濾算法的目標(biāo)是基于當(dāng)前用戶的歷史偏好以及其他偏好相似用戶的意見(jiàn)來(lái)為當(dāng)前用戶推薦新物品或者預(yù)測(cè)當(dāng)前用戶對(duì)特定物品的偏好[14-15]。協(xié)同過(guò)濾算法從用戶行為日志中提取用戶與物品之間的行為關(guān)系,通過(guò)算法解析這些關(guān)系得到相似用戶或者相似物品,生成用戶喜好列表,對(duì)該列表進(jìn)行過(guò)濾、去重、排序后,推薦前N個(gè)內(nèi)容給用戶。
基于用戶的協(xié)同過(guò)濾算法和基于物品的協(xié)同過(guò)濾算法是兩種常見(jiàn)的協(xié)同過(guò)濾算法,接下來(lái)將進(jìn)行介紹。
該算法的核心思想:對(duì)于用戶的操作行為,比如不同用戶對(duì)同一物品的評(píng)分行為,采用相似度量方法計(jì)算兩個(gè)用戶之間的相似性,得到一個(gè)相似用戶的集合。對(duì)集合中的用戶進(jìn)行相似度值的排序,篩選出前K個(gè)相似度最高的用戶作為鄰居,在對(duì)自己喜好物品進(jìn)行去重后,將鄰居的喜好物品推薦給用戶,其推薦原理圖如圖1 所示。
圖1 基于用戶的協(xié)同過(guò)濾算法原理圖
時(shí)效性是基于用戶的協(xié)同過(guò)濾算法的一大特點(diǎn),對(duì)短時(shí)間內(nèi)刷新度高的場(chǎng)景可以表現(xiàn)出很好的適應(yīng)性。因?yàn)榛谟脩舻膮f(xié)同過(guò)濾算法是通過(guò)計(jì)算用戶之間的相似度進(jìn)行結(jié)果推薦,所以當(dāng)用戶規(guī)模過(guò)大時(shí),用戶相似度矩陣計(jì)算所產(chǎn)生的計(jì)算成本就會(huì)很高。而用戶規(guī)模過(guò)小則會(huì)導(dǎo)致稀疏性,無(wú)法進(jìn)行有效的相似度計(jì)算?;谟脩舻膮f(xié)同過(guò)濾算法的拓展性與用戶規(guī)模有關(guān)[16]。
該算法的核心思想:基于用戶-物品行為數(shù)據(jù),先計(jì)算出物品之間的相似度,為每一個(gè)有過(guò)操作行為的物品計(jì)算出一個(gè)相似物品的集合。然后合并成當(dāng)前用戶喜好物品相似集合,構(gòu)造出推薦集合。將推薦值降序排列,選取其中TOP-N個(gè)作為推薦結(jié)果。其推薦原理圖如圖2 所示。
圖2 基于物品的協(xié)同過(guò)濾算法原理圖
基于物品的協(xié)同過(guò)濾算法無(wú)需計(jì)算用戶相似度,所以對(duì)于用戶規(guī)模沒(méi)有限制,而且推薦結(jié)果個(gè)性化,可以直接基于用戶喜好程度進(jìn)行推薦,更具有針對(duì)性。因?yàn)樵撍惴ɑ谟脩魝€(gè)人的歷史行為,所以只要用戶對(duì)產(chǎn)品有過(guò)關(guān)聯(lián)數(shù)據(jù),就可以進(jìn)行推薦操作,但是在數(shù)據(jù)缺少的情況下,該算法無(wú)法生成用戶喜好模型,而且當(dāng)前用戶行為信息復(fù)雜且無(wú)規(guī)則,如何將信息進(jìn)行有效利用提升推薦效果成為此算法的局限所在。
該文旨在通過(guò)融合特征標(biāo)簽對(duì)基于物品的協(xié)同過(guò)濾算法加以改進(jìn),來(lái)解決當(dāng)前推薦算法的不足。融合特征標(biāo)簽推薦算法問(wèn)題描述為:用戶集合U={u1,u2,…,un},電影集合P={p1,p2,…,pn},標(biāo)簽集合T={t1,t2,…,tn}以及用戶對(duì)電影評(píng)分集合A={a1,a2,…,an},通過(guò)用戶評(píng)分集合和電影標(biāo)簽集合,構(gòu)建用戶-標(biāo)簽矩陣,也就是標(biāo)簽版用戶喜好模型。然后結(jié)合影片相似度模型,計(jì)算出用戶對(duì)電影預(yù)測(cè)評(píng)分vi,s,降序排列用戶對(duì)影片預(yù)測(cè)評(píng)分集合Rij后得到推薦結(jié)果。
每個(gè)用戶感興趣的電影都不同,同一個(gè)標(biāo)簽對(duì)于不同的用戶而言,有著不一樣的重要性。用戶喜好的電影可以有多個(gè)標(biāo)簽,一個(gè)標(biāo)簽也可以同時(shí)存在于多部電影中。例如一部電影可以有“科幻”“動(dòng)作”“冒險(xiǎn)”等特征標(biāo)簽,用戶u可能對(duì)i部影片感興趣,第i部影片可能擁有g(shù)個(gè)特征標(biāo)簽,相關(guān)的用戶-標(biāo)簽矩陣如表1 所示。
表1 用戶-標(biāo)簽矩陣
因此可以作出這樣的假設(shè):如果用戶行為中關(guān)聯(lián)到的某個(gè)標(biāo)簽的次數(shù)越多,則該用戶對(duì)此類標(biāo)簽的喜好程度越深。用戶喜好模型描述的是用戶對(duì)影片的關(guān)注程度,其值用M(Tg,un)來(lái)表示,根據(jù)假設(shè),該值計(jì)算方式如式(1)所示:
影片相似度模型描述的是兩部影片之間的相似程度。該值越接近1,則說(shuō)明兩部影片之間的相似程度越高。假設(shè)如果一部影片與用戶操作過(guò)的影片相似程度越接近1,則說(shuō)明該影片對(duì)于此用戶存在越高的推薦價(jià)值。因?yàn)橐c實(shí)驗(yàn)數(shù)據(jù)集的格式相匹配,推薦算法選用余弦相似度計(jì)算方式,如式(2)所示:
其中,wn,c是用戶有過(guò)操作行為的影片特征向量,wn,s是需求進(jìn)行相似度計(jì)算的影片特征向量。
進(jìn)行推薦評(píng)分計(jì)算時(shí),因?yàn)橐紤]到用戶興趣變化程度,所以只針對(duì)用戶前x個(gè)操作行為進(jìn)行評(píng)分計(jì)算。文中采用的評(píng)分計(jì)算公式如式(3)所示:
對(duì)于每一位用戶,將得到的影片評(píng)分列表進(jìn)行去重過(guò)濾降序排序后,取TOP-N個(gè)就得到了推薦列表。
融合特征標(biāo)簽的推薦算法流程描述如下所示:
輸入:用戶集合U,電影集合P,電影標(biāo)簽集合T,用戶對(duì)電影評(píng)分集合A。
輸出:用戶對(duì)影片的推薦評(píng)分Vi,s。
1)對(duì)輸入數(shù)據(jù)進(jìn)行初步計(jì)算,得到用戶總數(shù)n,影片總數(shù)m,標(biāo)簽總數(shù)ts和用戶標(biāo)簽總數(shù)等。
2)根據(jù)1)中的數(shù)據(jù)建立用戶-標(biāo)簽矩陣。
3)根據(jù)式(2)建立影片相似度模型。
4)根據(jù)式(3)對(duì)影片進(jìn)行推薦評(píng)分預(yù)測(cè)。
5)對(duì)計(jì)算得到的用戶推薦評(píng)分預(yù)測(cè)進(jìn)行過(guò)濾去重。
6)降序排列Rij生成用戶推薦影片列表。
實(shí)驗(yàn)使用的數(shù)據(jù)集來(lái)自著名的數(shù)據(jù)集網(wǎng)站Movielens,數(shù)據(jù)集包含用戶數(shù)據(jù)、電影數(shù)據(jù)和評(píng)分?jǐn)?shù)據(jù)。用戶數(shù)據(jù)包含用戶ID、性別、年齡、職業(yè)字段。電影數(shù)據(jù)包含電影ID、標(biāo)題及上映年份、電影特征標(biāo)簽。評(píng)分?jǐn)?shù)據(jù)包含用戶ID、電影ID、分值和時(shí)間戳。
本次使用的數(shù)據(jù)集大小為100 kB、1 MB、10 MB,用戶數(shù)量分別有943 個(gè)、6 040 個(gè)、71 567 個(gè)、電影數(shù)量分別有1 682 個(gè)、3 900 個(gè)、10 681 個(gè)、評(píng)價(jià)數(shù)量分別有1 000 條、1 000 209 條、10 000 054 條。實(shí)驗(yàn)選取75%的數(shù)據(jù)作為訓(xùn)練數(shù)據(jù),剩余的25%數(shù)據(jù)則作為測(cè)試數(shù)據(jù)。訓(xùn)練數(shù)據(jù)用于訓(xùn)練預(yù)測(cè)模型,將預(yù)測(cè)模型應(yīng)用到測(cè)試數(shù)據(jù)中,將預(yù)測(cè)的評(píng)分與真實(shí)值進(jìn)行比較,誤差越小,評(píng)分預(yù)測(cè)效果越好,反之越差。
推薦算法設(shè)計(jì)的優(yōu)良需要進(jìn)行對(duì)比,實(shí)驗(yàn)選用三種經(jīng)典推薦算法指標(biāo)來(lái)進(jìn)行對(duì)比評(píng)價(jià):用戶覆蓋率(User-Coverage)、召回率(Recall)、準(zhǔn)確率(Precision)。用戶覆蓋率用來(lái)表示推薦算法能夠進(jìn)行個(gè)性化推薦的用戶占比,該值越接近1,說(shuō)明算法推薦結(jié)果涉及用戶越多,用戶信息利用率越高。準(zhǔn)確率是推薦算法給用戶的推薦列表和用戶實(shí)際選擇的影片占比。召回率是用戶實(shí)際選擇影片和推薦算法給用戶推薦列表交集后,占用戶實(shí)際選擇的影片比例。三個(gè)指標(biāo)公式分別如下所示:
為了驗(yàn)證和分析該文算法的推薦效果,將選取另外兩種推薦算法與其進(jìn)行對(duì)照實(shí)驗(yàn):
1)文獻(xiàn)[10]中將共同評(píng)價(jià)兩部電影的用戶數(shù)進(jìn)行縮放,并以此在相似度計(jì)算中構(gòu)建了同一電影不同用戶的評(píng)分模型完成結(jié)果推薦,在文中將其視為(Common Evaluate Movie of User,CEMU)。
2)基于物品的協(xié)同過(guò)濾算法(IMCF)。
在進(jìn)行對(duì)比實(shí)驗(yàn)中,將以數(shù)據(jù)集長(zhǎng)度m、最終推薦結(jié)果長(zhǎng)度n為兩個(gè)關(guān)鍵變量進(jìn)行對(duì)比分析。
3.3.1 用戶覆蓋率對(duì)比
該次實(shí)驗(yàn)m的大小為1 MB,n=20。在構(gòu)建用戶-標(biāo)簽矩陣后,通過(guò)算法得到用戶評(píng)分預(yù)測(cè),再進(jìn)行過(guò)濾去重,得到了能夠獲得推薦列表的用戶比例,實(shí)驗(yàn)結(jié)果如表2 所示。
表2 用戶覆蓋率
通過(guò)表2 內(nèi)容可知,傳統(tǒng)的基于物品的協(xié)同過(guò)濾算法的用戶覆蓋率較低,接近40%的用戶未得到有效的推薦結(jié)果,對(duì)用戶行為數(shù)據(jù)的信息利用率低。在相似度算法中加入同一電影不同用戶的評(píng)分模型后,用戶覆蓋率得到了顯著的提高,達(dá)到81.38%。而該文的算法在用戶覆蓋率方面達(dá)到86.52%,用戶覆蓋率的提高說(shuō)明在算法中融入了標(biāo)簽后,可以為更多用戶構(gòu)建出符合用戶側(cè)的喜好模型,使得絕大多數(shù)用戶都可以得到與自身行為喜好相關(guān)的推薦結(jié)果;證明了物品特征標(biāo)簽中蘊(yùn)含著大量且有效的信息,可以幫助推薦算法解決數(shù)據(jù)稀疏的不足,挖掘分析利用這些信息可以大幅的提高互聯(lián)網(wǎng)應(yīng)用和用戶使用的效率。
3.3.2 探究不同數(shù)據(jù)集長(zhǎng)度下的實(shí)驗(yàn)結(jié)果
該實(shí)驗(yàn)中設(shè)n=20,實(shí)驗(yàn)結(jié)果如圖3 和圖4 所示。
圖3 m取不同值時(shí)的準(zhǔn)確率
圖4 m取不同值時(shí)的召回率
由圖3 可知,三種算法準(zhǔn)確率隨著數(shù)據(jù)集量增加而增加,在數(shù)據(jù)集為10 MB 時(shí)三種算法準(zhǔn)確率達(dá)到最高。由圖4 可知,在三種算法中,融合標(biāo)簽特征算法的召回率最高,而且三種算法的召回率均隨著數(shù)據(jù)集量的增加而提高。融合特征標(biāo)簽后的推薦算法在準(zhǔn)確率和召回率方面均優(yōu)于兩種對(duì)比算法,特征標(biāo)簽可以在一定程度上解決用戶行為信息過(guò)少而無(wú)法建立符合用戶行為喜好的特征模型。
3.3.3 探究不同推薦列表長(zhǎng)度下的實(shí)驗(yàn)結(jié)果
在實(shí)驗(yàn)3.3.2 的實(shí)驗(yàn)結(jié)果之上,實(shí)驗(yàn)將m取固定值為1 MB,實(shí)驗(yàn)結(jié)果如圖5 和圖6 所示。
由圖5 可知,隨著推薦列表長(zhǎng)度的不斷增加,算法的準(zhǔn)確率不斷提升,并在推薦列表長(zhǎng)度為20 時(shí)達(dá)到最高點(diǎn),之后略有降低。由圖6 可知,算法的召回率隨著推薦列表長(zhǎng)度的增加而提高,在推薦列表長(zhǎng)度為20 后,增速逐漸平緩。
圖5 n取不同值時(shí)的準(zhǔn)確率
圖6 n取不同值時(shí)的召回率
實(shí)驗(yàn)結(jié)果表明,融合標(biāo)簽特征的推薦算法在準(zhǔn)確率和召回率方面有一定提升,且算法的準(zhǔn)確率和召回率分別在n=20 和n=25 時(shí)最佳。綜合以上實(shí)驗(yàn)數(shù)據(jù)分析,融合了特征標(biāo)簽的推薦算法可以深入地挖掘用戶的行為信息,得到更加精準(zhǔn)的用戶行為模型,并且在設(shè)定適合的推薦列表長(zhǎng)度后可以提高推薦效果,能夠有效提高算法對(duì)信息的利用率和準(zhǔn)確性。
該文提出了一種結(jié)合物品特征標(biāo)簽的推薦算法,在算法中構(gòu)建用戶-特征標(biāo)簽矩陣來(lái)解決用戶行為無(wú)規(guī)律,行為信息數(shù)據(jù)不規(guī)則等問(wèn)題。經(jīng)過(guò)實(shí)驗(yàn)分析表明,同傳統(tǒng)的推薦算法和另外一種個(gè)性化推薦算法相比,印證了特征標(biāo)簽中包含著豐富且準(zhǔn)確的用戶喜好信息,利用此信息搭建完整精準(zhǔn)的用戶喜好模型,可以提升推薦算法用戶覆蓋率,并使算法的準(zhǔn)確率和召回率都有所提高。接下來(lái)的工作中將針對(duì)該文算法中面對(duì)推薦列表長(zhǎng)度過(guò)長(zhǎng)而導(dǎo)致推薦結(jié)果準(zhǔn)確率下降的問(wèn)題進(jìn)行優(yōu)化解決,將考慮對(duì)相似度算法進(jìn)行權(quán)重的重新分配,探索出更加穩(wěn)定和高效真實(shí)的推薦算法。