王曉耘 趙 菁 徐作寧(杭州電子科技大學管理科學與工程,浙江 杭州 310018)
以用戶原創內容為標志的Web2.0的出現和流行,用戶角色從被動的消費者轉為積極的內容生產者。CiteUlike、YouTube、Delicious、Flickr等社會化標注系統不斷涌現,吸引了大量用戶興趣。標簽作為社會化標注系統的載體,成為Web2.0時代下一種重要的信息組織形式,越來越多學者對標簽展開研究。將標簽與協同過濾等個性化推薦技術結合起來,大大提高了推薦效果,同時在一定程度上克服了推薦系統冷啟動問題。
社會化標注系統是Web2.0環境下的典型應用,用戶采用標簽的方式對自身感興趣的網絡資源進行無約束標注,且所有用戶標注互為可見。目前基于標簽的用戶興趣研究中,主要基于兩種方式:
Li L等[1]對標簽下的用戶和字眼聚類,采用關聯規則算法尋找頻繁共現的標簽,最后建立基于標簽主題的用戶群與資源群;Kim H N等[2]將標簽作為用戶偏好指標,挖掘出與用戶相關及不相關的主題,依據其他相似用戶的協同拓展用戶個人興趣模型;Ferrara F等[3]以單一用戶標簽集提取該用戶興趣主題并產生個性化推薦,該方法可根據用戶特定興趣主題自適應過濾并合并用戶反饋;夏寧霞等[4]基于自然法和共現法思想,在用戶興趣模型中引入單個標簽和標簽對,更全面、準確反映用戶興趣偏好;Tao Z等[5]借鑒數據場理論,通過計算每個標簽潛在權值,將權值最大的標簽作為代表標簽,將以它為中心、權值遞減的其他標簽劃為一類,進行用戶興趣主題提取。
Wu B X等[6]利用LDA方法提取用戶興趣主題,利用多視點用戶相似性方法計算興趣主題、資源及標簽相似性,建立相似形圖,最后挖掘該圖實現基于用戶興趣的推薦;易明等[7]構建了網站層次和用戶層次的社會化標簽網絡,基于該網絡進行社團結構分析,得到社會化標簽文檔和用戶標簽網絡,計算兩者相似度后建立細粒度用戶興趣模型;Yao D等[8]采用CPM識別出用戶興趣并劃分興趣主題,構建資源網絡并計算各節點權重,基于此選出每個主題下的權威用戶,將權威用戶經常使用的標簽推薦給普通用戶,該方法提高了用戶標注的質量。
以上綜述可見大量學者利用標簽挖掘用戶興趣時,主要從標簽數量和結構上入手,但在社會化標注系統中,標簽的不可控性導致社會化標簽存在語義模糊及數據稀疏性等問題,如果直接使用標簽構建用戶興趣,精確度將大打折扣。此外,標簽具有隨時間變化的動態性,用戶興趣也具有動態性及漂移性,利用主題的方法雖然解決了標簽雜亂與冗余問題,但這種靜態建模沒有刻畫出用戶興趣的動態性。因此,將標簽主題特征與興趣漂移性融合,建立更為準確的用戶興趣模型,對實現高效的個性化推薦具有極大的實踐意義。
基于社會化標簽的個性化推薦研究多基于應用層面,以設計算法為主。Ma T等[9]在協同過濾技術基礎上融合用戶標簽和社會關系,反映用戶動態變化的個性化需求;Kim H N等[10]將社會化標簽融入到適用于社區推薦的技術中,根據社區內其他用戶的標注向目標用戶進行推薦;馮勇等[11]分析用戶間信任關系,對協同過濾算法加以改進,有效提高推薦準確性;孫甲申等[12]通過在主題模型中引入標簽粒度,建立新模型解決主題與文檔不一致及部分標簽與文檔內容無關等問題。目前這些方法都在一定程度上提高了推薦準確率,但各方法都有待深入研究。易明等[13]在分析各類方法優缺點后,提出組合推薦的思想,結合基于社會化網絡的內容推薦與協同過濾推薦,構建了個性化知識推薦框架;劉健等[14]利用詞匯鏈的方法構建資源描述向量,并考慮用戶動態變化,利用動態鄰居重組實現個性化推薦;魏建良等[15]提出主流標簽的概念,通過分析標簽平均標注率確定主流標簽數量,構建用戶協同模型,同時結合用戶興趣度改進模型。
本文在相關文獻研究基礎上,嘗試在興趣模型構建時融入用戶社會關系網絡,并提出興趣模型更新策略;然后結合協同過濾產生個性化推薦。該方法緩解了標簽語義模糊等問題,并考慮到用戶興趣漂移性,克服了傳統方法的局限性,能提高推薦準確率。
社會化標注系統中的用戶關系,是指單個用戶在社會化標注系統的使用過程中,因自身需求形成了各種活動(如關注、標注、瀏覽等),隨著用戶數量增多,具有相似偏好、行為的單個用戶聚集成群體,通過用戶關系網絡分析可進行群體用戶的偏好與行為分析。用戶關系形成過程如圖1所示。

