【摘要】文章首先介紹了農資產品個性化推薦的背景和意義,然后介紹關于農資產品進行個性化推薦的技術,如粗糙集技術和ROCK聚類算法等,再然后對農資產品個性化推薦系統進行詳細的描述,最后對不足進行了總結。
【關鍵詞】個性化推薦;商品關鍵屬性;ROCK聚類算法;粗糙集
1.背景
現如今在茫茫如海的網絡信息中去尋找對自己有用的信息已經越來越難,為此個性化推薦技術應運而生,它能夠針對每一位用戶提供專屬于他自己的推薦信息,尤其是在商業上應用廣泛,時至今日幾乎所有大型的電子商務網站,如亞馬遜、京東商城和當當網等,都推出了個性化推薦服務[1],他們往往通過用戶的注冊信息、瀏覽記錄和消費記錄對每位用戶進行個性化推薦[2,3]。然而針對農村市場的電子商務網站現在還不多,對農村用戶的個性化推薦更是寥寥無幾,中國到目前為止還是一個農業大國,農村市場有著無限的潛力可以挖掘,縱然消費能力弱和物流條件差等可能是阻礙這一進程的原因,但是隨著國家對鄉鎮農業的持續大力支持,農業信息化的前景將更加廣闊,而針對農村市場建立相應的電子商務網站并對農村用戶進行個性化推薦勢必也將提上日程。農資信息網通過傳播農業技術知識、宣傳農業政策法規和提供農資產品的電子商務平臺等服務將成為服務農民、開拓農村市場的先行者[4]。在網站建設中如果將針對農村群體的個性化推薦技術加入其中,那么網站將會為那些知識較缺乏、信息較閉塞的廣大農村用戶提供更貼切、更周到的服務,將更符合用戶需求的信息和產品推薦給他們。
農村市場的農資用戶與普通的電子商務網站用戶在推薦模式上有著很大的區別。首先,普通的電子商務網站用戶是依照自己的興趣愛好、生活習慣和需求去瀏覽網頁并進行購物,所以針對他們的個性化推薦往往以興趣愛好作為首要因素;然而,對于農資用戶而言,興趣愛好并不是左右他們購買商品的原因,能否滿足他們的需求,也就是說東西好不好、實不實用才是影響其個性化推薦的主因,因此銷售后的回訪、評價往往對日后的推薦影響重大,然而由于農資產品的特色性質,它的驗證期往往很長,少則三個月多則一年,因此針對農資用戶建立推薦模型則需要時以年計的數據庫為依托,不可能迅速投入商業應用,所以應該利用線下銷售中得到的大量不完備信息進行整理,找到影響推薦的關鍵信息,才能使網站推薦系統投入商用[5]。第二,商品對用戶的吸引力往往不在于其本身所有的屬性,而在于該商品包含了某種或多種關鍵屬性,是這些關鍵屬性讓用戶了那些商品,所有我們將運用粗糙集技術去處理那些大量的不完備信息并簡約出商品的關鍵屬性。第三,由農民朋友日常的消費習慣得知,他們購買的農資產品時往往會借鑒周圍朋友的購買經驗,也就是說相同人群的人購買的商品也大致相同,所以ROCK聚類算法在這方面能夠提供很好的幫助,因為ROCK算法提出了鄰居概念,即:如果兩個消費者不僅它們本身相似,而且它們的鄰居也相似,則這兩個消費者很可能屬于同一個簇。
本文針對農資產品個性化推薦的特殊性建立了個性化推薦系統模型。
2.ROCK算法
ROCK(Robust Clustering Using Links)算法是一種凝聚的層次聚類算法,是由Guha等人在1999年提出的,適用于類別屬性[6]。
對于具有分類屬性的數據,傳統的聚類算法一般采用距離函數來度量數據對象間的相異度。然而,實驗表明這種距離度量方法對具有分類屬性的數據不能得到好的聚類結果。而且絕大多數聚類算法只考慮點與點之間的相似性,因此在聚類的每一步,具有最大相似度的點被合并到同一個簇中這樣很容易導致錯誤的合并。例如,有幾個點來自兩個顯著不同的簇,而這幾個點非常接近,那么根據上述的點與點之間的相似度,這兩個顯著不同的簇將被錯誤地合并在一起。為了避免這種情況,ROCK采取了更加周全的方法,也即引入了鄰居的概念。如果兩個點不僅它們本身相似,而且它們的鄰居也相似,則這兩個點可能屬于同一個簇,因此被合并。
【定義1】鄰居:兩個點Pi,Pj,如果滿足sim(Pi,Pj)≥A,則稱Pi,Pj為鄰居。其中,sim是一個相似性度量函數,A是由用戶給定的閾值。sim可以是一個距離度量或者甚至是由領域專家提供的非形式化的度量,只要它能夠標準化為0和1之間的值,而且這種值越大,相應的兩點間的相似度越高。
【定義2】連接:link(Pi,Pj)為二數據點Pi,Pj的相同鄰居數,值愈大表Pi,Pj同一簇的幾率愈大。
【定義3】標準函數:
在聚類過程中,我們需要最大化簇內link(pq,pr)數量的同時最小化簇間link(pq,pr)的數量。此式子能夠幫助我們找到簇內最多鏈接的同時盡量減少簇間鏈接數。其中:
ni為簇Ci中數據點的總數;
為Ci中預期的鄰居總數;
為Ci中預期鏈接總數。
是根據數據集設定的一個函數
【定義4】優化函數:
此優化函數用于合并相似簇,而且能夠有效避免出現離群數據點時將所有簇都合并為一個簇。
其中為二簇中預期交叉鏈接個數。
ROCK算法流程如下:
1)輸入參數:包含n個數據點的集合S,及預期簇數k;
2)最初階段,每一數據點為一簇;
3)計算各點的鏈接數;
4)為每一個簇i,建立一個區域堆q[i],包含每一個與簇i的鏈接數不為零的簇j;
5)q[i]中的各簇j依g(i,j)值由大至小排序;
6)建立一全局堆(global heap)Q,包含每一q[i]的優化函數最大值的簇j;
7)每一回合,合并Q中最佳簇j與q[j]中的最佳簇;
8)合并的同時重新運算各區域堆及全域堆,包括新形成的簇;
9)當簇數不小于k時,持續合并,此外當所有q[i]=0時停止合并。
3.粗糙集
粗糙集理論是一種不精確、不確定性知識的數學工具,由波蘭科學家Z.Pawlak提出,一經提出便引起了廣泛的討論[7]。粗糙集的知識形成思想可以概括為:一種類別對應于一個概念(類別一般表示為外延即集合,而概念常以如規則描述這樣的內涵形式表示),知識由概念組成;如果某知識中含有不精確概念,則該知識不精確。粗糙集對不精確概念的描述方法是通過下近似(Lower Approximation)和上近似(Upper Approximation)概念來表示。一個概念的下近似概念中的元素肯定屬于改概念,而一個概念的上近似概念只可能屬于該概念。
粗糙集把客觀世界抽象為一個信息系統。一個信息系統S是一個四元組,S=:
U是對象的有限集合,記為U={X1,X2,….Xn};A是屬性的有限集合,記為A={A1,A2,…An};V是屬性的值域集合,記為V={V1,V2…Vn};其中Vi是屬性Ai的值域;F是信息函數,即,f:U*A->,f(Xi,Aj)屬于Vj;屬性集A由集合C和集合D組成,其中C為條件屬性集合,D為決策屬性集合,兩者無交集。對于屬性集A中任意一個屬性a,通過f(Xi,a)函數時,如果某兩條記錄對于屬性a取值相同,我們則稱此兩個記錄基于屬性集等價,所有基于某個屬性集等價的記錄被定義為等價類。
粗糙集的近似空間(Approximation Spa-ce)。近似空間有一個二元組,其中U為對象的有限集合,B為A的一個子集,R(B)={(x1,x2)|f(x1,b)=f(x2,b)}。則對于任意一個概念O。
設屬性集B1是B2的真子集,如果R(B1) =R(B2),則稱B2可歸約于B1,如果B1不可進一步歸約,則稱B1為U的一個歸約子。
設屬性集P和Q,則P對Q的屬性依賴度為:
表示集合X在屬性集上的下近似。
設屬性集BC,C是條件屬性集,D是決策屬性集,則屬性重要度(Attributessi-gnificance)定義為:
4.屬性簡約和聚類
4.1 當前農資電子商務網站的推薦模式
當前中國國內關于農產品的電子商務網站還不是太多,專門針對農資產品的電子商務網站更是鳳毛麟角,這些已有的農資電子商務網站中應用的產品推薦系統還不是太成熟,其主要的推薦方式如下:
1)最新產品推薦及熱銷產品推薦
這種方式多應用于小型電子商務網站或網站的運營初期,某些網站也會在節假日促銷時使用這種推薦方式;這是一種形式簡單但是效果尚佳的推薦方式,滿足了用戶求優、求新和求性價比的心理訴求,其缺點是不能對客戶進行深度挖掘,沒有針對性,容易掩蓋具有高價值量的客戶需求。
2)評價式推薦
通過對產品的售后評價,對同類產品進行好評排序,將好評度最高的商品推薦給用戶。這種推薦方式也較多用于小型電子商務網站或B-C商家的網店中,能較好的為那些對某一種或某幾種商品有需求的用戶提供幫助,服務范圍較窄而推薦作用強大。這兩種推薦方式還停留在全體推薦的層次上,沒有針對個人的推薦。
4.2 關于農資產品的個性化推薦模型
本推薦模型針對現有農資推薦系統的問題,運用粗糙集技術遴選出商品的關鍵屬性,并通過ROCK聚類算法對用戶進行聚類,從而針對每個用戶個人進行推薦,更有針對性且效果更好。
該推薦系統的流程如下:
1)將搜集好的線下農資產品銷售記錄進行簡單簡約(由于是線下交易數據大多數為不完備數據),然后遴選出關鍵屬性;
2)對線下銷售記錄中包含任一關鍵屬性的用戶提取出來,運用ROCK聚類算法找到對不同屬性感興趣的不同用戶簇;
3)當出現新用戶時,判定新用戶的屬于哪一個用戶簇,將該用戶簇內用戶感興趣的商品推薦給新用戶。
4.2.1 基于粗糙集的商品屬性簡約
表1是與線下交易信息匹配的決策信息表,其中有些信息是不完備的,而不完備的信息中也可能包含關鍵屬性,所以我們通過粗糙集技術對其進行簡約,從而找到影響用戶購買的關鍵屬性[8、9]。我們將商品類別作為決策屬性,將價格和商家品牌等屬性作為條件屬性,如表1所示。
僅以上圖屬性已知部分為數據庫,建立實例如下:
U={1,2,3,4,5,6,7};
A={Cotton,Corn,Wheat};
V={High,Medium,Low,Yes,No};
f(1,category)=wheat;f(1,price)= medium;…。
按條件屬性進行分類,如E1={1,6};按決策屬性進行分類,如Y1={1,6}。
則在R中的兩個劃分為E和Y,E作為分類條件,Y作為分類決策,據此可進行規則描述,如規則R(1,1)可表示為:Des(E1)—>Des(Y1)。其置信度為cf=1.則說明當price=medium,brand=no為購買wheat產品的置信度為1,即price= medium,brand=no為wheat產品的關鍵屬性。實例演示完畢。
由以上實例得知,在通過粗糙集進行屬性簡約的過程中,需要提前確定置信度閾值,由于數據量的問題,本文沒有涉及屬性之間相關度的研究。
通過粗糙集技術進行簡約,得到不同用戶所對應的關鍵屬性類型如下:
(用戶1:商品類別,廠家),(用戶2:商品類別,無),(用戶3:商品類別,價格,…)等等。
4.2.2 運用ROCK算法進行聚類
聚類流程如下:
1)根據上文得到的用戶數據集,將每個用戶都作為一個獨立的數據點;
2)利用相似度計算公式,計算任意兩個數據點之間的相似度,從而確定任意一個點的鄰居個數;
3)利用定義2確定任意兩個數據點之間的相同鄰居數,即鏈接數;
4)為每一個簇建立一個區域堆q[i](初期時,一個數據點記為一個簇),將與該數據點有相同鄰居的數據點按個數的多少加入該堆中,利用標準函數對堆內的簇進行歸并,從而形成大小不同的若干個區域堆[10];
5)建立一個全局堆Q,按區域堆q[i]的大小排序加入到全局堆中,運用優化函數合并堆內的相似簇;
6)判斷全局堆Q中個數a,如果a 5.結論 由于該項目處于建站初期,在數據的采集和整理等方面的條件還不是很完善,尤其在許多專家知識的獲取上還不能很好地用計算機知識去表達,致使實例的驗證不是太完美,作者將會在日后逐步去改善。 參考文獻 [1]余力,劉魯.電子商務個性化推薦研究[J].計算機集成制造系統,2004,10:1306-1313. [2]雷琨.電子商務個性化推薦系統研究[D].電子科技大學,2012. [3]郭韋昱.基于用戶行為分析的個性化推薦系統設計與實現[D].南京大學,2012. [4]王炬.農業信息化進程中的問題及對策研究[D].西南農業大學,2003. [5]楊寶祝.我國農業信息技術與農業信息化發展戰略研究[J].農業網絡信息,2007(09):4-8. [6]胡可云,田鳳占.數據挖掘理論與應用[M].2008. [7]鄧大勇.基于粗糙集的數據約簡及粗糙集擴展模型的研究[D].北京交通大學,2007. [8]陳志敏,姜藝.綜合項目評分和屬性的個性化推薦算法[J].微電子學與計算機,2011(09):186-189. [9]李岱峰,覃正.一種基于資源多屬性分類的群組推薦模型[J].統計與決策,2010(08):153-155. [10]王榮,李晉宏,宋威.基于關鍵字的用戶聚類算法[J].計算機工程與設計,2012(09):3553-3557,3568. 作者簡介: 陳龍飛(1986—),男,河北唐山人,碩士研究生,研究方向:智能決策。 趙雪(1986—),女,河北唐山人,碩士研究生,研究方向:搜索引擎。