張婉婷, 趙 敏
(上海理工大學(xué) 光電信息與計算機工程學(xué)院, 上海 200093)
隨著互聯(lián)網(wǎng)的廣泛應(yīng)用和迅猛發(fā)展,海量的信息也隨即涌現(xiàn),人們已經(jīng)進入信息過載的時代[1]。對于想要獲取信息的用戶,靠自己從龐大的數(shù)據(jù)中獲取需要的信息則存在相當(dāng)難度。此外,對于提供信息的一方,如何讓自己提供的信息受到用戶的關(guān)注,也并非易事。為此有眾多高校、研究機構(gòu)積極開展此項研究[2]。其中,推薦系統(tǒng)就是解決該問題的一項重要工具。推薦系統(tǒng)利用數(shù)據(jù)挖掘等相關(guān)的數(shù)據(jù)處理技術(shù),能根據(jù)用戶的歷史行為數(shù)據(jù),來自動生成用戶可能感興趣的信息,并將其推薦給用戶,最終為用戶提供個性化信息推薦服務(wù)[3]。
1995年,美國人工智能協(xié)會上首次提出了個性化推薦系統(tǒng)。隨后各大高校和研究部門開始對個性化推薦系統(tǒng)進行深入研究。與此同時,又陸續(xù)推出了多種推薦算法,其中,目前獲得較大成功、有著較為廣泛應(yīng)用的則是基于協(xié)同過濾的推薦算法[4]。
針對協(xié)同過濾推薦算法自身的問題(冷啟動和稀疏數(shù)據(jù)問題等)[5],學(xué)界提出了多種改進的方法。對于冷啟動問題,文獻[6]中給出了一種基于新用戶的冷啟動推薦方法。將用戶模型和信任/不信任網(wǎng)絡(luò)結(jié)合,以此來識別值得信任的用戶,取得了較好的效果。對于稀疏數(shù)據(jù)問題,文獻[7]將貝葉斯網(wǎng)絡(luò)引入到協(xié)同過濾當(dāng)中,并通過對網(wǎng)絡(luò)的進一步優(yōu)化,提高了系統(tǒng)的準確率[8]。對于協(xié)同過濾推薦算法存在的其他問題,韓林嶧等人[9]基于用戶之間的共同/不同特征,創(chuàng)建了新的相似度計算方法,并在基于K近鄰的協(xié)同過濾算法中得到應(yīng)用。
在協(xié)同過濾推薦算法基礎(chǔ)上,文獻[10]改進了協(xié)同過濾推薦算法,并比傳統(tǒng)方法的推薦準確度更高。即使用戶評分數(shù)據(jù)極端稀疏,推薦效果仍較好。另外,為了滿足不同用戶的多樣化需求,產(chǎn)生了多種混合的推薦算法。Girardi等人[11]通過將領(lǐng)域本體技術(shù)與協(xié)同過濾進行混合,并取得了理想的推薦效果。Vekariya等人[12]通過將知識和協(xié)同過濾相結(jié)合構(gòu)造混合推薦算法,不僅證明了該算法的有效性,而且取得了較好的效果。
在前人的思想上,本文主要通過基于物品的協(xié)同過濾推薦算法對法律資訊平臺建立個性化推薦系統(tǒng)。一個完整且完善的推薦系統(tǒng)通常具有用戶行為信息收集、用戶喜好模型建立和信息推薦等功能。
在推薦系統(tǒng)中,最重要的計算就是用戶-物品偏好二維矩陣運算。可以將某個用戶對所有物品的偏好作為一個向量,計算用戶之間的相似度,或?qū)⑺杏脩魧δ硞€物品的偏好作為一個向量,計算物品之間的相似度[13]。常用的相似度計算方法有:余弦相似度法、歐幾里德距離法和皮爾遜相關(guān)系數(shù)法。基于優(yōu)化思想的考慮,本文的法律資訊信息推薦系統(tǒng)采用皮爾遜相關(guān)系數(shù)法。
皮爾遜相關(guān)系數(shù)可表示兩變量間的線性相關(guān)程度。該系數(shù)取值-1到+1,越接近1或-1說明變量之間線性關(guān)系越強。如果一個變量增大,另一個變量也增大,則變量之間正相關(guān),相關(guān)系數(shù)大于0。如果一個變量增大,另一個變量卻減小,則變量之間負相關(guān),相關(guān)系數(shù)小于0。如果相關(guān)系數(shù)等于0,則表明變量之間不存在線性相關(guān)關(guān)系[14]。
皮爾遜相關(guān)系數(shù)計算公式為:
(1)