圖1 和戶關系形成過程圖
Liu K等[16]在社會化標注建模中引入了用戶社會關系,假設用戶間的信任關系是對等的,且信任級別呈平均分布,然后將用戶間邊權重定義為一種信任級別的函數,采用隨機游走的相似度函數計算出用戶相似度,最后產生個性化推薦。實驗結果表明這種基于用戶社會關系的個性化標簽推薦算法效率有所提升。劉等人假設用戶信任關系是對稱的,將用戶社會關系構建為一個無向圖網絡,邊權重為用戶信任級別函數得出的值。但在現實中,用戶在互聯網中添加或關注好友時,形成的好友關系可以是單向的,也可以是雙向的,因此本文將用戶社會關系構建為一個有向圖,將其應用到標簽主題模型進行聚類[17]。
本文構建的用戶加權LDA標簽主題模型通過提取標簽主題刻畫用戶興趣,具體思想如圖2所示,建模分為3個過程:用戶社會關系建模、“用戶—標簽”關系矩陣構建,LDA建模分析。
第一階段,用戶社會關系建模及鏈接分析,獲取用戶影響度分數。
基于社會化標注系統中用戶關系的特點,在劉[16]模型基礎上,本文構建出一個有向圖模型,若用戶ui與其他用戶uj之間建立了某種鏈接關系,則在用戶ui與uj間添加一條指向uj的有向邊,若兩個用戶間存在互相鏈接關系,則用?將兩個用戶連接起來。將用戶社會關系加入到“用戶—標簽”二元模型中,用虛線連接用戶與標簽,虛線權重表示用戶標注該標簽頻次。

圖2 建模思路
通過鏈接分析獲取用戶影響度分數。若一個用戶被其他影響度高的用戶建立鏈接,則該用戶也具備較高的影響度。每一條鏈接邊都視作一個互增強關系,并且用戶影響度可以通過所有的鏈接邊傳播,采用隨機游走算法計算用戶影響度。
首先設定G=(U,E,W)為用戶的社會關系圖,其中U={u1,u2,…,uU}為用戶集合,E?U*U為鏈接關系集合,W為U鄰接矩陣,定義公式(1),表示對于兩個頂點ui、uj,若存在1條ui→uj的邊,則wi,j=1,否則為0。
(1)
對于已建立的用戶社會關系圖G,根據鄰接矩陣W建立轉移概率矩陣P。定義公式(2)表示節點ui跳轉到uj的轉移概率。圖3展示了用戶關系鏈接分析過程。
(2)

圖3 用戶聯系鏈接分析

(3)

