許貝貝, 王文生, 郭雷風
(中國農業科學院農業信息研究所,北京 100081)
目前,推薦系統較成熟地應用于電子商務領域的網站如全球最大的網上書店亞馬遜、淘寶等[1-2],而作為一個農業大國,與農業息息相關的農資電子商務網站卻很少應用推薦系統,如果用戶在購買農資時能得到相關的產品推薦,將會為用戶帶來極大的便利,提高其購買滿意度。
調研得知,當前一些農資電子商務網站雖然也具備推薦功能,但僅僅是對熱點農資的推薦,與用戶的相關性較弱,未能結合用戶的興趣和瀏覽歷史記錄等進行推薦,不能滿足用戶的個性化需求。
推薦系統的研究關鍵就在于推薦算法,推薦算法中應用較多的是協同過濾推薦算法和基于內容的推薦算法[3]。基于協同過濾的推薦算法是成功的個性化推薦技術,該算法根據用戶過去的喜好和其他興趣相似的用戶的選擇給該用戶推薦事物或根據用戶過去發生的行為為用戶推薦和過去相似的事物[4];基于內容的推薦算法提取事物的特點和屬性,同時利用記錄構建用戶的偏好模型,將用戶興趣與事物進行匹配為用戶進行推薦。但每種算法均有一定的局限性,表1為推薦算法的優缺點總結。
因此,本研究基于上述2種算法,結合用戶興趣偏好的特點,運用切換混合算法[8],利用用戶相似度改進協同過濾算法中的“冷啟動”問題,采用內容相似度的方法彌補協同過濾算法中“稀疏性”問題[9],同時也解決了單獨使用協同過濾或基于內容的算法推薦較為單一的問題。
改進的協同過濾算法是在切換混合算法[8]的基礎上分2個部分進行:一是為解決協同過濾算法中冷啟動問題的基于用戶相似度的推薦算法,包括基于用戶關注類別的相似度計算模塊和搜索最近鄰用戶瀏覽的農資模塊;二是內容向量模型補充的協同過濾算法[9],其包括構建基于時間評分的用戶-農資信息評分矩陣模塊、逆向最大匹配中文分詞模塊、TF-IDF方法模塊、構建用戶瀏覽興趣特征模型模塊、基于用戶的最近鄰居推薦生成等模塊。圖1所示為算法的流程圖。

表1 推薦算法的優缺點總結

1.2.1 基于用戶相似度的推薦算法 為解決新用戶在初始階段面臨冷啟動問題而無法直接利用協同過濾等算法進行推薦,本研究提取新用戶設置的關注農資類別建立用戶特征向量模型,計算用戶之間的相似度,最后將與其相似度較高的用戶購買過的和瀏覽過的農資產品推薦給該用戶。具體計算過程如下:
首先對用戶的特征建立空間向量模型
user={f1,f2,f3,f4,…,fn}。
(1)
式中:fn表示用戶關注的農資產品類別。
其次采用如下公式計算用戶的相似度
(2)
式中:sim(a,b)表示用戶a與b之間的相似度,其數值越大說明兩者越差異越小;N(a,b)表示a與b共同關注的農資產品類別的數量;Na表示a關注的農資產品類別的數量;Nb表示b關注的農資產品類別的數量。
最后根據計算出的用戶的相似度進行排序,檢索相似度較高的用戶購買過或瀏覽過的農資產品結果集X推薦給該新用戶。
1.2.2 內容向量模型補充的推薦算法 對于有瀏覽農資信息記錄的用戶,采用基于內容的向量模型補充的協同過濾算法,具體的流程如下。
1.2.2.1 構建基于時間評分的用戶-農資產品信息評分矩陣 在農資產品信息的瀏覽過程中,并不能通過類似于電影打分機制評定一篇農資產品信息的好壞,而瀏覽時間卻能很好地體現一篇農資產品信息對于用戶的吸引程度。所以引入時間評分制度來設定用戶對瀏覽的農資產品信息的評分:

(3)
由公式3可構造出用戶-農資產品信息評分矩陣Um×n
(4)
式中:m表示用戶個數;n表示農資產品信息的序數;Rm,n表示用戶m對農資產品信息n的評分。越接近5,表示該用戶對這篇農資產品信息越感興趣;0表示該用戶并未瀏覽過此農資產品信息。
1.2.2.2 逆向最大匹配中文分詞 逆向最大匹配中文分詞算法[10]是一種基于詞典的快速分詞算法,在保證分詞精確度的情況下大幅提高了詞典加載和分詞的效率,圖2為具體步驟。

