許貝貝, 王文生, 郭雷風(fēng)
(中國農(nóng)業(yè)科學(xué)院農(nóng)業(yè)信息研究所,北京 100081)
目前,推薦系統(tǒng)較成熟地應(yīng)用于電子商務(wù)領(lǐng)域的網(wǎng)站如全球最大的網(wǎng)上書店亞馬遜、淘寶等[1-2],而作為一個(gè)農(nóng)業(yè)大國,與農(nóng)業(yè)息息相關(guān)的農(nóng)資電子商務(wù)網(wǎng)站卻很少應(yīng)用推薦系統(tǒng),如果用戶在購買農(nóng)資時(shí)能得到相關(guān)的產(chǎn)品推薦,將會(huì)為用戶帶來極大的便利,提高其購買滿意度。
調(diào)研得知,當(dāng)前一些農(nóng)資電子商務(wù)網(wǎng)站雖然也具備推薦功能,但僅僅是對(duì)熱點(diǎn)農(nóng)資的推薦,與用戶的相關(guān)性較弱,未能結(jié)合用戶的興趣和瀏覽歷史記錄等進(jìn)行推薦,不能滿足用戶的個(gè)性化需求。
推薦系統(tǒng)的研究關(guān)鍵就在于推薦算法,推薦算法中應(yīng)用較多的是協(xié)同過濾推薦算法和基于內(nèi)容的推薦算法[3]?;趨f(xié)同過濾的推薦算法是成功的個(gè)性化推薦技術(shù),該算法根據(jù)用戶過去的喜好和其他興趣相似的用戶的選擇給該用戶推薦事物或根據(jù)用戶過去發(fā)生的行為為用戶推薦和過去相似的事物[4];基于內(nèi)容的推薦算法提取事物的特點(diǎn)和屬性,同時(shí)利用記錄構(gòu)建用戶的偏好模型,將用戶興趣與事物進(jìn)行匹配為用戶進(jìn)行推薦。但每種算法均有一定的局限性,表1為推薦算法的優(yōu)缺點(diǎn)總結(jié)。
因此,本研究基于上述2種算法,結(jié)合用戶興趣偏好的特點(diǎn),運(yùn)用切換混合算法[8],利用用戶相似度改進(jìn)協(xié)同過濾算法中的“冷啟動(dòng)”問題,采用內(nèi)容相似度的方法彌補(bǔ)協(xié)同過濾算法中“稀疏性”問題[9],同時(shí)也解決了單獨(dú)使用協(xié)同過濾或基于內(nèi)容的算法推薦較為單一的問題。
改進(jìn)的協(xié)同過濾算法是在切換混合算法[8]的基礎(chǔ)上分2個(gè)部分進(jìn)行:一是為解決協(xié)同過濾算法中冷啟動(dòng)問題的基于用戶相似度的推薦算法,包括基于用戶關(guān)注類別的相似度計(jì)算模塊和搜索最近鄰用戶瀏覽的農(nóng)資模塊;二是內(nèi)容向量模型補(bǔ)充的協(xié)同過濾算法[9],其包括構(gòu)建基于時(shí)間評(píng)分的用戶-農(nóng)資信息評(píng)分矩陣模塊、逆向最大匹配中文分詞模塊、TF-IDF方法模塊、構(gòu)建用戶瀏覽興趣特征模型模塊、基于用戶的最近鄰居推薦生成等模塊。圖1所示為算法的流程圖。
表1 推薦算法的優(yōu)缺點(diǎn)總結(jié)
1.2.1 基于用戶相似度的推薦算法 為解決新用戶在初始階段面臨冷啟動(dòng)問題而無法直接利用協(xié)同過濾等算法進(jìn)行推薦,本研究提取新用戶設(shè)置的關(guān)注農(nóng)資類別建立用戶特征向量模型,計(jì)算用戶之間的相似度,最后將與其相似度較高的用戶購買過的和瀏覽過的農(nóng)資產(chǎn)品推薦給該用戶。具體計(jì)算過程如下:
首先對(duì)用戶的特征建立空間向量模型
user={f1,f2,f3,f4,…,fn}。
(1)
式中:fn表示用戶關(guān)注的農(nóng)資產(chǎn)品類別。
其次采用如下公式計(jì)算用戶的相似度
(2)
式中:sim(a,b)表示用戶a與b之間的相似度,其數(shù)值越大說明兩者越差異越??;N(a,b)表示a與b共同關(guān)注的農(nóng)資產(chǎn)品類別的數(shù)量;Na表示a關(guān)注的農(nóng)資產(chǎn)品類別的數(shù)量;Nb表示b關(guān)注的農(nóng)資產(chǎn)品類別的數(shù)量。
最后根據(jù)計(jì)算出的用戶的相似度進(jìn)行排序,檢索相似度較高的用戶購買過或?yàn)g覽過的農(nóng)資產(chǎn)品結(jié)果集X推薦給該新用戶。
1.2.2 內(nèi)容向量模型補(bǔ)充的推薦算法 對(duì)于有瀏覽農(nóng)資信息記錄的用戶,采用基于內(nèi)容的向量模型補(bǔ)充的協(xié)同過濾算法,具體的流程如下。
1.2.2.1 構(gòu)建基于時(shí)間評(píng)分的用戶-農(nóng)資產(chǎn)品信息評(píng)分矩陣 在農(nóng)資產(chǎn)品信息的瀏覽過程中,并不能通過類似于電影打分機(jī)制評(píng)定一篇農(nóng)資產(chǎn)品信息的好壞,而瀏覽時(shí)間卻能很好地體現(xiàn)一篇農(nóng)資產(chǎn)品信息對(duì)于用戶的吸引程度。所以引入時(shí)間評(píng)分制度來設(shè)定用戶對(duì)瀏覽的農(nóng)資產(chǎn)品信息的評(píng)分:
(3)
由公式3可構(gòu)造出用戶-農(nóng)資產(chǎn)品信息評(píng)分矩陣Um×n
(4)
式中:m表示用戶個(gè)數(shù);n表示農(nóng)資產(chǎn)品信息的序數(shù);Rm,n表示用戶m對(duì)農(nóng)資產(chǎn)品信息n的評(píng)分。越接近5,表示該用戶對(duì)這篇農(nóng)資產(chǎn)品信息越感興趣;0表示該用戶并未瀏覽過此農(nóng)資產(chǎn)品信息。
1.2.2.2 逆向最大匹配中文分詞 逆向最大匹配中文分詞算法[10]是一種基于詞典的快速分詞算法,在保證分詞精確度的情況下大幅提高了詞典加載和分詞的效率,圖2為具體步驟。
1.2.2.3 TF-IDF TF-IDF[11]是信息檢索領(lǐng)域的成熟技術(shù),表示詞頻和反文檔頻率。在TF-IDF模型中,文檔表示為算出的TF-IDF值向量。
通過逆向最大匹配中文分詞方法以及TF-IDF方法將一篇農(nóng)資產(chǎn)品信息轉(zhuǎn)化為一個(gè)特征向量模型。即:
Zi={(T1,Xi,1),(T2,Xi,2),…,(TN,Xi,N)}。
(5)
式中:(YN,Xi,N)表示第N個(gè)特征,Zi表示第i篇農(nóng)資產(chǎn)品信息的TF-IDF值向量。
1.2.2.4 構(gòu)建用戶特征模型,并構(gòu)建相似度矩陣 基于公式(4)與農(nóng)資產(chǎn)品信息構(gòu)建出來的TF-IDF特征空間向量模型,將公式(5)中的每一行轉(zhuǎn)換為針對(duì)每一位用戶的瀏覽信息特征模型。以公式4中第1行為例:
[R1,1,R1,2,…R1,n]。
對(duì)于同一用戶,將農(nóng)資產(chǎn)品信息的序數(shù)變?yōu)榱?,每一篇農(nóng)資產(chǎn)品信息的特征空間向量為行,并都與其值匹配。
計(jì)算用戶i對(duì)于某個(gè)特征N的興趣偏好程度Ai,TN:
(6)
式中:i表示用戶編號(hào);TN表示第N個(gè)特征;s(TN)表示用戶i評(píng)價(jià)過的具有TN的農(nóng)資產(chǎn)品信息的TN的TF-IDF值與其評(píng)分Ri,j的乘積之和;num(n)為用戶i評(píng)價(jià)過的具有TN的農(nóng)資產(chǎn)品信息的篇數(shù);s(i)所有特征的TF-IDF值與其農(nóng)資產(chǎn)品信息評(píng)分Ri,j的乘積之和;num(i)為用戶i所有評(píng)論過的信息的篇數(shù)。
通過以上變換,將用戶特征向量模型表示為
Di={(T1,Ai,T1),(T2,Ai,T2)…(TN,Ai,TN)};而農(nóng)資產(chǎn)品信息的特征向量模型表示為:
Zi={(T1,Xi,1),(T2,Xi2)…TN,Xi,N};通過Di與Zi,得出它們之間的相似度
(7)
根據(jù)所得到的相似度,歸一化處理(即將其中的最大值化為1)后構(gòu)造出相似度矩陣
(8)
1.2.2.5 構(gòu)建新的用戶-農(nóng)資產(chǎn)品信息評(píng)分矩陣 公式(8)相似度矩陣與公式(4)用戶-農(nóng)資產(chǎn)品信息評(píng)分矩陣通過以下規(guī)則合并:
(9)
合成出新的用戶-農(nóng)資產(chǎn)品信息評(píng)分矩陣:
(10)
1.2.2.6 基于用戶的最近鄰居推薦 給定一個(gè)評(píng)分?jǐn)?shù)據(jù)集和當(dāng)前(活躍)對(duì)象的ID作為輸入,找出與當(dāng)前對(duì)象過去評(píng)分相似的對(duì)象,這些對(duì)象稱為最近鄰。最近鄰的確定方法通用的是Pearson相關(guān)系數(shù)[12]。
設(shè)用戶a的最近鄰居集合用NNa表示,則a對(duì)農(nóng)資產(chǎn)品信息k的預(yù)測評(píng)分Ca,k可由a的最近鄰居集合NNa對(duì)農(nóng)資產(chǎn)品信息的評(píng)分得到,計(jì)算方法如公式(12)所示:
(11)
(12)
1.2.2.7 判斷是否有瀏覽記錄 如果沒有瀏覽記錄,結(jié)果集X即為推薦集M;如果有瀏覽記錄,則按照X∶Y=A∶B比重生成推薦集N。其中X表示無瀏覽記錄時(shí)直接得到的結(jié)果集,Y表示有瀏覽記錄時(shí)根據(jù)得到的結(jié)果集,A∶B表示X與Y的比例結(jié)果。
本研究共選取60名用戶利用爬蟲軟件進(jìn)行追蹤調(diào)查,挑選100篇合適的農(nóng)資產(chǎn)品信息作為信息數(shù)據(jù)庫,同時(shí)建立1個(gè)小型特征詞典,并記錄事先已有瀏覽信息的15名用戶。將其余45名用戶分為3組,分別使用本研究算法、協(xié)同過濾算法和基于內(nèi)容的算法進(jìn)行農(nóng)資產(chǎn)品推薦[13],以下詳細(xì)說明本研究算法過程。列舉部分新用戶關(guān)注的農(nóng)資產(chǎn)品類別見表2。
表2 新用戶關(guān)注的農(nóng)資產(chǎn)品類別
對(duì)于基于用戶相似度的推薦,首先利用新用戶關(guān)注的農(nóng)資產(chǎn)品類別計(jì)算用戶的相似度,表2中1、3、5號(hào)有歷史瀏覽信息,而2、4、6號(hào)沒有。以2號(hào)推薦為例,使用公式(2)計(jì)算與其他用戶的相似度,結(jié)果如下:
2號(hào)與1號(hào)的相似度sim(2,1)=0.14;2號(hào)與3號(hào)的相似度sim(2,3)=0.07;2號(hào)與4號(hào)的相似度sim(2,4)=0.21;2號(hào)與5號(hào)的相似度sim(2,5)=0.14;2號(hào)與6號(hào)的相似度sim(2,6)=0.29。
根據(jù)相似度的高低排序,檢索相似度較高的用戶瀏覽過的或購買過的農(nóng)資產(chǎn)品為該用戶推薦得到結(jié)果集合M。
為每名用戶在結(jié)果集合M中選取推薦10份農(nóng)資產(chǎn)品信息,通過記錄每位用戶瀏覽每篇農(nóng)資產(chǎn)品信息的時(shí)間利用公式(3)得到用戶-農(nóng)資產(chǎn)品信息評(píng)分矩陣,部分記錄見表3。
表3 用戶-農(nóng)資產(chǎn)品信息評(píng)分矩陣
通過小型特征詞典利用逆向最大匹配中文分詞算法,為100份農(nóng)資產(chǎn)品信息構(gòu)建特征向量模型,并與表3構(gòu)建出用戶瀏覽信息特征模型,部分結(jié)果見表4。
表4 用戶瀏覽信息特征模型
根據(jù)公式(5)計(jì)算出該用戶特征向量模型并進(jìn)行歸一化處理后得到表5。利用公式(6)和公式(7)構(gòu)造出相似度矩陣如表6。將表3與表6利用公式(9)和(10)合成出新的用戶-農(nóng)資產(chǎn)品信息評(píng)分矩陣表7。最后利用公式(11)和公式(12)得到推薦結(jié)果集Y,按X和Y的比值取數(shù)值最高的前10份農(nóng)資信息推薦給用戶2。
表5 用戶特征向量模型
表6 相似度矩陣
表7 新的用戶-農(nóng)資產(chǎn)品信息評(píng)分矩陣
另外2組用戶分別按照基于內(nèi)容的推薦算法與基于用戶的協(xié)同過濾算法為其推薦15份農(nóng)資信息,本研究不作詳述。
本研究采用推薦的準(zhǔn)確率評(píng)價(jià)推薦效果,即用戶對(duì)推薦的農(nóng)資產(chǎn)品信息是否加入購物車或購買。3種算法的準(zhǔn)確率統(tǒng)計(jì)如圖3所示。結(jié)果表明,本研究改進(jìn)的推薦算法有效率為83%,協(xié)同過濾算法的有效率為77%,基于內(nèi)容的推薦算法的有效率為63%。試驗(yàn)表明本算法提高了推薦精度及推薦的有效率。
本研究提出的運(yùn)用切換式的混合推薦算法,根據(jù)是否有瀏覽記錄分別采用不同的算法,解決了傳統(tǒng)算法中冷啟動(dòng)與稀疏性問題。由于得到的數(shù)據(jù)有限,本算法還存在一些問題,如在構(gòu)建基于時(shí)間評(píng)分的用戶-農(nóng)資產(chǎn)品信息評(píng)分矩陣中時(shí)間評(píng)分系統(tǒng)的參數(shù)須再進(jìn)一步研究,試驗(yàn)的數(shù)據(jù)量也不是特別多,這些也都是下一步改善研究的重點(diǎn)。