τ(n)=ζPτ(n-1)+(1-ζ)π
(4)
τ(∞)=(1-ζ)(1-ζP)-1π
(5)
本文設定參數ζ值為0.85,π服從均勻分布,迭代終止條件為:用戶影響度向量τ(n+1)與τ(n)符合=τ(n+1)-τ(n)=2/=τ(n)=2≤ψ,其中ψ指預先設定的閾值,取0.001。
第二階段,基于用戶加權的“用戶—標簽”關系矩陣構建。
假定U={u1,u2,…,um}為社會化標注系統中m個用戶集合,R={r1,r2,…,rk}為k個被標注的資源集合,T={t1,t2,…,tn}為用戶標注的n個標簽集合,u∈U,r∈R,t∈T,a=(u,r,t)∈A表示一次標注行為,則社會化標注行為可定義為四元組P=(U,T,R,A)。根據系統中用戶標注行為可分解統計出用戶—標簽二元關系矩陣Y。
根據Y,將每一個用戶的標注行為表示為1個文本文檔,將其轉換為向量形式:
YT(u)=[t1,y(t1,u);t2,y(t2,u)…;ti,y(ti,u)…tT,y(tT,u)]
y(ti,u)表示為用戶u標注過標簽ti的次數。設用戶u的影響度分數為τu,則基于標注行為的用戶加權表示形式為:
g_YT(u)=[t1,gy(t1,u);t2,gy(t2,u)…;ti,gy(ti,u)…tT,gy(tT,u)]
gy(ti,u)表示標簽ti在用戶u中的加權標注頻次??捎晒?6)計算得出。
(6)
由于上文基于隨機游走的用戶影響度排序以均勻分布為初始分數,在迭代學習過后各節點的影響度分數較小,若直接將其加權到用戶標注行為上,則無法保證加權后的用戶標注頻次為整數且總出現頻次降低。因此在不改變影響度分數權重比例的情況下,將影響度分數最小值對每個用戶的影響度分數進行定制,定制后的用戶影響度分數與標簽頻次值加權取整,這樣能提高高影響用戶低頻次標簽在主題分配上的能力,降低低影響用戶高頻次標簽在主題表達上的占比。
將“加權的用戶—標簽語料庫”導入R中進行LDA建模處理時,需轉換成矩陣格式,如圖4所示。
第三階段:LDA建模分析。
根據上述加權的用戶—標簽矩陣進行LDA潛在語義主題建模,如圖5所示。

圖5 融合用戶加權的標簽LDA模型
采用吉布斯采樣算法迭代學習出用戶標簽的潛在主題,吉布斯采樣公式如公式(7)所示。
(7)

根據獲取到的用戶標簽主題及主題概率分布,將用戶興趣模型抽象為若干主題分量,且每個主題由若干標簽來描述。用戶興趣模型分為兩層:第一層興趣主題層——由LDA模型迭代學習出的標簽語義主題及其權重構成;第二層特征標簽層——由相關語義主題下的標簽及其權重構成,如圖6所示。

圖6 用戶興趣模型簡化
定義用戶多興趣模型由五元組表示:U={Z,T,W,F,P},其中Z為用戶興趣主題集合;T為各個興趣主題下對應的標簽集合;W為主題下各標簽權值p(ti|zi=n);F為各標簽遺忘因子,更新用戶興趣變化;P指用戶對興趣主題感興趣程度,即偏好程度p(zi=n|ui)。
(8)
式中,F(ti,j)表示興趣模型中第i個主題Topici下第j個標簽的遺忘因子;cur代表當前日期;tagged為標簽最近被標注的日期;hl指用戶興趣半衰期(由大量數據訓練得到)。
本文通過調整用戶興趣主題及特征標簽權值來反映用戶興趣變化,實現興趣模型更新。如圖7所示,模型更新流程如下:
2)針對用戶新添加標簽情況,分以下3種情形對各主題與標簽權重值重新調整:
a)用戶新添加標簽tα可歸于興趣模型原來主題中,且該主題已包含該標簽,則重新計算標簽tα權重wi,j及該標簽所在主題權重wi,同時將tα的遺忘因子中tagged日期改為當前標注日期;
b)用戶新添加標簽tα可歸于興趣模型原來主題中,當該主題沒有標簽tα,則將該標簽加入主題模型中,計算tα遺忘因子,將tagged日期改為當前標注日期,重新計算tα所在主題權重;
c)用戶新添加標簽tα不能歸于興趣模型原來主題中,則將tα作為新主題加入主題模型中,計算tα的遺忘因子,將tagged日期改為當前標注日期,tα以權重作為新主題權重。

