王 飛 張 玲 王繼民
(河海大學(xué)計(jì)算機(jī)與信息學(xué)院 江蘇 南京 210098)
水利門(mén)戶網(wǎng)站是水利部門(mén)進(jìn)行水利信息資源整合、發(fā)布,為公眾提供信息和服務(wù)的平臺(tái)。如今,水利門(mén)戶網(wǎng)站已成為廣大人民群眾感知以及獲取水利門(mén)戶信息和公共服務(wù)的有效平臺(tái)。目前,水利門(mén)戶網(wǎng)站主要按照信息時(shí)間先后順序以及重要度等展現(xiàn)信息,其存在以下問(wèn)題:
(1) 發(fā)布形式單一,缺乏靈活性。網(wǎng)站向所有用戶提供相同信息,未考慮用戶偏好,缺乏靈活性。
(2) 用戶查找信息難度大。用戶在瀏覽網(wǎng)站時(shí),通常會(huì)根據(jù)需求在網(wǎng)站上查找門(mén)戶信息。然而,隨著水利門(mén)戶信息的不斷增多,用戶查找目標(biāo)信息的難度不斷增加。
(3) 用戶易錯(cuò)過(guò)重要的水利門(mén)戶信息。水利門(mén)戶網(wǎng)站經(jīng)常對(duì)洪澇旱災(zāi)、臺(tái)風(fēng)等災(zāi)害情況進(jìn)行介紹和預(yù)報(bào)等,信息量的增多使得用戶易錯(cuò)失重大災(zāi)害的預(yù)警預(yù)報(bào)信息。
個(gè)性化推薦是一種能夠幫助用戶快速獲取有價(jià)值信息的技術(shù)[1],推薦系統(tǒng)通過(guò)分析用戶歷史行為建立用戶興趣模型向用戶推薦滿足其興趣的信息[2]。目前,國(guó)內(nèi)外對(duì)于推薦技術(shù)已經(jīng)進(jìn)行了深入的研究,但推薦技術(shù)在水利門(mén)戶網(wǎng)站上應(yīng)用很少。將推薦技術(shù)應(yīng)用到水利門(mén)戶網(wǎng)站,能讓人們有針對(duì)地及時(shí)了解感興趣的水利業(yè)務(wù),提高對(duì)自然災(zāi)害認(rèn)知和防范能力。
推薦技術(shù)主要有基于內(nèi)容的推薦[3-4]、協(xié)同過(guò)濾推薦[5-6]、基于關(guān)聯(lián)規(guī)則的推薦[7-8]、混合推薦[9-10]等?;趦?nèi)容的推薦根據(jù)用戶的歷史行為建立用戶興趣向量,根據(jù)信息特征建立信息特征向量以及信息之間的相似度量,最后將最相似的k個(gè)信息推薦給用戶?;谟脩舻膮f(xié)同過(guò)濾推薦根據(jù)用戶的興趣偏好尋找相似用戶,將相似用戶喜歡的信息推薦給當(dāng)前用戶?;陉P(guān)聯(lián)規(guī)則的推薦以數(shù)據(jù)挖掘?yàn)榛A(chǔ),從中得出不同物品的關(guān)聯(lián)性,利用這些關(guān)聯(lián)性對(duì)用戶進(jìn)行物品的推薦?;旌贤扑]是根據(jù)當(dāng)前系統(tǒng)的性能需求將不同的推薦技術(shù)結(jié)合起來(lái)的方法。
在以上主要推薦技術(shù)的基礎(chǔ)上,不同研究者加入時(shí)間以及地理等因素進(jìn)一步提升推薦的性能。Li等[11]將用戶興趣劃分為長(zhǎng)期興趣和短期興趣,提出了基于時(shí)間變化的新聞推薦模型。陶永才等[12]提出了基于地理位置的個(gè)性化新聞混合推薦方法,使用聚類算法獲取用戶閱讀新聞?shì)^多的地理位置及在相應(yīng)位置閱讀的新聞集合,分析用戶在不同位置的長(zhǎng)、短期閱讀興趣。吳運(yùn)強(qiáng)[13]研究基于用戶興趣和地理位置的個(gè)性化推薦,在推薦算法中加入地理位置因子,以調(diào)整推薦結(jié)果。當(dāng)前,將推薦技術(shù)應(yīng)用于水利門(mén)戶網(wǎng)站還存在以下問(wèn)題:
(1) 項(xiàng)目冷啟動(dòng)和用戶冷啟動(dòng)[14]。網(wǎng)站實(shí)時(shí)更新水利門(mén)戶信息,新的信息如果不被大量用戶閱讀將得不到有效推薦,當(dāng)新用戶瀏覽網(wǎng)站時(shí),因?yàn)闆](méi)有用戶歷史行為數(shù)據(jù),對(duì)新用戶的興趣無(wú)法準(zhǔn)確表達(dá)。
(2) 用戶行為數(shù)據(jù)稀疏[15]。隨著推薦規(guī)模的不斷增大,兩個(gè)用戶同時(shí)關(guān)注同一水利門(mén)戶信息的可能性越來(lái)越小,無(wú)法發(fā)現(xiàn)用戶之間的關(guān)聯(lián)性,無(wú)法實(shí)現(xiàn)推薦。
(3) 重點(diǎn)、熱點(diǎn)信息推送。水利部門(mén)根據(jù)時(shí)間和地理位置的變化業(yè)務(wù)會(huì)有所側(cè)重,如長(zhǎng)江流域的汛期重點(diǎn)是防洪,而珠江流域還要考慮防范臺(tái)風(fēng)。因此需要提高用戶對(duì)本地區(qū)當(dāng)前可能發(fā)生的與水利相關(guān)的重點(diǎn)問(wèn)題的認(rèn)知以及對(duì)突發(fā)狀況的防范意識(shí)。
針對(duì)以上問(wèn)題,本文提出基于混合策略的水利門(mén)戶信息推薦方法。建立時(shí)空敏感的熱點(diǎn)信息推薦模型,根據(jù)水利部門(mén)所在地理位置和所處時(shí)間的業(yè)務(wù)特點(diǎn),向所有用戶推薦熱點(diǎn)信息,解決冷啟動(dòng)和重點(diǎn)、熱點(diǎn)信息推薦的問(wèn)題。建立基于用戶和信息類別的協(xié)同過(guò)濾推薦模型,將用戶對(duì)水利門(mén)戶信息的興趣轉(zhuǎn)移到對(duì)門(mén)戶信息類別上,提高協(xié)同推薦中相似用戶的數(shù)量,解決用戶行為數(shù)據(jù)稀疏的問(wèn)題。建立混合推薦模型,將時(shí)空敏感的熱點(diǎn)信息推薦、用戶和信息類別的協(xié)同過(guò)濾推薦,以及基于內(nèi)容推薦的三種推薦列表線性加權(quán),生成最終的推薦列表。通過(guò)網(wǎng)絡(luò)爬蟲(chóng)和調(diào)查構(gòu)建實(shí)驗(yàn)數(shù)據(jù)集,驗(yàn)證了水利門(mén)戶信息混合推薦方法的有效性,并設(shè)計(jì)水利門(mén)戶信息推薦系統(tǒng)框架以及主要功能。
水利門(mén)戶信息推薦的總體框架如圖1所示。
圖1 水利門(mén)戶信息推薦總體框架
水利門(mén)戶信息推薦的總體流程包括:數(shù)據(jù)收集和預(yù)處理,水利門(mén)戶信息分類建模,水利門(mén)戶信息混合推薦。
(1) 水利門(mén)戶信息分類目錄。根據(jù)水利業(yè)務(wù)特征以及水利門(mén)戶信息自身特性將水利門(mén)戶信息劃分為水文信息、水資源信息、水環(huán)境水生態(tài)信息、水利工程信息、農(nóng)村水利信息、水災(zāi)害(防汛抗旱)信息、水土保持信息、水庫(kù)移民信息、政務(wù)信息、其他等10類。
(2) 推薦數(shù)據(jù)收集。針對(duì)某個(gè)水利門(mén)戶網(wǎng)站,為了增加可以推薦給用戶的信息,其信息庫(kù)中不但包含本網(wǎng)站發(fā)布的數(shù)據(jù),還可以通過(guò)網(wǎng)絡(luò)爬蟲(chóng),從互聯(lián)網(wǎng)(如流域、水文局的門(mén)戶網(wǎng)站等)獲取水利業(yè)務(wù)相關(guān)的信息,構(gòu)建完整的水利門(mén)戶信息庫(kù)。
(3) 分類數(shù)據(jù)標(biāo)注。從水利門(mén)戶信息庫(kù)中通過(guò)人工篩選提取部分信息組成門(mén)戶信息分類訓(xùn)練集,按照事先定義的水利門(mén)戶信息類別對(duì)文檔類別進(jìn)行人工標(biāo)注。采用中文分詞工具對(duì)分類文檔中的數(shù)據(jù)進(jìn)行分詞和去除停用詞等預(yù)處理。
(4) 水利門(mén)戶信息特征向量提取。對(duì)水利門(mén)戶信息數(shù)據(jù)分詞、去除停用詞,將其表示成能表征文本語(yǔ)義的詞語(yǔ)序列。對(duì)生成的詞語(yǔ)序列進(jìn)行主題模型訓(xùn)練以及關(guān)鍵詞提取,得到每個(gè)水利門(mén)戶信息主題特征權(quán)重向量和關(guān)鍵詞特征權(quán)重向量。
(1) 文檔類別特征提取。預(yù)處理后每個(gè)類別的特征詞語(yǔ)集詞數(shù)眾多,會(huì)造成維度的災(zāi)害,同時(shí)對(duì)分類也會(huì)有影響,因此需要進(jìn)行特征提取。本文利用CHI通過(guò)計(jì)算特征詞與類別之間的關(guān)聯(lián)度,提取出關(guān)聯(lián)程度高的特征作為文檔的特征[16]。CHI值越高,特征詞與類別之間的相關(guān)性越高,反之,則越小。特征詞tk對(duì)類ci的CHI計(jì)算為:
(1)
式中:N為訓(xùn)練集文檔總數(shù),N=A+B+C+D;A為包含特征詞tk且屬于類別ci的文檔次數(shù);B為包含特征詞tk但不屬于類別ci的文檔次數(shù);C為不包含特征詞tk但屬于類別ci的文檔次數(shù);D為不包含特征詞tk且不屬于類別ci的文檔次數(shù)。
詞條tk對(duì)于整個(gè)分類文檔的CHI值計(jì)算為:
(2)
式中:p(ci)表示樣本文檔屬于ci類的頻率;c表示類別總數(shù)。剔除低于某閾值的詞條,保留高于該閾值的詞條作為特征項(xiàng)。
(2) 水利門(mén)戶信息KNN分類器構(gòu)造。本文選擇KNN算法實(shí)現(xiàn)水利門(mén)戶信息分類,KNN算法在訓(xùn)練集中找出與待測(cè)文本最相似的k個(gè)文本,然后計(jì)算待測(cè)文本屬于每個(gè)類別的權(quán)重并將其分到權(quán)重最大的一類。門(mén)戶信息d屬于類別ci的權(quán)重P(d,ci)計(jì)算為:
(3)
式中:Kd為門(mén)戶信息d的關(guān)鍵詞特征向量;Kj為訓(xùn)練集文檔j的關(guān)鍵詞特征向量;sim(Kd,Kj)為門(mén)戶信息d與j之間的余弦相似度;k為訓(xùn)練集文檔的總數(shù);y(xj,ci)為類別屬性函數(shù),若j屬于類別ci,則置為1,反之,則置為0。選取出概率最高的作為該水利門(mén)戶信息的類別。
2.4.1基于用戶和信息類別的協(xié)同過(guò)濾推薦
由于水利門(mén)戶信息的閱讀量較低,在利用相似用戶進(jìn)行協(xié)同過(guò)濾時(shí),容易出現(xiàn)針對(duì)一個(gè)用戶無(wú)法找到與其閱讀過(guò)同樣信息的用戶,造成難以實(shí)現(xiàn)推薦。本文將用戶閱讀的水利門(mén)戶信息映射到其所屬類別,然后計(jì)算出用戶對(duì)門(mén)戶信息類別的興趣度,通過(guò)用戶對(duì)共同的門(mén)戶信息類別的興趣度來(lái)計(jì)算用戶之間的相似度。
(4)
式中:Pi為用戶對(duì)閱讀過(guò)的水利門(mén)戶信息文檔i的興趣度,設(shè)置為1;Wij為表示水利門(mén)戶信息文檔i是否屬于類別j,若屬于則Wij為1,反之則為0;n為用戶閱讀的門(mén)戶信息總數(shù)。
(2) 用戶-門(mén)戶信息類別興趣更新。隨著時(shí)間的推移,用戶對(duì)某一事物的興趣如果得不到加強(qiáng),就會(huì)呈現(xiàn)出衰減趨勢(shì)[17],本文利用式(5)的興趣衰減函數(shù)來(lái)表示用戶興趣衰減過(guò)程。
f(t)=e-λ(ttoday-tpre)
(5)
式中:ttoday為當(dāng)前日期;tpre為興趣值最近一次更新的日期;λ為系統(tǒng)預(yù)置參數(shù),決定著用戶興趣衰減的速率。
當(dāng)前興趣向量Iuc_today計(jì)算為:
Iuc_today=f(t)×Iuc_pre+Iuc
(6)
式中:Iuc_pre為上次更新后的用戶類別興趣度向量;Iuc為本次行為產(chǎn)生的類別興趣度向量。
(3) 用戶對(duì)門(mén)戶信息的興趣度評(píng)估。根據(jù)用戶-類別興趣度向量,利用余弦距離計(jì)算用戶之間的相似度。選出U個(gè)與當(dāng)前用戶喜好最接近的用戶,提取出這U個(gè)用戶閱讀過(guò)的所有信息,過(guò)濾用戶已經(jīng)觀看過(guò)的部分,計(jì)算用戶對(duì)剩余門(mén)戶信息的興趣度。同時(shí),水利門(mén)戶信息存在著時(shí)效性特點(diǎn),即隨著水利門(mén)戶信息發(fā)布日期與用戶閱讀日期間隔的增大,用戶對(duì)該水利門(mén)戶信息的興趣度也會(huì)不斷減小。因此在進(jìn)行推薦時(shí),用戶對(duì)水利門(mén)戶信息的興趣度同樣采用式(5)進(jìn)行時(shí)間上的降權(quán)處理,此時(shí)tpre表示信息發(fā)布的日期。
最終,用戶u對(duì)與其相似的用戶a所關(guān)注的門(mén)戶信息i的興趣度Iud(u,a,i)為:
Iud(u,a,i)=sim(u,a)×Iud(a,i)×f(t)
(7)
式中:sim(u,a)為用戶u與相似用戶a之間的相似度;Iud(a,i)為用戶a對(duì)其所閱讀過(guò)的門(mén)戶信息i的初始興趣度,設(shè)置為1;f(t)為時(shí)效性。
模型按興趣度對(duì)水利門(mén)戶信息排名,將排名前k的水利門(mén)戶信息推薦給用戶u。
2.4.2基于信息內(nèi)容的推薦
采用LDA主題模型[18-19]和向量空間模型[20]對(duì)用戶行為進(jìn)行特征表示,抽取出用戶的關(guān)鍵詞興趣向量和主題興趣向量,同時(shí)考慮用戶興趣衰減特點(diǎn),實(shí)現(xiàn)用戶興趣模型的構(gòu)建。
(1) 用戶主題興趣表示與更新。利用主題模型挖掘用戶當(dāng)天閱讀的水利門(mén)戶信息主題,并計(jì)算得到用戶對(duì)主題的興趣度向量Iut:
(8)
式中:Ti為用戶對(duì)閱讀過(guò)的水利門(mén)戶信息i的興趣度,設(shè)為1;Iud為用戶閱讀的門(mén)戶文檔中主題權(quán)值向量;n為用戶閱讀的總的水利門(mén)戶信息的篇數(shù)。
用戶主題興趣向量更新原理與2.4.1節(jié)的類別興趣向量的更新原理類似,最終生成用戶主題興趣向量Iut。
(2) 用戶關(guān)鍵詞興趣表示與更新。利用向量空間模型挖掘用戶關(guān)鍵詞興趣,使用TF-IDF進(jìn)行關(guān)鍵詞權(quán)值計(jì)算,得到用戶閱讀的水利門(mén)戶信息的關(guān)鍵詞權(quán)值,用戶關(guān)鍵詞興趣向量的表示以及更新與用戶主題興趣向量的表示以及更新方式類似,最終生成用戶關(guān)鍵詞興趣向量Iuk。
(3) 用戶對(duì)門(mén)戶信息的興趣度評(píng)估。分別采用余弦距離計(jì)算用戶主題興趣向量Iut與水利門(mén)戶信息主題特征向量T相似度以及用戶關(guān)鍵詞興趣向量Iuk與水利門(mén)戶信息關(guān)鍵詞特征向量K相似度。最終用戶對(duì)水利門(mén)戶信息興趣度為:
Iud(u,d)=α×sim(Iuk,Kd)+β×sim(Iut,Td)
(9)
式中:α和β用于調(diào)整兩種相似度之間的比例,α+β=1。
按照用戶對(duì)水利門(mén)戶信息文檔的興趣度排序,向用戶推薦前k個(gè)信息文檔。
2.4.3基于時(shí)空敏感的熱點(diǎn)信息推薦
水利業(yè)務(wù)具有很強(qiáng)的季節(jié)和地域特點(diǎn),為了解決推薦過(guò)程中用戶冷啟動(dòng)問(wèn)題以及提高用戶對(duì)本地區(qū)當(dāng)前可能發(fā)生災(zāi)害(如臺(tái)風(fēng)、山洪等)的認(rèn)識(shí),增強(qiáng)突發(fā)狀況的防范意識(shí),在推薦結(jié)果加入當(dāng)前熱點(diǎn)水利業(yè)務(wù)信息。基于時(shí)空敏感的水利門(mén)戶熱點(diǎn)信息推薦具體過(guò)程如下:
(1) 水利門(mén)戶網(wǎng)站根據(jù)其所處地理位置的不同季節(jié)的業(yè)務(wù)特點(diǎn),事先定義好不同時(shí)間的熱點(diǎn)水利門(mén)戶信息類別。
(2) 計(jì)算用戶對(duì)當(dāng)前熱點(diǎn)信息類別中水利門(mén)戶信息的興趣度,從流行度和時(shí)效兩個(gè)方面考慮用戶對(duì)熱點(diǎn)的興趣度。
水利門(mén)戶信息的流行度越高,表示大部分用戶對(duì)該水利門(mén)戶信息的興趣度越高,使用所有用戶對(duì)該水利門(mén)戶信息的點(diǎn)擊數(shù)來(lái)描述其流行度。用戶對(duì)水利門(mén)戶信息的興趣度會(huì)隨著時(shí)間衰減,因此在計(jì)算用戶對(duì)水利門(mén)戶信息興趣度時(shí)也采用式(5)進(jìn)行時(shí)間上的降權(quán)處理。最終得到用戶對(duì)熱點(diǎn)信息的興趣度為:
Iud=pi×f(t)
(10)
式中:Iud為用戶u對(duì)水利門(mén)戶信息d的最終興趣程度;Pi為所有用戶對(duì)當(dāng)前的熱點(diǎn)水利門(mén)戶信息i的點(diǎn)擊數(shù);f(t)為時(shí)效性。
按照用戶對(duì)水利門(mén)戶信息文檔的興趣度排序,向用戶推薦前k個(gè)信息文檔。
2.4.4基于線性組合的混合推薦
本文采用混合方式為用戶推薦水利門(mén)戶信息,其過(guò)程如圖2所示。
圖2 混合推薦流程
(1) 針對(duì)新用戶,采用基于時(shí)空敏感的熱點(diǎn)信息推薦。針對(duì)老用戶,將三種推薦的結(jié)果進(jìn)行線性加權(quán)組合,系數(shù)α、β、γ表示三種推薦方式的權(quán)重,初始權(quán)重為1 ∶1 ∶1。
(2) 線性組合權(quán)重更新。當(dāng)用戶對(duì)推薦信息產(chǎn)生點(diǎn)擊行為,根據(jù)用戶對(duì)三種推薦方式推薦的信息實(shí)際點(diǎn)擊個(gè)數(shù)與總點(diǎn)擊個(gè)數(shù)比值對(duì)權(quán)值進(jìn)行調(diào)整,新的比例設(shè)置為countuser∶countcontent∶counthot,并對(duì)比例進(jìn)行標(biāo)準(zhǔn)化。countuser為用戶對(duì)基于用戶和信息類別協(xié)同過(guò)濾推薦結(jié)果的點(diǎn)擊次數(shù),countcontent為用戶對(duì)基于內(nèi)容的推薦結(jié)果的點(diǎn)擊次數(shù),counthot為用戶對(duì)基于熱點(diǎn)信息推薦結(jié)果的點(diǎn)擊次數(shù)。
利用網(wǎng)絡(luò)爬蟲(chóng)從一些重要的水利門(mén)戶網(wǎng)站爬取信息,作為水利門(mén)戶信息分類和信息推薦的實(shí)驗(yàn)數(shù)據(jù),并對(duì)用于分類的門(mén)戶信息進(jìn)行手工標(biāo)注。通過(guò)調(diào)查記錄普通用戶和水利行業(yè)專業(yè)人員在2018年7月不定期訪問(wèn)指定網(wǎng)站的行為數(shù)據(jù),由于7月份的水災(zāi)害相關(guān)信息關(guān)注度比較高,因此設(shè)置水利門(mén)戶的熱點(diǎn)信息類別為水災(zāi)害,混合推薦中三種方法結(jié)果的初始比例為1 ∶1 ∶1。采用準(zhǔn)確率、召回率、F1-score值[21]指標(biāo),將單獨(dú)的基于用戶和信息類別的推薦、基于內(nèi)容的推薦、基于時(shí)間和地理位置的熱點(diǎn)信息推薦,以及混合推薦的結(jié)果進(jìn)行比較。
(1) 水利門(mén)戶信息數(shù)據(jù)收集和預(yù)處理。通過(guò)網(wǎng)絡(luò)爬蟲(chóng)從中華人民共和國(guó)水利部、珠江水利委員會(huì)、長(zhǎng)江水利委員會(huì)、黃河水利委員會(huì)的官方網(wǎng)站,以及城市水資源環(huán)境網(wǎng)等門(mén)戶上獲取各種水利門(mén)戶信息,總共5 407條,手工篩選分類信息文檔,并按照10個(gè)信息類別對(duì)數(shù)據(jù)進(jìn)行手工標(biāo)記,每類300條信息,總共3 000個(gè)文檔組成分類訓(xùn)練集。
(2) 用戶行為數(shù)據(jù)收集和預(yù)處理。采用調(diào)查的方式記錄用戶的行為過(guò)程,選取100名普通用戶和水利專業(yè)人員,讓其2018年7月份不定期瀏覽中華人民共和國(guó)水利部、珠江水利委員會(huì)、長(zhǎng)江水利委員會(huì)、黃河水利委員會(huì)的官方網(wǎng)站,最終得到100名用戶一個(gè)月的瀏覽記錄。將一個(gè)月總瀏覽行為少于30篇的用戶去除,最終整理得到86個(gè)用戶對(duì)于698條水利門(mén)戶信息的4 234條行為數(shù)據(jù),將每個(gè)用戶的時(shí)間最新的15篇瀏覽記錄提取出作為測(cè)試集,剩下的作為訓(xùn)練集。
本文利用準(zhǔn)確率、召回率、F1-score值來(lái)評(píng)價(jià)實(shí)驗(yàn)結(jié)果,其中:R(u)指通過(guò)推薦算法生成的推薦列表;T(u)指用戶實(shí)際點(diǎn)擊的所有水利門(mén)戶信息。
準(zhǔn)確率(Precision):指推薦的所有信息中用戶感興趣的比率,即生成的推薦列表中用戶點(diǎn)擊并閱讀的水利門(mén)戶信息數(shù)量與總的推薦的信息數(shù)量的比率。
(11)
召回率(Recall):推薦的信息中用戶感興趣的信息占用戶感興趣的所有的信息的比率,即生成的推薦列表中用戶點(diǎn)擊并閱讀的水利門(mén)戶信息數(shù)量與用戶實(shí)際點(diǎn)擊的所有信息的比率。
(12)
F1-score值:準(zhǔn)確率和召回率的調(diào)和平均值,能綜合地反映整體指標(biāo)。
(13)
(1) 門(mén)戶信息KNN分類模型參數(shù)。利用手工標(biāo)注的水利門(mén)戶信息建立KNN分類模型需要確定信息的特征維數(shù),實(shí)驗(yàn)中,選擇Python版本的jieba分詞工具進(jìn)行文本分詞,使用哈工大停用詞表、四川大學(xué)機(jī)器學(xué)習(xí)智能實(shí)驗(yàn)停用詞庫(kù)、百度停用詞庫(kù)去除停用詞,使用CHI進(jìn)行特征詞提取,最后使用KNN算法作為文本分類算法,結(jié)果如圖3所示。
圖3 F1-score隨特征維數(shù)變化規(guī)律
圖3顯示了k=10時(shí),在特征維數(shù)m=200、400、600、800、1 000、1 500、2 000時(shí)F1-score的變化。可以看出,在特征維數(shù)m=400時(shí),分類效果趨于穩(wěn)定,且在m=600時(shí),分類效果最佳,分類的F1-score最高可達(dá)到0.825。
(2) 基于信息內(nèi)容的推薦中主題T的數(shù)量。在基于信息內(nèi)容的推薦實(shí)驗(yàn)中,進(jìn)行主題模型和TF-IDF權(quán)值計(jì)算,設(shè)置時(shí)效性衰減參數(shù)為0.2,興趣衰減函數(shù)參數(shù)為0.05。LDA模型訓(xùn)練中,先驗(yàn)參數(shù)α=50/Tnum,β=0.01。關(guān)鍵字權(quán)重和主題權(quán)重按照1 ∶1設(shè)置。分析了在不同的推薦數(shù)量下,主題數(shù)量對(duì)F1-score值的影響。
圖4展示了推薦篇數(shù)在N=12,24,主題數(shù)目Tnum=10,20,30,40,50的情況下推薦的F1-score??梢钥闯?,隨著主題數(shù)目的不斷增多,推薦性能先增后減,且兩種情況下都是主題值設(shè)為T(mén)num=40時(shí),推薦性能最好。
圖4 主題數(shù)量對(duì)F1-score的影響
(3) 基于用戶和信息類別的協(xié)同過(guò)濾中相似用戶數(shù)?;谟脩艉托畔㈩悇e的協(xié)同過(guò)濾推薦中,首先要確定最佳的相似用戶數(shù),相似用戶過(guò)多會(huì)導(dǎo)致實(shí)驗(yàn)效果下降,相似用戶數(shù)過(guò)少會(huì)導(dǎo)致實(shí)驗(yàn)結(jié)果過(guò)于個(gè)人化。設(shè)置用戶的興趣衰減函數(shù)參數(shù)為0.05,水利門(mén)戶信息時(shí)效性衰減參數(shù)為0.2。表1顯示了推薦篇數(shù)N= 12,24,相似用戶數(shù)U= 5,10,15,20情況下的F1-score值??梢钥闯?,兩種情況下隨著相似用戶數(shù)的增多,推薦性能先增后減,在U= 10的情況下推薦效果最好。
表1 F1-score值隨相似用戶的增長(zhǎng)變化情況
(4) 混合推薦模式有效性驗(yàn)證。將水利門(mén)戶信息混合推薦模型(HRA)、基于用戶和信息類別的協(xié)同過(guò)濾推薦模型(UCCF)、基于信息內(nèi)容的推薦模型(CB)、基于時(shí)空敏感的熱點(diǎn)信息推薦模型(TSB)進(jìn)行實(shí)驗(yàn)對(duì)比,針對(duì)不同模型從準(zhǔn)確率(Precision)、召回率(Recall)和F1-score進(jìn)行分析。
圖5、圖6、圖7是推薦篇數(shù)分別為N=6,12,18,24,30,36的情況下的五種推薦方法的準(zhǔn)確率、召回率和F1-score??梢钥闯觯S著推薦篇數(shù)的增多,五種方法的準(zhǔn)確率不斷下降,召回率不斷上升,F(xiàn)1-score先上升后下降,在推薦篇數(shù)為24的情況下,整體推薦性能最好。HRA的F1-score最高達(dá)到了26.5%,相對(duì)于單一模式下的UCCF提升了3.9個(gè)百分點(diǎn),TSB提升了2.7個(gè)百分點(diǎn),CB提升了2.1個(gè)百分點(diǎn)。
圖5 五種推薦算法準(zhǔn)確率對(duì)比圖
圖6 五種推薦算法召回率對(duì)比圖
圖7 五種推薦算法F1-score對(duì)比圖
水利門(mén)戶信息推薦系統(tǒng)主要是為水利門(mén)戶網(wǎng)站提供推薦服務(wù),推薦系統(tǒng)可以直接訪問(wèn)水利門(mén)戶網(wǎng)站中的用戶行為數(shù)據(jù)以及水利門(mén)戶信息,同時(shí)從各大水利門(mén)戶網(wǎng)站爬取其他水利門(mén)戶信息,與服務(wù)網(wǎng)站的水利門(mén)戶信息共同組成推薦信息。將用戶行為數(shù)據(jù)、推薦信息、系統(tǒng)預(yù)設(shè)參數(shù)輸入推薦模型生成推薦列表,系統(tǒng)接收服務(wù)水利門(mén)戶網(wǎng)站傳遞的用戶id,將推薦結(jié)果通過(guò)Web Service接口返回該用戶。系統(tǒng)框架如圖8所示。
圖8 水利門(mén)戶信息推薦系統(tǒng)框架
水利門(mén)戶信息推薦系統(tǒng)分為如圖9所示的五大功能模塊:信息采集模塊、門(mén)戶信息管理模塊、用戶管理模塊、模型管理模塊、推薦服務(wù)模塊。
圖9 水利門(mén)戶信息推薦系統(tǒng)功能模塊
(1) 信息采集模塊:通過(guò)網(wǎng)絡(luò)爬蟲(chóng)實(shí)現(xiàn)對(duì)其他水利門(mén)戶網(wǎng)站數(shù)據(jù)的采集,將采集的水利門(mén)戶信息存入系統(tǒng)數(shù)據(jù)庫(kù)中,增加推薦的信息庫(kù)。系統(tǒng)管理員可以根據(jù)自身需求修改采集頻率、采集網(wǎng)站,同時(shí)可以刪除采集的信息,對(duì)采集信息的類別進(jìn)行修改以及按照時(shí)間或者類別查看信息。
(2) 門(mén)戶信息管理模塊:系統(tǒng)與其服務(wù)的水利門(mén)戶網(wǎng)站共享水利門(mén)戶信息,系統(tǒng)管理員可以按時(shí)間或者類別查看該信息。
(3) 用戶管理模塊:系統(tǒng)與其服務(wù)的水利門(mén)戶網(wǎng)站共享用戶行為數(shù)據(jù),管理員可以查看用戶行為數(shù)據(jù)以及查看根據(jù)該數(shù)據(jù)生成的用戶推薦列表。
(4) 模型管理模塊:當(dāng)系統(tǒng)中有新的水利門(mén)戶信息之后,就自動(dòng)調(diào)用訓(xùn)練好的分類Python腳本文件進(jìn)行水利門(mén)戶信息分類。系統(tǒng)按每天一次定時(shí)調(diào)用推薦腳本文件,為用戶推薦信息。管理員可根據(jù)自身需求調(diào)用不同的推薦模型實(shí)現(xiàn)推薦方式的修改。
(5) 推薦服務(wù)模塊:水利門(mén)戶信息推薦系統(tǒng)通過(guò)Web Sservice接口,向水利門(mén)戶網(wǎng)站提供推薦服務(wù),根據(jù)服務(wù)門(mén)戶網(wǎng)站提供的用戶id將本系統(tǒng)生成的推薦列表返回給水利門(mén)戶網(wǎng)站。接口設(shè)計(jì)如下:
public String GetRecommendationList(String user_id)
user_id表示傳遞的用戶編號(hào),根據(jù)用戶編號(hào),以.xml格式返回為每個(gè)用戶生成的推薦列表,包括水利門(mén)戶信息標(biāo)題、url,接口返回格式具體描述如下:
>
結(jié)點(diǎn)表示推薦操作返回的狀態(tài),VALUE屬性的值表示操作結(jié)果,若為200,則表示推薦成功,否則失敗,比如,系統(tǒng)運(yùn)行錯(cuò)誤等。
水利門(mén)戶網(wǎng)站是水利部門(mén)進(jìn)行水利信息資源整合、發(fā)布,為公眾提供信息和服務(wù)的平臺(tái)。目前,水利門(mén)戶網(wǎng)站按照信息發(fā)布時(shí)間的先后將信息展示到網(wǎng)站上。然而,在這種模式下,隨著門(mén)戶信息數(shù)量的不斷增多,用戶查找信息的難度不斷增加,同時(shí)容易錯(cuò)過(guò)重要的門(mén)戶信息。水利門(mén)戶信息混合推薦模型能有效解決推薦技術(shù)應(yīng)用到水利門(mén)戶網(wǎng)站上的冷啟動(dòng)問(wèn)題、數(shù)據(jù)稀疏性問(wèn)題,同時(shí),在推薦過(guò)程中,有針對(duì)性地提高用戶對(duì)本地區(qū)當(dāng)前可能發(fā)生的與水利相關(guān)的重點(diǎn)問(wèn)題的認(rèn)知、突發(fā)狀況的防范意識(shí)。