南智敏,錢松榮
互聯(lián)網(wǎng)已經(jīng)成為了人們獲取資訊信息的重要途徑。面對(duì)海量信息,人們習(xí)慣使用搜索引擎進(jìn)行信息檢索,但目前搜索引擎只做關(guān)鍵詞匹配,很難區(qū)分用戶興趣,往往會(huì)推薦一些用戶不感興趣的內(nèi)容,從而浪費(fèi)了用戶甄別信息的時(shí)間。因而有必要建立一個(gè)可用的用戶興趣模型,根據(jù)用戶興趣去推薦內(nèi)容,以提高信息的推薦質(zhì)量。
目前發(fā)現(xiàn)用戶興趣的方法主要有兩種:(1)通過用戶主動(dòng)提供個(gè)人興趣來直接得到用戶興趣;(2)通過用戶的操作信息來分析得到用戶興趣[1]。前者存在用戶興趣描述準(zhǔn)確性、完整性、實(shí)時(shí)性等方面的缺陷;相比,后者更能準(zhǔn)確地反映出用戶的興趣。用戶的操作信息包括訪問內(nèi)容和訪問時(shí)的動(dòng)作。對(duì)于訪問內(nèi)容,通常采用文本聚類、語義分析等方法進(jìn)行聚類分析。其中尤以文本聚類方法為多,即以向量空間模型(Vector Space Model,簡稱VSM)來表征用戶瀏覽的內(nèi)容,進(jìn)而聚類找出用戶的興趣所在[2]。對(duì)動(dòng)作行為的分析是為了獲得用戶對(duì)內(nèi)容的感興趣程度,即興趣度(Interest Rate,簡稱IR)。目前對(duì)內(nèi)容興趣度的評(píng)價(jià)存在量化合理性的問題,評(píng)價(jià)方式較為粗糙。文獻(xiàn)[3]提出了一種基于時(shí)間的興趣度度量方法,但其算法較為簡單,容易引起偏差。在這方面本文提出一種更加合理的用戶行為評(píng)估算法。
網(wǎng)頁的用戶興趣評(píng)價(jià)分為兩部分:基于VSM的網(wǎng)頁內(nèi)容表征和基于用戶瀏覽行為的網(wǎng)頁興趣度評(píng)價(jià)[4]。
在對(duì)網(wǎng)頁內(nèi)容進(jìn)行表征之前,需要對(duì)網(wǎng)頁內(nèi)容進(jìn)行一些預(yù)處理,去除網(wǎng)頁上的廣告、導(dǎo)航、腳本、顯示樣式等冗余信息和內(nèi)容中的無意義詞、干擾詞和高頻詞,避免這些信息對(duì)用戶興趣模型的準(zhǔn)確性造成影響。
對(duì)處理后的網(wǎng)頁內(nèi)容使用VSM 法進(jìn)行表征。忽略HTML 標(biāo)簽,將網(wǎng)頁內(nèi)容進(jìn)行文本分詞,根據(jù)詞頻取出詞頻最高的m 個(gè)特征詞作為向量的m 個(gè)維度,將網(wǎng)頁內(nèi)容表征為詞頻特征向量{(term1,weight1),(term2,weight2),...,(termm,weightm)}。其中termi為詞條,weighti為對(duì)應(yīng)的詞頻。考慮到title、h1 等標(biāo)簽內(nèi)的內(nèi)容相對(duì)重要,在詞頻統(tǒng)計(jì)時(shí),對(duì)于這些特殊標(biāo)簽內(nèi)的內(nèi)容進(jìn)行加權(quán)處理[5],本文設(shè)定title 標(biāo)簽內(nèi)的內(nèi)容權(quán)值為4,h1 標(biāo)簽內(nèi)的內(nèi)容權(quán)值為3,h2 標(biāo)簽內(nèi)的內(nèi)容權(quán)值為2,其他內(nèi)容權(quán)值為1。
單純對(duì)網(wǎng)頁內(nèi)容進(jìn)行詞頻統(tǒng)計(jì)無法反應(yīng)出用戶對(duì)網(wǎng)頁內(nèi)容的感興趣程度。例如,用戶打開了某些網(wǎng)頁,發(fā)現(xiàn)不感興趣會(huì)馬上關(guān)掉,把這些網(wǎng)頁放在興趣模型的統(tǒng)計(jì)范疇內(nèi)是不合理的。需要對(duì)用戶的瀏覽行為進(jìn)行觀察,分析出用戶對(duì)網(wǎng)頁的興趣度,從而降低這些網(wǎng)頁對(duì)推薦結(jié)果造成的干擾。
用戶瀏覽網(wǎng)頁時(shí)的操作行為多樣。 Nichols 給出了能夠作為隱式反饋的用戶行為類型列表,如訪問、打印/保存、刪除、引用、回復(fù)、標(biāo)注、閱讀、略讀、查詢等[6]。對(duì)于眾多的用戶行為,根據(jù)行為所能體現(xiàn)的用戶對(duì)網(wǎng)頁的興趣度的不同,將行為分為重要?jiǎng)幼餍袨楹推胀▌?dòng)作行為。從而提出了興趣度評(píng)價(jià)算法,以偽代碼表示為:
其中,action 代表用戶瀏覽網(wǎng)頁時(shí)發(fā)生的動(dòng)作;{ save,print,copy,bookmark,…}是用戶在瀏覽時(shí)可能發(fā)生的保存(save)、打印(print)、復(fù)制(copy)、收藏(bookmark)等重要?jiǎng)幼骷?;IR 為通過計(jì)算得到的用戶興趣度;rt (read time)為用戶閱讀某個(gè)頁面時(shí)的停留時(shí)間;f(rt)為rt 到IR的映射函數(shù),其具體形式將在下文給出。
除了重要操作性動(dòng)作外,其余諸如選擇、瀏覽、拖拉滾動(dòng)條、點(diǎn)擊鼠標(biāo)、滾動(dòng)鼠標(biāo)等用戶行為均會(huì)延長用戶瀏覽網(wǎng)頁的時(shí)間,在一定程度上可以用瀏覽時(shí)間來表征??紤]到前文所述用戶打開了網(wǎng)頁但立刻關(guān)閉的情形,說明此時(shí)用戶對(duì)該網(wǎng)頁不感興趣,興趣度為0;相反,用戶打開了網(wǎng)頁并停留了很長時(shí)間,并不說明用戶對(duì)該網(wǎng)頁內(nèi)容很感興趣,而可能是意外原因沒有及時(shí)關(guān)閉網(wǎng)頁,由于無法判斷,因而視用戶對(duì)該網(wǎng)頁的興趣度為0。采用閱讀時(shí)間來評(píng)價(jià)用戶對(duì)網(wǎng)頁內(nèi)容的興趣度還與網(wǎng)頁的長度和閱讀者的閱讀速度有關(guān)。正常情況下,閱讀速度一定,網(wǎng)頁內(nèi)容dl (document length)越長,則閱讀時(shí)間越長;反之,閱讀時(shí)間越短。如果網(wǎng)頁內(nèi)容長度一定,閱讀者閱讀速度越慢,那么閱讀時(shí)間就會(huì)越長。閱讀速度差異在現(xiàn)實(shí)中普遍存在,如大多數(shù)老年人的閱讀速度慢于年輕人。從以上分析可知,單純的閱讀時(shí)間無法準(zhǔn)確反映出用戶對(duì)某一網(wǎng)頁的興趣度,還必須結(jié)合網(wǎng)頁內(nèi)容長度以及用戶的閱讀速度等因素。為此,本文引入單字閱讀時(shí)間swrt (single word read time)以及平均單字閱讀時(shí)間()的概念,swrt=rt/dl,為用戶在每個(gè)單字上的統(tǒng)計(jì)平均閱讀時(shí)間,通過對(duì)用戶多次閱讀的swrt 取平均得到。swrt 和的引入能夠很好地消除網(wǎng)頁長度和閱讀速度差異所帶來的影響,使得興趣度的評(píng)價(jià)更加合理。至此,將上文算法中的f(rt)用F(swrt)代替,F(xiàn)(swrt)為興趣度IR 關(guān)于swrt的函數(shù),采用分段函數(shù)進(jìn)行擬合,如式公1所示:
根據(jù)經(jīng)驗(yàn),普通人閱讀速度為300 至500 字每分鐘,取興趣度為1的兩個(gè)臨界值為60/500=0.12秒每字,為60/300=0.2秒每字;取興趣度為0的兩個(gè)臨界值刪除、引用、回復(fù)、標(biāo)注、閱讀、略讀、查詢等[6]。對(duì)于眾多的用戶行為,根據(jù)行為所能體現(xiàn)的用戶對(duì)網(wǎng)頁的興趣度的不同,將行為分為重要?jiǎng)幼餍袨楹推胀▌?dòng)作行為。從而提出了興趣度評(píng)價(jià)算法,以偽代碼表示為:
其中,action代表用戶瀏覽網(wǎng)頁時(shí)發(fā)生的動(dòng)作;{ save,print, copy, bookmark, …}是用戶在瀏覽時(shí)可能發(fā)生的保存(save)、打印(print)、復(fù)制(copy)、收藏(bookmark)等重要?jiǎng)幼骷?;IR為通過計(jì)算得到的用戶興趣度;rt (read time)為用戶閱讀某個(gè)頁面時(shí)的停留時(shí)間;f(rt)為rt到IR的映射函數(shù),其具體形式將在下文給出。
除了重要操作性動(dòng)作外,其余諸如選擇、瀏覽、拖拉滾動(dòng)條、點(diǎn)擊鼠標(biāo)、滾動(dòng)鼠標(biāo)等用戶行為均會(huì)延長用戶瀏覽網(wǎng)頁的時(shí)間,在一定程度上可以用瀏覽時(shí)間來表征??紤]到前文所述用戶打開了網(wǎng)頁但立刻關(guān)閉的情形,說明此時(shí)用戶對(duì)該網(wǎng)頁不感興趣,興趣度為0;相反,用戶打開了網(wǎng)頁并停留了很長時(shí)間,并不說明用戶對(duì)該網(wǎng)頁內(nèi)容很感興趣,而可能是意外原因沒有及時(shí)關(guān)閉網(wǎng)頁,由于無法判斷,因而視用戶對(duì)該網(wǎng)頁的興趣度為0。采用閱讀時(shí)間來評(píng)價(jià)用戶對(duì)網(wǎng)頁內(nèi)容的興趣度還與網(wǎng)頁的長度和閱讀者的閱讀速度有關(guān)。正常情況下,閱讀速度一定,網(wǎng)頁內(nèi)容dl (document length)越長,則閱讀時(shí)間越長;反之,閱讀時(shí)間越短。如果網(wǎng)頁內(nèi)容長度一定,閱讀者閱讀速度越慢,那么閱讀時(shí)間就會(huì)越長。閱讀速度差異在現(xiàn)實(shí)中普遍存在,如大多數(shù)老年人的閱讀速度慢于年輕人。從以上分析可知,單純的閱讀時(shí)間無法準(zhǔn)確反映出用戶對(duì)某一網(wǎng)頁的興趣度,還必須結(jié)合網(wǎng)頁內(nèi)容長度以及用戶的閱讀速度等因素。為此,本文引入單字閱讀時(shí)間swrt (single word read time)以及平均單字閱讀時(shí)間()的概念,swrt=rt/dl,為用戶在每個(gè)單字上的統(tǒng)計(jì)平均閱讀時(shí)間,通過對(duì)用戶多次閱讀的swrt取平均得到。swrt和的引入能夠很好地消除網(wǎng)頁長度和閱讀速度差異所帶來的影響,使得興趣度的評(píng)價(jià)更加合理。至此,將上文算法中的f(rt)用F(swrt)代替,F(xiàn)(swrt)為興趣度IR關(guān)于swrt的函數(shù),采用分段函數(shù)進(jìn)行擬合,如式公1所示:
根據(jù)經(jīng)驗(yàn),普通人閱讀速度為300至500字每分鐘,取興趣度為1的兩個(gè)臨界值min為60/500=0.12秒每字,max為60/300=0.2秒每字;取興趣度為0的兩個(gè)臨界值swrtmin為0.01秒每字,swrtmax為1秒每字,代入式1,得到式2,對(duì)公式2作圖,F(xiàn)(swrt)函數(shù)曲線,如圖1所示:
圖1 F(swrt)函數(shù)曲線
結(jié)合式2和上文中的興趣度評(píng)價(jià)算法可以根據(jù)用戶的操作信息分析得到用戶對(duì)于某一網(wǎng)頁的興趣度。
傳統(tǒng)的VSM模型使用(term, weight)對(duì)來表征用戶瀏覽某個(gè)網(wǎng)頁所隱含的興趣信息。本文在VSM模型的基礎(chǔ)上對(duì)每次瀏覽行為引入了興趣度IR的表征,將網(wǎng)頁興趣向量擴(kuò)展表示為{(term1, weight1),(term2, weight2),..., (termm,weightm),IR}。用戶的興趣模型最終表征為公式3:
其中,n為興趣模型包含的用戶興趣數(shù),即興趣向量的個(gè)數(shù);m為每個(gè)興趣向量所包含的維數(shù);如某個(gè)興趣向量維數(shù)不足m,則空缺的維度(termi,j, weighti,j)以("",0)填充。
系統(tǒng)初始啟動(dòng)時(shí),用戶興趣模型為空矩陣。此時(shí)可以由用戶主動(dòng)提供能表征自己興趣的多組詞語來構(gòu)建出初始狀態(tài)的興趣模型矩陣;也可以根據(jù)用戶的收藏夾記錄或歷史訪問記錄來生成用戶的興趣模型。根據(jù)用戶的收藏夾記錄、歷史訪問記錄獲取對(duì)應(yīng)網(wǎng)頁,使用上文所述的基于VSM模型的網(wǎng)頁內(nèi)容表征方法對(duì)所有網(wǎng)頁進(jìn)行內(nèi)容特征表示,在每個(gè)特征向量中加入平均用戶興趣度 ,從而構(gòu)建出用戶的初始興趣模型矩陣。根據(jù)初始用戶興趣矩陣可以實(shí)現(xiàn)在未獲取到用戶瀏覽操作信息之前向用戶推薦其感興趣的文章。
在用戶瀏覽網(wǎng)頁過程中,記錄下用戶瀏覽的網(wǎng)頁內(nèi)容、操作行為和瀏覽時(shí)間,使用基于VSM的網(wǎng)頁內(nèi)容表征方法表示出網(wǎng)頁內(nèi)容特征,根據(jù)網(wǎng)頁興趣度度量算法計(jì)算出用戶對(duì)網(wǎng)頁內(nèi)容的興趣度,結(jié)合起來得到用戶瀏覽每個(gè)網(wǎng)頁過程中隱含的用戶興趣——以興趣向量的形式來表示。用戶的每一次瀏覽行為都會(huì)得到一個(gè)興趣向量,在更新用戶興趣模型時(shí)需要對(duì)這些興趣向量進(jìn)行聚合,聚合后得到最終的用戶模型矩陣供后續(xù)使用。聚合過程采用以下算法:
算法1. 興趣向量的和操作Vr+ Vs, Vr= {(termr1,weightr1), ..., (termrm, weightrm), IRr}, Vs= {(terms1,weights1), ..., (termsm, weightsm), IRs},計(jì)算步驟如下:
1)如果某個(gè)詞term既在Vr中又在Vs中,則把該詞在Vr和Vs中的權(quán)值weight相加的和作為它在Vr的權(quán)值;
2)如果某個(gè)詞term 在Vs但不在Vr中,那么把該詞和它在Vs中的權(quán)值weight 加入到Vr中;
3)新得到的Vr按權(quán)值從大到小排序,取前m 個(gè)元素作為結(jié)果的前m 維元素,結(jié)果向量的興趣度為IRr+IRs。
算法2.兩個(gè)m 維興趣向量Vr和Vs的相似度,計(jì)算過程如公式4所示:
其中興趣度IRr和IRs不參與Vr和Vs的相似度計(jì)算。算法3.興趣矩陣Pz的N-壓縮操作,將Pz壓縮為行向量數(shù)
不超過N的矩陣,計(jì)算步驟如下:
1)若|Pz|≤N,則返回Pz作為結(jié)果;
2)否則,計(jì)算矩陣Pz中任意兩個(gè)向量的相似度Sim(Vr,Vs);
3)找出最大相似度,如最大相似度大于Simthreshold則轉(zhuǎn)到步驟4;否則轉(zhuǎn)到步驟5。其中Simthreshold為可合并的最小相似度;
4)合并具有最大相似度的兩個(gè)向量,合并規(guī)則為用Vr+Vs替換掉Pz原有的Vr和Vs?;氐讲襟E2;
5)根據(jù)每個(gè)興趣向量中的興趣度IR 對(duì)Pz中的向量從大到小排序,Pz只保留前N 個(gè)向量組成矩陣,其余向量丟棄,返回處理后的Pz作為結(jié)果。
根據(jù)得到的用戶興趣模型,可以有針對(duì)性地給用戶推薦其可能感興趣的新網(wǎng)頁內(nèi)容,具體使用步驟如下:
1)利用基于VSM 模型的網(wǎng)頁內(nèi)容表征方法計(jì)算出用于表征新網(wǎng)頁的網(wǎng)頁內(nèi)容特征向量Vnew
2)通過以下評(píng)價(jià)公式得到新網(wǎng)頁的興趣評(píng)價(jià)值E:
其中Sim(Vi,Vnew)為用戶興趣模型中第i 個(gè)興趣向量Vi與Vnew的相似度,計(jì)算方法同算法2。
3)對(duì)所有新網(wǎng)頁根據(jù)計(jì)算得到的E 值從大到小排序,將E 值超過一定閾值的或者E 值較大的若干篇網(wǎng)頁推薦給用戶。
實(shí)驗(yàn)采集門戶網(wǎng)站上世博欄目和曼聯(lián)欄目下各1000 篇文章生成語料庫作為實(shí)驗(yàn)數(shù)據(jù),并建立了加入本文提出的興趣度度量算法的興趣模型實(shí)驗(yàn)系統(tǒng)。實(shí)驗(yàn)使用基于K-Means聚類的用戶興趣模型進(jìn)行對(duì)比。
實(shí)驗(yàn)一、正常閱讀10 篇世博文章,打開并快速關(guān)閉10篇曼聯(lián)文章,使用本文的用戶興趣模型和基于K-Means的用戶興趣模型進(jìn)行文章推薦,興趣模型推薦結(jié)果,如表1所示:
表1 用戶興趣模型推薦結(jié)果
可以發(fā)現(xiàn)打開并快速關(guān)閉10 篇曼聯(lián)文章的瀏覽操作在本文提出的興趣模型中對(duì)推薦結(jié)果沒有造成影響,而在K-Means 模型中則產(chǎn)生了較大的影響。
實(shí)驗(yàn)二、模擬用戶以0.7的興趣度閱讀10 篇世博文章,以0.3的興趣度閱讀10 篇曼聯(lián)文章,使用本文提出的用戶興趣模型和基于K-Means的用戶興趣模型進(jìn)行文章推薦,推薦結(jié)果中世博文章所占比例,如圖2所示:
圖2 世博文章推薦比例
分析結(jié)果可知本文提出的用戶興趣模型可以優(yōu)先推薦用戶興趣度大的文章,符合用戶興趣分布。
本文在前人研究的基礎(chǔ)上,對(duì)VSM 模型做了拓展,引入了興趣度IR的概念,采用興趣度來表征用戶對(duì)于網(wǎng)頁內(nèi)容的喜好程度。在計(jì)算用戶對(duì)某一網(wǎng)頁的興趣度時(shí),提出了一種可量化的基于隱式反饋信息的興趣度評(píng)價(jià)算法,能夠較為準(zhǔn)確地計(jì)算出用戶對(duì)網(wǎng)頁的喜好程度。
在未來的工作中,將考慮興趣的轉(zhuǎn)移特性并引入興趣模型的反饋模塊,更有效地對(duì)建立的興趣模型進(jìn)行優(yōu)化,使最終的興趣模型更貼近用戶的真實(shí)興趣。同時(shí),在構(gòu)建VSM向量時(shí),考慮引入語義算法,合并一些同義詞,提高每個(gè)興趣向量的價(jià)值,進(jìn)一步優(yōu)化興趣模型的準(zhǔn)確性和計(jì)算效率。
[1]Zhao ZY,Feng SZ.Mining User's Interest from Interactive Behaviors in QA System[C].2009 First International Workshop on Education Technology and Computer Science.
[2]Debajyoti M,Ruma D,Anirban K,Rana D.A Product Recommendation System Using Vector Space Model and Association Rule[C].International Conference on Information Technology,2008.
[3]李峰,裴軍,游之洋.基于隱式反饋的自適應(yīng)用戶興趣模型[J].計(jì)算機(jī)工程與應(yīng)用,2008,44(9):76-79.
[4]Jehwan O,Seunghwa L,Eunseok L.A User Modeling using Implicit Feedback for Effective Recommender System[C].International Conference on Convergence and Hybrid Information Technology 2008.
[5]張彥,張永奎,安增波,王鵬.基于層次概念的用戶興趣模型研究[J].計(jì)算機(jī)工程與設(shè)計(jì),2008,29(1):181-183