圖7 用戶興趣模型動態更新流程圖
3)刪減舊標簽:對用戶興趣模型中各主題下的所有標簽按權重值降序排序,設定權重閾值δ,將小于δ的標簽刪減并對各主題權重重新調整。
4)刪減舊主題:對用戶興趣模型中各主題按權重降序排序,設定主題權重閾值ξ,刪減小于ξ的主題。
由圖6可以看出,隨著砂粒含量的增大,砂質黃土的黏聚力減小,砂粒含量從30%增長至45%,黏聚力從6.08減至3.28,降幅為46%。曲線形態表現為先緩后陡,即當砂粒含量小于35%時黏聚力隨砂粒含量的增加緩慢降低,當砂粒含量大于35%時黏聚力隨砂粒含量的增加其降低趨勢增大。
傳統協同過濾算法依賴“用戶—資源評分”矩陣,系統中巨大的資源數量容易產生矩陣稀疏性問題,并且僅根據用戶對資源的評分并不能完全刻畫用戶興趣偏好?;诖耍疚囊肷鐣瘶俗⒏倪M傳統協同過濾算法,具體算法流程如圖(8)所示。
Step1:鄰居用戶發現
用戶相似度計算:結合多層、多維用戶興趣模型,構建用戶—標簽語義主題的相關性矩陣,將用戶相似性轉換為興趣模型主題層向量的相似性計算。
采用修正的余弦相似度計算相似性,公式如下:
(9)


圖8 個性化推薦流程

圖9 用戶—主題矩陣
鄰居用戶選?。焊鶕脩粝嗨贫扔嬎?,采用閾值設置方法選取鄰居用戶集合。設定閾值δ,當sim(u,v)大于δ時,該用戶歸入鄰居用戶集合中。
Step2:資源集確定與特征表示
通過獲取鄰居用戶集合中用戶標注、收藏或瀏覽過的資源,過濾目標用戶已標注和已收藏的資源。得到這類資源集的資源—標簽關系矩陣X,矩陣X中的Xrt元素表示資源r被標注過標簽t的次數,然后進行LDA潛在語義主題建模,計算得到標簽潛在語義主題及主題分布概率,基于此構建資源—標簽語義主題矩陣,如圖10所示,其主題分布概率p(zi=n|ri)為資源與標簽語義主題相關度。