1.2.2.3 TF-IDF TF-IDF[11]是信息檢索領域的成熟技術,表示詞頻和反文檔頻率。在TF-IDF模型中,文檔表示為算出的TF-IDF值向量。
通過逆向最大匹配中文分詞方法以及TF-IDF方法將一篇農資產品信息轉化為一個特征向量模型。即:
Zi={(T1,Xi,1),(T2,Xi,2),…,(TN,Xi,N)}。
(5)
式中:(YN,Xi,N)表示第N個特征,Zi表示第i篇農資產品信息的TF-IDF值向量。
1.2.2.4 構建用戶特征模型,并構建相似度矩陣 基于公式(4)與農資產品信息構建出來的TF-IDF特征空間向量模型,將公式(5)中的每一行轉換為針對每一位用戶的瀏覽信息特征模型。以公式4中第1行為例:
[R1,1,R1,2,…R1,n]。
對于同一用戶,將農資產品信息的序數變為列,每一篇農資產品信息的特征空間向量為行,并都與其值匹配。
計算用戶i對于某個特征N的興趣偏好程度Ai,TN:
(6)
式中:i表示用戶編號;TN表示第N個特征;s(TN)表示用戶i評價過的具有TN的農資產品信息的TN的TF-IDF值與其評分Ri,j的乘積之和;num(n)為用戶i評價過的具有TN的農資產品信息的篇數;s(i)所有特征的TF-IDF值與其農資產品信息評分Ri,j的乘積之和;num(i)為用戶i所有評論過的信息的篇數。
通過以上變換,將用戶特征向量模型表示為
Di={(T1,Ai,T1),(T2,Ai,T2)…(TN,Ai,TN)};而農資產品信息的特征向量模型表示為:
Zi={(T1,Xi,1),(T2,Xi2)…TN,Xi,N};通過Di與Zi,得出它們之間的相似度
(7)
根據所得到的相似度,歸一化處理(即將其中的最大值化為1)后構造出相似度矩陣
(8)
1.2.2.5 構建新的用戶-農資產品信息評分矩陣 公式(8)相似度矩陣與公式(4)用戶-農資產品信息評分矩陣通過以下規則合并:
(9)
合成出新的用戶-農資產品信息評分矩陣:
(10)
1.2.2.6 基于用戶的最近鄰居推薦 給定一個評分數據集和當前(活躍)對象的ID作為輸入,找出與當前對象過去評分相似的對象,這些對象稱為最近鄰。最近鄰的確定方法通用的是Pearson相關系數[12]。
設用戶a的最近鄰居集合用NNa表示,則a對農資產品信息k的預測評分Ca,k可由a的最近鄰居集合NNa對農資產品信息的評分得到,計算方法如公式(12)所示:
(11)
(12)

1.2.2.7 判斷是否有瀏覽記錄 如果沒有瀏覽記錄,結果集X即為推薦集M;如果有瀏覽記錄,則按照X∶Y=A∶B比重生成推薦集N。其中X表示無瀏覽記錄時直接得到的結果集,Y表示有瀏覽記錄時根據得到的結果集,A∶B表示X與Y的比例結果。
本研究共選取60名用戶利用爬蟲軟件進行追蹤調查,挑選100篇合適的農資產品信息作為信息數據庫,同時建立1個小型特征詞典,并記錄事先已有瀏覽信息的15名用戶。將其余45名用戶分為3組,分別使用本研究算法、協同過濾算法和基于內容的算法進行農資產品推薦[13],以下詳細說明本研究算法過程。列舉部分新用戶關注的農資產品類別見表2。

表2 新用戶關注的農資產品類別
對于基于用戶相似度的推薦,首先利用新用戶關注的農資產品類別計算用戶的相似度,表2中1、3、5號有歷史瀏覽信息,而2、4、6號沒有。以2號推薦為例,使用公式(2)計算與其他用戶的相似度,結果如下:
2號與1號的相似度sim(2,1)=0.14;2號與3號的相似度sim(2,3)=0.07;2號與4號的相似度sim(2,4)=0.21;2號與5號的相似度sim(2,5)=0.14;2號與6號的相似度sim(2,6)=0.29。
根據相似度的高低排序,檢索相似度較高的用戶瀏覽過的或購買過的農資產品為該用戶推薦得到結果集合M。
為每名用戶在結果集合M中選取推薦10份農資產品信息,通過記錄每位用戶瀏覽每篇農資產品信息的時間利用公式(3)得到用戶-農資產品信息評分矩陣,部分記錄見表3。

表3 用戶-農資產品信息評分矩陣
通過小型特征詞典利用逆向最大匹配中文分詞算法,為100份農資產品信息構建特征向量模型,并與表3構建出用戶瀏覽信息特征模型,部分結果見表4。

表4 用戶瀏覽信息特征模型
根據公式(5)計算出該用戶特征向量模型并進行歸一化處理后得到表5。利用公式(6)和公式(7)構造出相似度矩陣如表6。將表3與表6利用公式(9)和(10)合成出新的用戶-農資產品信息評分矩陣表7。最后利用公式(11)和公式(12)得到推薦結果集Y,按X和Y的比值取數值最高的前10份農資信息推薦給用戶2。

表5 用戶特征向量模型

表6 相似度矩陣

表7 新的用戶-農資產品信息評分矩陣
另外2組用戶分別按照基于內容的推薦算法與基于用戶的協同過濾算法為其推薦15份農資信息,本研究不作詳述。
本研究采用推薦的準確率評價推薦效果,即用戶對推薦的農資產品信息是否加入購物車或購買。3種算法的準確率統計如圖3所示。結果表明,本研究改進的推薦算法有效率為83%,協同過濾算法的有效率為77%,基于內容的推薦算法的有效率為63%。試驗表明本算法提高了推薦精度及推薦的有效率。

本研究提出的運用切換式的混合推薦算法,根據是否有瀏覽記錄分別采用不同的算法,解決了傳統算法中冷啟動與稀疏性問題。由于得到的數據有限,本算法還存在一些問題,如在構建基于時間評分的用戶-農資產品信息評分矩陣中時間評分系統的參數須再進一步研究,試驗的數據量也不是特別多,這些也都是下一步改善研究的重點。