本文法律資訊信息推薦系統(tǒng)主要采用均方根誤差(RMSE)、平均絕對誤差(MAE)對系統(tǒng)進行評估,用來評估本文構(gòu)建的推薦系統(tǒng)的推薦質(zhì)量。對此可做研究分述如下。
(1)均方根誤差(RMSE)。可通過式(2)進行計算:
(2)
(2)平均絕對誤差(MAE)。可通過式(3)進行計算:

(3)

K-近鄰算法(KNN)的原理可表述為:特征空間中有k個最相鄰的樣本,當(dāng)某一個不知類別的樣本,與樣本中的大多數(shù)屬于同一個類別時,就認為該樣本也屬于這個類別,且該樣本也具有該類別的其它特征。K-近鄰算法在分類時,用與未知類別的樣本最鄰近的一個(或幾個)樣本的類別,來決定待分類樣本所屬的類別。
這里,給出該算法的執(zhí)行步驟詳述為:
(1)計算已知類別的樣本點與待分類樣本點之間的距離。
(2)對計算出的距離進行排序。
(3)確定與待分類樣本點距離最小的數(shù)個已知類別的樣本點。
(4)計算距離最小的數(shù)個樣本點所在類別的出現(xiàn)頻率。
(5)返回距離最小的數(shù)個樣本點中出現(xiàn)頻率最高的類別作為待分類樣本點的預(yù)測分類。
協(xié)同過濾主要依靠用戶歷史行為數(shù)據(jù)和屬性的相近性來實現(xiàn)個性化推薦服務(wù)。協(xié)同過濾不僅可以對喜好相近的用戶進行信息收集,還可以將有用的信息推送給其他相似用戶作為參考。常用的協(xié)同過濾方法有基于用戶(user-based)與基于物品(item-based)的協(xié)同過濾。本文是以某大型法律資訊網(wǎng)站提供的數(shù)據(jù)為基礎(chǔ)來構(gòu)建推薦系統(tǒng)。
基于用戶的協(xié)同過濾推薦方法是通過和目標用戶相似的用戶的興趣喜好來預(yù)測目標用戶的興趣偏好,并推薦目標用戶可能喜歡的物品[16]。該方法是以用戶訪問行為的相似性為基礎(chǔ),來推薦用戶可能感興趣的內(nèi)容和資源。依此建立的法律資訊信息推薦系統(tǒng)的基本思想是將與自己有相同或相似興趣偏好的用戶所喜歡的法律知識(網(wǎng)站)推薦給自己。
與基于用戶的推薦方法相反,基于物品的協(xié)同過濾推薦方法是根據(jù)用戶平時瀏覽過的一些法律知識(網(wǎng)站)及其喜好程度,通過計算各不同法律知識(網(wǎng)站)之間的線性相關(guān)程度,推薦給用戶與之前訪問法律知識(網(wǎng)站)相似的其它法律知識(網(wǎng)站)。
隨著互聯(lián)網(wǎng)的快速發(fā)展,網(wǎng)站用戶的數(shù)目也越來越龐大。考慮到基于用戶與基于物品的協(xié)同過濾的區(qū)別,在實際應(yīng)用中,計算用戶的興趣相似度矩陣越來越困難(例如龐大的稀疏矩陣)。運算的時間復(fù)雜度和空間時間復(fù)雜度呈指數(shù)增長。基于用戶的協(xié)同過濾方法不利于實際中的研究應(yīng)用,而且對推薦的結(jié)果也不能做出很好的解釋[17]。因此本文法律資訊信息推薦系統(tǒng)是在基于物品的協(xié)同過濾前提下進行研發(fā)的,主要是對法律咨詢中婚姻這一大類進行小類別的推薦。
該算法可以理解為,法律知識A和法律知識B具有很大的相似度,那么喜歡法律知識A的用戶也大都喜歡法律知識B。
研究可知,法律資訊信息推薦系統(tǒng)中基于物品的協(xié)同過濾推薦思路如圖1所示。由圖1可知,此方法的基本思想是把與用戶喜歡的法律知識(網(wǎng)站)相似度較高的其它法律知識(網(wǎng)站)推薦給用戶。