=圖10 資源—標簽主題矩陣
Step3:個性化推薦產生
用戶對資源興趣度通過公式(10)計算,最后按照興趣度大小排序,采用Top-N方法推薦給目標用戶。
(10)
本實驗數據來源于CiteUlike站點(http://www.citeulike.org/)。CiteUlike屬于經典的社會化標注系統,是一個免費協助注冊用戶存儲、管理及分析學術文章的論文書簽網站,允許用戶自由收藏個人喜歡的論文、分享自身論文庫并可用添加標簽的方式進行標注。當用戶瀏覽其他用戶標注的標簽而對該用戶產生興趣時,可通過“Connect”控件,建立與該用戶的鏈接關系。
本文使用Jsoup工具通過“Connections”接口抓取用戶間鏈接關系,采集到用戶相關標注信息,包括用戶名、論文、標簽、標注時間等,如果用戶使用多個標簽標注同一篇文章,這些標簽將存入多條數據記錄中。
抓取數據后,利用R語言對采集到的初步數據集做相關預處理,刪除不完整數據,對某些用戶標簽進行中文分詞、對分詞后的標簽去停用詞等操作。最后得到的實驗數據集包括5 124個用戶,8 245個標簽,12 574篇論文,以及88 132個鏈接關系。示例數據如表1所示。

表1 標注數據示例
本文希望從實用性、準確性、完整性等方面考查改進算法的性能,因此采用準確率和召回率兩個指標。
召回率(查全率)衡量所使用算法推薦了多少應該被推薦的項目或資源,該值越高推薦系統性能越好。設n為用戶個數,用戶i的測試集為Ti,正確推薦的資源集為Pi,則召回率計算公式為:
(11)
準確率考量推薦結果的準確性,隨著推薦數量的增加準確率會下降。設N為推薦資源的個數,其計算公式為:
(12)
由于召回率和準確率在一定程度上相互制衡,一般采用綜合評價指標F-measure來衡量兩者關系,計算公式為:
(13)
為驗證本文提出的個性化推薦方法有效性,設計兩部分實驗進行驗證:用戶興趣模型及模型更新方法驗證、基于用戶興趣模型的個性化推薦算法驗證。采用5層交叉驗證將數據集分為5分,并依次選取一份作為測試集,其余4份為訓練集,得到5個不同的測試集和訓練集用于實驗分析,各評估指標依次得到5個測試結果,取其算數平均值為各指標最終評估結果。
用戶興趣模型驗證
該部分通過本文算法(MCF)與傳統協同過濾算法(CF)對比實驗,用召回率驗證本文構建興趣模型的有效性。由于鄰居用戶個數M取值大小對算法精度有一定影響,M取值過小則無法得到足夠的待推薦資源集合,取值過大會使算法搜索成本加大。實驗選擇的M值從10增加到100,間隔為10,對比分析不同用戶模型對召回率的影響,實驗結果如圖11所示:

=圖11 不同用戶模型對召回率影響
從圖11中可知,當M值為35左右時,兩種算法的召回率基本持平,當鄰居用戶個數高于35時,MCF召回率高于CF算法,這是由于CF算法是基于用戶共同關注資源的評分進行相似度計算,而MCF是基于用戶興趣模型計算相似度,這里相似度的值與用戶共同標注資源沒有絕對的關系,即存在相似度很大的用戶之間評價相同資源情況較少的現象。隨著M取值增大,召回率增大,當鄰居個數在60左后,算法召回率趨于穩定,故在后續實驗中鄰居個數取60。
模型更新算法驗證
該部分通過MCF與本文提出的基于遺忘因子更新的用戶興趣模型個性化推薦算法(UMCF)對比實驗,采用準確率(Precision)指標驗證更新的用戶興趣模型是否能更準確表達用戶興趣。
實驗數據按照資源被標注時間取訓練集前80%,剩余20%為模型更新數據集,將訓練數據集最后一條標注時間設為建模時間,更新數據集最后一條標注時間設為當前時間,采用Top-N推薦方法,實驗結果如圖12所示:

圖12 用戶興趣模型的更新對準確率影響
UMCF算法相較于MCF推薦準確率較高,由此說明更新的用戶興趣模型對用戶興趣權值計算更為準確,更加準確表達用戶的興趣偏好。
推薦算法驗證
將UMCF與傳統的標簽協同過濾推薦(TCF)、標簽關聯關系推薦算法(LC)對比實驗,推薦長度從5逐漸增大,計算在此推薦長度下的F-measure值,對其取算術平均值為最終評估結果。如圖13所示:

圖13 不同N值下的F-measure
由圖13可知,當N取20時,3種算法F-measure值最高,說明在此推薦長度下推薦綜合效果達到最好,MCF相較于LC、TCF,評估指標F-measure值有所提高,這進一步論證了本文提出的算法達到了更佳的推薦效果。
互聯網飛速發展為人們生活帶來諸多方便的同時,信息過載等問題也隨之而來,個性化推薦技術的應用在一定程度上使人們需求得到滿足,因此圍繞個性化推薦展開的研究越來越多。本文基于社會化標注系統,從影響個性化推薦質量的兩個核心——用戶興趣建模和個性化推薦算法切入展開相關研究。
在社會化標注系統中,用戶的標注行為體現了其興趣偏好,標簽也表達了資源特征及潛在屬性。然而由于標簽存在語義模糊、歧義等問題,制約著其在個性化推薦領域上的應用。當前眾多研究者僅從數量和結構上考慮用戶與標簽的關系,同時標簽的時序動態性也影響著用戶興趣模型的準確率,限制著推薦模型的質量。針對上述問題,本文在已有研究基礎上進行改進和創新,提出基于社會化標注的用戶興趣挖掘,構建了個性化推薦算法,并通過實驗對文中提出的改進算法進行驗證分析。
但是本文尚有一些不足之處:例如在構建用戶興趣模型時,前提假設用戶只對感興趣的資源進行標注,對于某些用戶喜歡標注不感興趣資源的情況未作考慮,因此在實際應用中,可以進一步研究“負面標簽”識別問題。用戶興趣建模時個性化推薦技術的核心,在建模過程中會涉及用戶隱私問題,如何采用有效的隱私保護機制將是未來個性化推薦服務的研究方向之一。