劉 珺, 張文欣
(1.河南工程學(xué)院 計算機(jī)科學(xué)與工程系,河南 鄭州 451191;2.鄭州大學(xué) 信息工程學(xué)院,河南 鄭州 450001)
隨著互聯(lián)網(wǎng)信息服務(wù)的快速推廣,個性化信息服務(wù)技術(shù)也得到了越來越多的關(guān)注,在很多領(lǐng)域都開始了探索性的應(yīng)用.國外的很多網(wǎng)站都可以提供個性化搜索的定制服務(wù),如Google的網(wǎng)站用戶通過注冊后,可以將檢索歷史存儲在服務(wù)器上,實現(xiàn)個性化檢索.個性化數(shù)字圖書館也已經(jīng)成為廣大學(xué)生、教師和科研人員最方便、高效的信息查詢平臺[1].
RSS是一種基于XML語言的數(shù)據(jù)交換規(guī)范,是站點與站點之間稱為“聚合內(nèi)容”的一種內(nèi)容共享的簡易方式[2].通過RSS的聯(lián)合與聚合,用戶只需在客戶端安裝支持RSS的信息推送軟件,登錄網(wǎng)站后就可以根據(jù)站點提供的信息列表直接選擇自己需要的文章[3].無論是何種應(yīng)用,RSS聚合器實現(xiàn)的前提就是通過對客戶端的Web訪問日志進(jìn)行數(shù)據(jù)挖掘,建立用戶興趣模型,才能聚合并生成關(guān)于用戶感興趣的信息的RSS Feed[4],并據(jù)此進(jìn)行信息的推送,所以用戶興趣模型的質(zhì)量直接決定了個性化信息服務(wù)系統(tǒng)的整體工作效果.
本文通過研究用戶興趣模型的結(jié)構(gòu)與形式化表示法,結(jié)合興趣節(jié)點的向量表示法,提出了多層樹形結(jié)構(gòu)的用戶興趣模型以及用戶興趣模型的更新方案,設(shè)計了一套高效的、可動態(tài)更新的用戶興趣集的建模方法.
對于大部分單機(jī)上網(wǎng)的用戶而言,經(jīng)過一段時間的累積,會逐步形成以個人興趣為核心的信息訪問習(xí)慣,而且,用戶訪問的頁面所涉及的信息內(nèi)容非常豐富,時效性也很強(qiáng),這就要求所設(shè)計的用戶興趣模型必須包括對用戶的興趣文本內(nèi)容以及相應(yīng)的用戶興趣度的反映[5].用戶興趣模型的核心功能包括2個方面:
(1)設(shè)計多層次樹形結(jié)構(gòu)的用戶興趣結(jié)構(gòu)
通過對大量用戶的興趣分析可知,人的興趣結(jié)構(gòu)非常適合用層次化的樹形結(jié)構(gòu)來描述.在這種結(jié)構(gòu)中,用戶的興趣被層層分解,逐級細(xì)化為一個興趣樹.根節(jié)點代表大的用戶興趣類別,細(xì)化的分支代表在該類別中用戶更偏好其中的哪個領(lǐng)域.在為用戶提供個性化服務(wù)時,可以通過從根節(jié)點開始遍歷整個興趣樹的方式,給用戶提供逐級細(xì)化的興趣內(nèi)容描述.
(2)用戶興趣集的遺忘
最初,用戶興趣模型的初始化信息來源于用戶注冊賬號時填寫的RSS訂閱列表,隨著日后訪問量的增加,可以根據(jù)用戶的Web訪問日志對已有的用戶興趣模型進(jìn)行更新.但是,隨著時間的推移,用戶曾經(jīng)瀏覽過的歷史記錄中的文本內(nèi)容不斷增加,用戶的興趣模型數(shù)據(jù)集也會因此不斷膨脹,為了避免存儲空間的浪費和訪問效率的降低,有必要定期地對用戶興趣集進(jìn)行過濾和轉(zhuǎn)移.
本設(shè)計在用戶興趣模型中特意添加了“遺忘因子”的使用,所謂的“遺忘因子”是一個隨時間遞增的標(biāo)識數(shù)值,它用來表示從第一次訪問后,用戶已經(jīng)有多長時間沒有再瀏覽這個關(guān)鍵詞,初始值為0,隨著系統(tǒng)的運行和時間的推移自動增值.當(dāng)某個興趣類別遺忘因子的值增加到設(shè)定的閾值時,系統(tǒng)會自動將其從用戶興趣模型數(shù)據(jù)集的二維鏈表中移出.
如前所述,這里把用戶的興趣模型看作一個樹狀的層次結(jié)構(gòu),具體進(jìn)行形式化描述時,各個細(xì)化的興趣節(jié)點都選擇使用向量空間的方式來描述,即根據(jù)已經(jīng)存在的關(guān)鍵字類別以及相應(yīng)的用戶興趣度的值來確定該興趣節(jié)點的向量.
由網(wǎng)頁中提取文本的基礎(chǔ)是文本信息的表示法.文本的表示通常有基于向量、基于語義和基于概念3種方法.結(jié)合本文的設(shè)計,這里選用目前應(yīng)用最為廣泛的向量空間模型(Vector Space Model,VSM)表示法.該方法首先將Web訪問日志中的所有文本進(jìn)行分詞處理,然后提取特征詞、建立特征詞空間,最后將每個文本表示成該空間上的向量[6].頁面中所有的文本信息都可以分解為字、詞、詞組或短語中最基本的語言構(gòu)成單元,這些分解后的構(gòu)成單元的集合常常用來表示一段文本的內(nèi)容特征.這些標(biāo)識文本內(nèi)容特征的構(gòu)成單元被統(tǒng)稱為文本的項,那么任何一段文本都可以用自己的特征項集(Term List)表示為D(t1,t2,…tk…,tn),其中tk是項,1≤k≤n.
使用RSS聚合器采集到用戶感興趣的信息之后,就可以對頁面中文本信息的內(nèi)容進(jìn)行分詞化處理,將文本解析為其特征項集合,然后據(jù)此將該文本用向量的形式表示出來.分詞處理是指將文檔中的內(nèi)容進(jìn)行切分,依據(jù)其詞性進(jìn)行標(biāo)注,如使用詞法分析ICTCLAS系統(tǒng)[7]等方法,經(jīng)過詞性標(biāo)注,整個句子會被劃分為幾個獨立的部分,以便于從中找出關(guān)鍵字.該模型如圖1所示,頂層節(jié)點為模型標(biāo)識,第2層為分支層,第3層為項目層,下面2層表示擴(kuò)展層.
圖1 用戶興趣模型層次結(jié)構(gòu)示意圖Fig.1 User′s interest model with multi-level structure diagram
以下列出了層次模型的各層次的節(jié)點的形式化表示.
U=(USER-ID,USER-Name,…)
頂節(jié)點
Im=(IDm,IDfm,Dm,Wm,Tm)
第2層節(jié)點
Ix=(IDx,IDfx,Dx,Wx,Tx)
第3層節(jié)點
Iy=(IDy,IDfy,Dy,Wy,Ty)
第4層節(jié)點
Iz=(IDz,IDfz,DZ,WZ,Tz)
第5層節(jié)點
其中,m、x、y、z均為正整數(shù)變量,I為興趣類名,D為子興趣類的文本向量表示,W是興趣權(quán)重,T表示“遺忘因子”.
一個興趣項的權(quán)重表示用戶對這個興趣項的認(rèn)可程度.它可以用1~9的正整數(shù)來表示.權(quán)重小于5表示相應(yīng)的項對這個興趣起否定作用,大于5表示對這個興趣起支持作用,這與著名專家系統(tǒng)MYCIN的證據(jù)可信度表示法類似,比較符合人們的思維習(xí)慣[8].
將文本以向量形式表示并將其合理地分解成若干項集,從而轉(zhuǎn)換到實數(shù)域中,這種興趣模型的形式化表示方法有效地提高了自然語言文本的可計算性和可操作性,使模式識別等各種成熟的計算方法得以應(yīng)用.只有了解用戶對不同Web頁面的感興趣程度,才能建立準(zhǔn)確的用戶興趣模型.我們把用戶對瀏覽過的不同頁面的興趣關(guān)注度用“用戶興趣度”來表示.在文本的向量表示格式中再引入文本項權(quán)重W,使得文本的表示成為:
D(t1,W1:t2,w2;…tk,wk;…tn,wn),
簡單表示為D(w1,w2,…wk……,wn),也就是可以將(t1,t2,…tk…,tn)看作一個n維向量,將w1,w2,…wk…,wn理解為n個值.
圖2 文本的向量空間模型示意圖Fig.2 VSM of text diagram
相似度指2個文本Dm和Dn之間的內(nèi)容相關(guān)程度,常常用Sim(Dm,Dn)來度量.當(dāng)文本被表示為向量空間模型時,可以使用向量之間的內(nèi)積對文本間的相似度進(jìn)行計算,也可借助于向量空間中向量之間的某種距離來表示文本間的相似度,如圖2所示.
Sim(Dm,Dn)=Dm1*Dn1+Dm2*Dn2+…+Dmx*Dny,
其中,x和y分別代表2個文本向量的維數(shù).這里可以給Sim設(shè)定一個上限值,當(dāng)文本相似度大于這個值時,表示2個文檔高度相似,或者可以說2個文檔實為同一文檔.這說明,用戶在反復(fù)訪問內(nèi)容非常相似的文本,也就是說該文本和用戶的興趣集很接近.相反,則認(rèn)為2個文本完全不同,或者說用戶對此毫無興趣.
用戶興趣模型建立的流程如圖3所示.
圖 3 用戶興趣模型構(gòu)建的流程示意圖Fig.3 Process flow diagram of building user′s interest model
模型構(gòu)建的算法流程先從用戶興趣子類的劃分開始.用戶興趣子類是文本分類的最終結(jié)果,因此,用戶興趣子類的結(jié)構(gòu)直接決定了進(jìn)行文本分類時應(yīng)該采用何種方式.
進(jìn)行用戶興趣子類結(jié)構(gòu)劃分時,首先將所有需要分類的文本進(jìn)行預(yù)處理以及分詞處理,然后刪去消極關(guān)鍵字,進(jìn)行詞頻統(tǒng)計,最后將文檔向量化.關(guān)鍵詞的抽取就是從有待分類處理的信息中提取其特征項的過程.文本的向量化完成之后,文本向量就成為系統(tǒng)所使用的層次化分類體系的主體.
對于RSS訂閱中用戶興趣模型的初始化,可直接進(jìn)行文本的向量化及其分類,省去了預(yù)處理及分詞處理等過程.當(dāng)用戶的訪問量有了一定的累積,通過Web挖掘也獲得了一定量的用戶興趣信息時,就可以對用戶的興趣模型進(jìn)行調(diào)整和豐富了,兩者相結(jié)合,完整的用戶興趣模型就可以建立起來.在用戶興趣信息不斷擴(kuò)充的過程中,可以根據(jù)用戶興趣類的劃分及對應(yīng)的用戶興趣度,再結(jié)合用戶興趣集的遺忘因子,對已經(jīng)存在的用戶興趣模型不斷進(jìn)行優(yōu)化和更新,使該模型能夠盡可能全面地反映用戶的興趣及其變化.
要想讓用戶的興趣模型及時反映該用戶的最新狀態(tài),用戶興趣模型就必須能夠及時更新.應(yīng)用系統(tǒng)必須定期捕捉新的用戶訪問信息,更新對用戶訪問記錄的分析,與用戶模型中已經(jīng)保存的數(shù)據(jù)比對整合,形成新的用戶模型.
用戶興趣模型的更新分為2個部分,分別是用戶訪問類別子集興趣度的更新和用戶訪問類別子集本身的更新.其中,興趣度的更新主要是通過對點擊行為的跟蹤記錄來實現(xiàn)的.也就是說,用戶有點擊行為代表該用戶對當(dāng)前興趣子集的文本特征項的興趣度數(shù)值需要增加,而無點擊行為則表示該興趣度數(shù)值需要減少.而用戶興趣子集本身的更新則是對用戶的點擊行為所涉及的頁面進(jìn)行處理,再次進(jìn)行分詞處理并從中提取文本特征項集合,也將其表示為向量,并與原有的興趣子集向量空間進(jìn)行合并.這時,可以將原先的用戶興趣子集的中心向量進(jìn)行更新,也可以直接添加建立新的興趣子集.
某個用戶興趣的各個項的權(quán)重值可用于標(biāo)記用戶對該項的興趣程度,而各個項的權(quán)重值形成的數(shù)據(jù)集合很重要,根據(jù)這個數(shù)據(jù)集合可以來合并類似的興趣,以便區(qū)分不同的興趣分類.之后,系統(tǒng)會搜索用戶興趣庫中與之對應(yīng)的興趣集,并生成1個網(wǎng)頁鏈接序列在用戶界面顯示出來.
這里,采用比較成熟的比例——微分——積分模型來模擬并跟蹤用戶的興趣,該模型對用戶興趣指標(biāo)函數(shù)做了二階近似,即用戶在某一時刻對某一子類的興趣度指標(biāo)可以表示為其上一時刻的興趣指標(biāo)的函數(shù),即指標(biāo)變化和其指標(biāo)變化加速度的加權(quán)和.
設(shè)用戶在某一時刻n對某一特定子類的興趣指標(biāo)為In,則其對該類下一時刻的興趣指標(biāo)為:
In+1=In+△In,同時記:△2In=△In-△In-1,
此時,用戶在(n+1)時刻的興趣函數(shù)可以用n時刻之前的興趣度來描述:
In+1=aIn+b△In+c△2In,
其中,a,b,c分別是積分、比例和微分環(huán)節(jié)的系數(shù).對于不同的用戶,可以設(shè)置不同的參數(shù)以體現(xiàn)其特點,并控制跟蹤曲線的變化來捕捉用戶的興趣.
在最初建立擴(kuò)展的用戶興趣模型時,主要參考用戶在進(jìn)行RSS訂閱時提供的信息.隨著系統(tǒng)的運行,用戶會不斷訪問新的頁面并產(chǎn)生各種用戶行為,這時就必須不斷地更新用戶的興趣模型,才能使用戶的興趣模型始終符合用戶的真實興趣,用戶興趣模型的更新流程如圖4所示.
圖4 用戶興趣模型更新流程示意圖Fig.4 Process flow diagram of updating user’s interest model
用戶興趣模型的更新除了包括用戶興趣類別常規(guī)的添加、修改和刪除,還包括用戶興趣度的改變以及對用戶興趣類的遺忘和回憶.目前,各種用戶興趣模型的更新機(jī)制普遍存在的一個問題,就是如何解決用戶興趣模型的冗余和用戶興趣的丟失問題.為此,這里引入了用戶興趣遺忘和回憶的概念.
依前文所述,用戶興趣的遺忘是依靠遺忘因子的增值來控制的,判斷是否需要將用戶興趣子類移出,要考慮到遺忘因子是否達(dá)到閾值、興趣模型的冗余度是否過高以及可用存儲空間是否充裕等諸多因素.如果用戶興趣模型的冗余程度還沒有到達(dá)臨界值,即使是用戶興趣遺忘因子達(dá)到了一定的閾值,也完全沒有必要將用戶興趣類移出.而用戶興趣的回憶則要解決2個問題,一個是將用戶興趣子類移出鏈表后如何處理,另一個是在什么情況下允許將用戶興趣模型的興趣子類重新復(fù)位.
在將用戶興趣子類移出用戶興趣模型之前,首先要記錄其在模型中的位置,即該用戶興趣子類所屬的父類的ID.在以后的用戶興趣模型更新時,需要追蹤原先興趣模型的父類關(guān)鍵詞的變化,以確定其新的鏈接位置.如發(fā)現(xiàn)其父類興趣類的關(guān)鍵詞已經(jīng)被合并,由新的類別取代,那么就用合并后的用戶興趣類別的ID取代原先的父類ID,確保需要的時候能夠?qū)⒈灰瞥龅呐d趣類從“遺忘集”鏈表中取回.其次,當(dāng)用戶再次訪問到與已經(jīng)移出的興趣類別相同或者相似的興趣類別的時候,就在“遺忘集”鏈表中重新查找該興趣類別,由于該鏈表采用和興趣集完全相同的結(jié)構(gòu),所以只需修改結(jié)點的鏈接關(guān)系、重新插入就可以復(fù)位了,同時還要將其遺忘因子重新設(shè)為初始值0.用戶興趣模型回憶機(jī)制的建立很好地解決了用戶興趣容易丟失的問題,使用戶興趣模型既能夠保持較少的冗余、節(jié)約大量空間,又能夠確保不會輕易丟失用戶的興趣集,從而使用戶興趣模型興趣子類的更新機(jī)制更加完善.
本系統(tǒng)針對目前信息推送技術(shù)中建模方法的弊端進(jìn)行了改造,大大提高了信息獲取的效率和準(zhǔn)確度.在RSS信息推送模塊的設(shè)計中,將用戶的初始化訂閱與日后的興趣建模相結(jié)合,采用層次化的向量形式來描述用戶的興趣模型,對用戶興趣的表示和預(yù)測更加細(xì)致、真實、準(zhǔn)確.考慮到用戶訪問量的增加雖然使Web挖掘和用戶興趣模型的建立有了更好的數(shù)據(jù)基礎(chǔ),但是也會造成生成的興趣模型數(shù)據(jù)集的不斷膨脹,這里提出了基于遺忘因子的興趣集移出和復(fù)位的解決方案,模擬了人的興趣遺忘和回憶的過程,既有效避免了數(shù)據(jù)的冗余,又不易造成用戶歷史興趣集的丟失.隨著技術(shù)的發(fā)展和手機(jī)網(wǎng)絡(luò)用戶的增加,日后可以將該系統(tǒng)與手機(jī)網(wǎng)絡(luò)平臺進(jìn)行連接,更方便地實現(xiàn)與用戶的互動.
參考文獻(xiàn):
[1] 郭海明,劉桂珍.面向用戶的數(shù)字信息服務(wù)方式探討[J].圖書館建設(shè),2005(2) :66-68.
[2] 胡潛,汪會玲.基于RSS的個性化推送服務(wù)[J].情報雜志,2008(10):32-33.
[3] 郭軍城,于金海.RSS的版本演變[J].科技情報開發(fā)與經(jīng)濟(jì),2007(33):191-192.
[4] 薩支斌.RSS技術(shù)研究[J].情報探索,2006(9):71-72.
[5] 張玉蓮,王權(quán).基于瀏覽行為和瀏覽內(nèi)容的用戶興趣建模[J].現(xiàn)代圖書情報技術(shù),2007(6):52-55.
[6] 費洪曉,蔣翀,徐麗娟.基于樹狀向量空間模型的用戶興趣建模[J].計算機(jī)技術(shù)與發(fā)展,2009(5):85-87.
[7] 賴茂生,屈鵬.搜索引擎查詢?nèi)罩镜脑~性標(biāo)注和挖掘研究[J].現(xiàn)代圖書情報技術(shù),2009(4):55-61.
[8] 張宗平.一種更新關(guān)聯(lián)規(guī)則的方法[J].計算機(jī)工程,2008(1):70-71.