圖1 法律資訊信息推薦系統(tǒng)中基于物品的協(xié)同過濾推薦思想
Fig. 1 Item-based collaborative filtering recommendation in legal information recommendation system
基于物品的協(xié)同過濾推薦算法首先會收集用戶、物品信息。建立用戶興趣模型。計算目標物品與其他物品的相似度,并對相似度排序。然后根據(jù)推薦算法給用戶推薦和目標物品最相似的i個物品[18]。基于物品的協(xié)同過濾推薦算法中用戶u對物品n的感興趣程度的度量公式見如下:
(4)
其中,qNn表示物品n和目標物品N的相似度,duN表示用戶u對目標物品N的感興趣程度。
基于物品的協(xié)同過濾推薦算法的設(shè)計步驟可以描述為:
(1)計算目標物品與其他物品之間的相似度。
(2)根據(jù)用戶的歷史行為、物品間相似度的大小等生成推薦列表。
(1)數(shù)據(jù)預(yù)處理。數(shù)據(jù)預(yù)處理主要是對得到的用戶原始的瀏覽信息進行一定的處理,例如篩選、去除無用的信息等操作。本文采用的是某大型法律資訊網(wǎng)站提供的數(shù)據(jù),每一個用戶數(shù)據(jù)包括realId、fullURL、網(wǎng)頁標題、網(wǎng)站所屬法律知識的類別等。本次預(yù)處理操作包括篩選出訪問婚姻相關(guān)信息的用戶數(shù)據(jù)、刪除有殘缺的數(shù)據(jù)、把具有翻頁功能的網(wǎng)站還原到初始網(wǎng)頁等。
(2)用戶偏好程度設(shè)置。考慮到無法真實地獲知用戶對哪種法律知識比較關(guān)注(喜好),本文通過統(tǒng)計用戶對某一類法律知識網(wǎng)頁訪問的(不同)次數(shù)來作為用戶的關(guān)注(喜好)程度,并做歸一化處理。
(3)確定輸入數(shù)據(jù)模型。本次系統(tǒng)的建立是采用Python的surprise包,因此輸入數(shù)據(jù)模型將根據(jù)其內(nèi)部的要求采用如下數(shù)據(jù)模型,即:<用戶 id><物品 id><用戶偏好得分>。
(4)相似度矩陣計算。本文采用基于KNN算法的協(xié)同過濾推薦系統(tǒng),采用皮爾遜相關(guān)系數(shù)計算其相似度。
(5)得出推薦結(jié)果。根據(jù)某一用戶之前的訪問狀況給出某一類別法律知識,推薦給用戶可能關(guān)注的不同法律知識及網(wǎng)站。
法律資訊信息推薦系統(tǒng)以某大型法律資訊網(wǎng)站提供的數(shù)據(jù)為基礎(chǔ)。對法律知識中的婚姻資訊進行推薦系統(tǒng)的建立和實驗驗證。
以婚姻中“財產(chǎn)分割”為例,推薦給關(guān)注該法律知識的用戶5個相關(guān)的法律知識類別并列出相關(guān)的網(wǎng)站。
(1)法律資訊信息推薦系統(tǒng)推薦結(jié)果。見圖2。

圖2 法律資訊信息推薦系統(tǒng)的推薦結(jié)果
Fig. 2 Recommended results of the legal information recommendation system
由圖2可知,法律資訊信息推薦系統(tǒng)給出了與婚姻中“財產(chǎn)分割”相似度最高的五類法律知識及相關(guān)網(wǎng)站,即:“繼承法”、“撫養(yǎng)費”、“離婚訴訟”、“非婚生子女”和“哺乳期”。綜上內(nèi)容與“財產(chǎn)分割”相關(guān)性很高。
(2)法律資訊信息推薦系統(tǒng)評估參數(shù)。見圖3。

圖3 法律資訊信息推薦系統(tǒng)的評估參數(shù)
Fig. 3 Evaluation parameters of the legal information recommendation system
(3)法律資訊信息推薦系統(tǒng)評估結(jié)果。研究評估結(jié)果如圖4所示。

圖4 法律資訊信息推薦系統(tǒng)的評估結(jié)果
Fig. 4 Evaluation results of the legal information recommendation system
由圖2~圖4可知,法律資訊信息推薦系統(tǒng)為關(guān)注婚姻中“財產(chǎn)分割”的用戶推薦的結(jié)果,比較符合實際情況。此外,該系統(tǒng)在RMSE和MAE上也有較好的表現(xiàn)。
本文的法律資訊信息推薦系統(tǒng)是基于物品的協(xié)同過濾設(shè)計的個性化推薦系統(tǒng)。文中通過一系列設(shè)計研發(fā)步驟,最終取得了令用戶信服的仿真測試結(jié)果。
在整個算法研究過程中,考慮到用戶信息數(shù)據(jù)的龐大[19],本文只對法律知識中婚姻資訊進行推薦系統(tǒng)的建立和實驗驗證。雖然如此,系統(tǒng)運行速度仍然較慢,還要不斷改進算法,盡量使其運行得更快。此外,算法本身的數(shù)據(jù)稀疏問題、用戶興趣遷移問題等,也影響著推薦效果,這些均有待更進一步的研究去改進與完善。