本發明涉及數據挖掘和信息檢索領域,涉及推薦系統的個性化推薦,是一種面向社交網絡基于云模型的推薦系統評分預測方法。
背景技術:
互聯網的出現和普及給用戶帶來了大量的信息,滿足了用戶在信息時代對信息的需求,但隨著網絡的迅速發展,網絡信息量的不斷增加,信息超載的問題隨之而來。針對信息超載問題,國內外專家學者不斷提出新的方法,如強化搜索引擎、優化推薦方案。
近年來,推薦系統受到物聯網巨頭和電商越來越多的青睞,尤其個性化推薦技術的發展,它是根據用戶的信息需求和興趣,將用戶感興趣的信息和產品推薦給用戶的個性化信息推薦系統。推薦系統可以分為兩類:預測和topN推薦。前者是預測用戶對項目的評分,后者是向用戶提供一個個性化推薦列表。目前,研究應用最廣泛的推薦系統評分預測方法主要有兩種,一種是基于內容的評分預測,另一種是基于協同過濾的評分預測。基于內容的是通過對推薦項目內容信息的分析,形成表示推薦項目內容的資源特征描述,并根據用戶過往行為記錄對用戶興趣進行建模,通過計算已知用戶偏好與項目屬性刻畫內容之間的匹配度來預測用戶對項目的評分。基于協同過濾方案的是利用用戶的過往行為記錄,尋找用戶的相似群體,并根據相似群體對推薦對象的評分,從而預測用戶對項目的評分。由于互聯網信息資源的多樣性,基于內容的評分預測對多媒體資源內容解析的知識要求較高。因此,基于協同過濾的評分預測方法得到了更廣泛的應用。
隨著電子商務規模的擴大,不僅使數據量急劇增加,而且導致了用于評分預測的數據產生稀疏性,從而使傳統協同過濾技術評分預測方法的預測精度急劇下降。此外,由于用戶評分具有一定的主觀性和用戶自身的個體差異性,造成了難以發現目標用戶真實興趣相似群體的困難。因此,解決數據稀疏及評分標準不統一問題對提高預測精度起著重要作用。
然而對于數據稀疏和評分標準不統一問題,目前的推薦系統評分預測方法仍然沒有很好的解決,為了提高評分預測的精度,增強推薦系統的性能,我們需要從問題出發,制定合適的解決方案。云模型是一個定性和定量之間的不確定轉換模型,利用此特性可以把定量評分轉換為定性的概念,并從定性概念入手統一用戶評分的標準,云模型的另外一個特性是在形成云的過程中,其中一個特定的云滴不重要,重要的是云的整體形狀,利用此特征可克服評分稀疏的問題,而在具體實施中如何利用云模型的特點構建可以克服數據稀疏和評分標準不統一問題的評分模型仍是本研究的難點。
技術實現要素:
本發明旨在解決以上現有技術的問題。提出了一種有效的解決用戶評分數據稀疏情況下傳統預測方法存在的問題,并提高預測精度的面向社交網絡基于云模型的推薦系統評分預測方法。本發明的技術方案如下:
一種面向社交網絡基于云模型的推薦系統評分預測方法,其包括以下步驟:
步驟1、獲取評論或社交網絡平臺上的用戶歷史評分記錄及用戶社交網絡關系;
步驟2、根據用戶的歷史評分記錄構建一維評分云,采用綜合云技術融合所有一維評分云形成父云,通過父云生成新的用戶評分;
步驟3、并根據新的用戶評分對用戶進行聚類,發現用戶的相似群體,社交關系是用戶的好友關系,也就是用戶在社交網絡中用的好友,是數據中存在的,不需要預測,聚類的目的則是找出和用戶興趣相似的其他用戶,也就是聚類結果中同一個類別的那部分用戶;并根據用戶的新評分對用戶進行聚類,通過聚類結果來發現用戶的相似群體,即用戶所在類內的其他用戶為該用戶的相似群體。
步驟4、根據被預測用戶的社交關系,對被預測用戶的相似群體構建兩朵高維評分云,分別計算用戶歷史評分在其中的隸屬度,以此表示被預測用戶在其兩類相似群體中的位置,并基于高斯變換構建綜合預測機制。
進一步的,所述步驟1獲取評論或/和社交網絡平臺上的用戶歷史評分記錄及用戶社交網絡關系直接從現有的基于Web的研究型推薦系統下載或者利用成熟的社交平臺的公共API獲取。
進一步的,所述步驟2構建一維評分云,采用綜合云技術融合所有評分云形成父云,通過父云生成新的用戶評分包括以下步驟:首先,根據用戶到項目的評分矩陣,對每個用戶的評分使用逆向云發生器計算出評分向量(Ex,En,He),并對每個用戶構建一維的云圖;其次,采用綜合云技術融合所有用戶的評分向量,得到父云的評分向量,并構建父云的云圖得到評分標準;最后,通過正向云發生器得到用戶評分在自身云圖中的隸屬度,并得到在此隸屬度下父云產生的云滴,以此云滴確定新的評分。
進一步的,所述步驟3采用K-means聚類方法進行聚類,以發現預測用戶的真實相似群體。
進一步的,所述步驟4具體包括以下步驟:根據被預測用戶關注集合,把其相似群體分為好友和非好友兩部分,通過逆向云發生器分別對兩部分群體的歷史評分構建高維云,分別計算用戶在兩朵高維云中的隸屬度;同樣通過逆向云發生器分別對兩部分群體對被推薦項目的評分構建兩朵一維云,分別計算高維云中的隸屬度在一維云中的云滴,并對兩部分群體的一維云滴進行高斯變換取其期望作為最后的預測云滴,由此云滴確定預測評分。
進一步的,根據用戶到項目的評分矩陣,對每個用戶的評分使用逆向云發生器計算出評分向量(Ex,En,He)包括;提取單個用戶的歷史評分,逆向云發生器生成評分云,根據公式計算評分云的期望向量Ex,其中xi表示單個用戶第i個歷史評分值,根據公式計算評分云的熵向量,根據公式計算評分云的超熵向量,其中n表示單個用戶的所有評分數量。
進一步的,所述采用綜合云技術融合所有用戶的評分向量,得到父云的評分向量,并構建父云的云圖得到評分標準包括:所有用戶中,取期望值最近的兩個用戶的評分云,令其為C1(Ex1,En1,He1)和C2(Ex2,En2,He2),根據公式獲取父云的期望向量,根據公式En=En'1+En'2獲取父云的熵向量,根據公式獲取父云的超熵向量,其中和分別為C1和C2期望曲線的取大值,融合形成這兩個用戶的父云向量為(Ex,En,He),在剩余用戶中找到和此父云期望值最近的用戶的評分云,再次融合形成新的父云,以此類推,最終融合所有用戶的評分云,形成一朵父云。
進一步的,所述對兩部分群體的一維云滴進行高斯變換取其期望作為最后的預測云滴包括:在用戶相似群體中,提取好友部分對被預測用戶歷史評分項目集合的評分,根據逆向云發生器生成高維評分云向量(Ex1,En1,He1;Ex2,En2,He2;…;Exn,Enn,Hen),其中(Exn,Enn,Hen)表示好友部分對第n個項目的評分生成的云,根據公式計算被預測用戶在高維云中的隸屬度,其中,μ表示隸屬度,xi表示用戶第i個評分,En'i表示以Eni為期望,He2i為方差的一個正太隨機數;提取好友部分對被預測項目的評分構成評分云(Ex,En,He),根據公式計算的得到兩個預測云滴,同樣的方法獲取非好友部分的預測云滴。
進一步的,在獲取好友與非好友部分的四個預測云滴時,找出距離最大的兩個(x1,μ1)和(x2,μ2),根據公式獲取高斯變換后的期望,并作為最后的預測結果。
本發明的優點及有益效果如下:
本發明此方法首先使用綜合云模型統一用戶評分標準,解決了用戶評分主觀性和個體差異性問題,為發現用戶真實相似群體提供了基礎。其次,根據目標用戶的相似群體,結合社交網絡用戶關系,構建綜合評分預測機制,有效的解決用戶評分數據稀疏情況下傳統預測方法存在的問題,并提高預測精度。
附圖說明
圖1是本發明提供優選實施例系統整體框架示意圖;
圖2是本發明使用綜合云模型統一用戶評分標準的流程示意圖;
圖3是本發明構建綜合評分預測方法流程示意圖。
具體實施方式
下面將結合本發明實施例中的附圖,對本發明實施例中的技術方案進行清楚、詳細地描述。所描述的實施例僅僅是本發明的一部分實施例。
本發明解決上述技術問題的技術方案是,
如圖1是本發明總體的流程圖,包括數據獲取,對評分標準進行統一,發現用戶相似群體,進行綜合評分預測四大模塊,其中,數據源的獲取可以直接從現有的基于Web的研究型推薦系統下載或者利用成熟的社交平臺的公共API獲取。通過數據源的抓取,獲得用戶的歷史評分記錄、個人社交網絡信息,以此構建用戶到項目的評分矩陣及用戶的好友向量;通過綜合云技術統一用戶評分標準;采用K-means聚類方法針對評分對用戶進行聚類,以發現用戶的相似群體;通過用戶的相似群體,結合用戶的社交網絡關系,構建綜合評分預測方法,并預測用戶對推薦項目的評分。
統一用戶評分標準。首先,根據用戶到項目的評分矩陣,對每個用戶的評分使用逆向云發生器計算出評分向量(Ex,En,He),并對每個用戶構建一維的云圖;其次,采用綜合云技術融合所有用戶的評分向量,得到父云的評分向量,并構建父云的云圖得到評分標準;最后,通過正向云發生器得到用戶評分在自身云圖中的隸屬度,并得到在此隸屬度下父云產生的云滴,以此云滴確定新的評分。
構建綜合評分預測方法。首先,在完成用戶聚類,并發現用戶相似群體的情況下,結合用戶的社交網絡關系,把用戶的相似群體分為好友與非好友兩部分;其次,對好友部分的評分使用逆向云發生器產生高維云,并計算用戶在高維云中的隸屬度,以隸屬度表示用戶在云圖中的位置;再次,抽取好友部分對預測項目的評分,使用逆向云發生器構建一維云,并生成在高維云中相同隸屬度下的云滴,以此云滴作為目標用戶對被預測項目的預測值。最后,使用同樣方法,獲得非好友部分的預測值,并對兩部分預測值采用高斯變換,取期望值做為最終的預測評分。
以下具體說明本發明的實施過程:
S1:數據獲取部分。可以利用網絡爬蟲或通過各評分和社交網站開放API平臺獲取數據。數據內容包括被預測用戶評分集合,預測用戶評分集合,被預測用戶關注集合。
S2:統一評分標準部分。根據被預測用戶和預測用戶的評分集合構建用戶評分矩陣,使用綜合云技術融合預測用戶和被預測用戶的評分云,形成評分標準,并通過正向云發生器產生在評分標準下的新評分。在所有用戶評分都統一的情況下對用戶采用K-means聚類方法進行聚類,以發現預測用戶的真實相似群體。
S3:構建綜合評分預測部分。根據被預測用戶關注集合,把其相似群體分為好友和非好友兩部分,通過逆向云發生器分別對兩部分群體的歷史評分構建高維云,分別計算用戶在兩朵高維云中的隸屬度;同樣通過逆向云發生器分別對兩部分群體對被推薦項目的評分構建兩朵一維云,分別計算高維云中的隸屬度在一維云中的云滴,并對兩部分群體的一維云滴進行高斯變換取其期望作為最后的預測云滴,由此云滴確定預測評分。
上述步驟S2中的統一用戶評分標準如圖2所示,具體可以分為以下3個步驟。
S21:取所有被預測用戶和所有推薦用的歷史評分,構成用戶評分矩陣,對每個用戶通過逆向云發生器生成可以代表用戶評分的云,評分云的屬性向量為(Ex,En,He);Ex為期望,代表著用戶對項目的平均滿意程度,為評分喜好和規律,En為熵,代表著用戶的評分集中程度,為評分偏好的離散度,He為超熵,是熵的熵,為用戶評分的穩定度。計算公式如下:
其中,n表示用戶評分的數目,xi代表被預測用戶第i個評分,S2為樣本方差,這里起著生成超熵He的作用。
S22:在S21步獲取所有預測用戶和被預測用戶的評分云的基礎上,通過綜合云技術融合所有評分云形成父云,以父云作為標準。具體包括:在所有用戶中,取期望值最近的兩個用戶的評分云,融合形成這兩個用戶的父云,在剩余用戶中找到和此父云期望值最近的用戶的評分云,再次融合形成新的父云,以此類推,最終融合所有用戶的評分云,形成一朵父云。其中融合兩個用戶評分云形成父云的具體介紹如下:
給定兩個用戶的評分云C1(Ex1,En1,He1),C2(Ex2,En2,He2),另融合后的父云為C(Ex,En,He)則有:
En=En'1+En'2 (6)
其中,En1'和En2'分別表示C1和C2的截斷熵,計算方法如下。
設和分別為C1和C2的期望曲線,令
則有
以上為兩朵評分云的具體融合過程,以此類推繼續兩兩融合,最后生成一朵所有用戶評分云的父云。
S23:利用正向云發生器對所有用戶的評分計算在原用戶評分云圖中的隸屬度,以此隸屬度為條件生成S22步驟中所有用戶父云下的云滴,并確定用戶的新評分。單個用戶評分轉換具體如下:
給定一個用戶的評分向量用戶的評分云向量(Ex,En,He)。根據公式:
計算隸屬度。其中,μi表示用戶第i個評分在自身評分云圖中的隸屬度,xi表示用戶第i個評分,En'是以En為期望值,He2為方差的一個正太隨機數,并計算父云在此隸屬度下的新評分,得到用戶的新評分向量以此類推就可得出全部用戶在父云下的新評分,并根據新評分對用戶采用K-means方法進行用戶聚類,以發現被預測用戶的相似群體。
S3:構建綜合預測方法的流程如圖3所示,具體如下:
S31:在S23中已經統一用戶評分標準,并發現用戶真實相似群體的情況下,結合被預測用戶的個人社交網絡信息,把被預測用戶的相似群體分為好友和非好友部分,并對非好友部分的歷史評分通過逆向云發生器構建高維云圖,以同樣的方法對好友部分的評分構建含有社交屬性的高維云圖,這里我們定義為高維社交云,以加強社交屬性對預測結果的影響,下面是對構建高維社交云的具體說明:
定義N(i)=(n1,n2,…,nm),表示為被預測用戶好友中對被預測項目有過評分的用戶群體,數量為m個,(N(i)是S31中被預測用戶相似群體的子集),定義T(j)=(t1,t2,…,tk),表示被預測用戶有過評分行為的項目集合,數量為k個,在N(i)取出對項目t1有評分所有用戶,此部分用戶對項目t1的評分向量為這里我們假設,N(i)中對項目t1有評分的用戶為l個,通過公式(1),(2),(3),(4)對評分向量中的元素生成相應的評分云向量(Ex1,En1,He1),以此作為高維社交云向量的第一個維度向量,然后在N(i)取出對項目t2有過評分所有用戶,并使用同樣方法生成高維云的第二個維度向量,以此類推最后生成N(i)對T(j)的評分云,即所要構建的高維社交云,其表示為(Ex1,En1,He1;Ex2,En2,He2;…;Exk,Enk,Hek),K為T(j)中的元素個數。
上面是對構建高維社交云的方法具體說明,我們以同樣的方法對被預測用戶的非好友部分構建另外一朵高維云。
S32:在S31中已經構建兩朵高維云的基礎上,我們分別計算用戶歷史評分在高維云中的隸屬度,在這里隸屬度表示被預測用戶的歷史評分在其相似群體歷史評分中的位置,通過計算隸屬度達到用戶在其相似用戶中定位的目的。下面將對用戶歷史評分在高維社交云中的社交隸屬度做出具體說明:
另高維社交云向量為(Ex1,En1,He1;Ex2,En2,He2;…;Exk,Enk,Hek),維度為k,被預測用戶歷史評分為(x1,x2,…,xk),這里需要指出被預測用戶每個歷史評分和高維社交云每一個維度的評分云是一一對應的關系,通過公式,
計算用戶歷史評分在高維社交云中的社交隸屬度,其中,μ表示隸屬度,xi表示用戶第i個評分,En'i表示以Eni為期望,He2i為方差的一個正太隨機數。計算用戶在另外一朵高維云中的隸屬度。
S33:提取構成高維社交云的所有用戶對被測項目的評分,對其采用逆向云發生器生成被預測項目評分云,通過S32得到被預測用戶在高維社交云中的社交隸屬度,并根據相同隸屬度的用戶映射到被預測項目評分云中的云滴,來確定被預測用戶對被預測項目的評分,這樣就可以構建一個單規則推理預測機制,以同樣方式對另外一朵高維云以同樣的方式構建另外一條單規則推理預測機制,最后,以高斯變換融合兩部分預測結果,從而構建完整的綜合預測機制。下面具體將對構建過程具體說明,另μ1和μ2分別為被預測用戶在兩朵高維云中的隸屬度,(Ex1,En1,He1)和(Ex2,En2,He2)分別為兩朵相應的被預測項目評分云,則通過公式,
和
得到4個預測云滴,其中En1'和En'2分別表示以En1為期望,He12為方差的正太隨機數和以En2為期望,He22為方差的正太隨機數,選出距離兩個最外側的云滴,進行高斯變換,并取期望為最終預測評分,公式如下:
Ex的值為被預測用戶對被預測項目的預測評分。
本發明所述的一種面向社交網絡基于云模型的推薦系統評分預測方法,主要特點在于,傳統評分預測中利用歷史評分進行預測時,存在著由于評分數據稀疏和個人評分主觀性,而導致預測效果不好,精度不高的問題,為了解決評分主觀性問題,本文采用綜合云技術,統一用戶評分標準,為了克服評分數據稀疏問題,引進隸屬度,并構建綜合預測機制,提高了評分預測的精度。
以上這些實施例應理解為僅用于說明本發明而不用于限制本發明的保護范圍。在閱讀了本發明的記載的內容之后,技術人員可以對本發明作各種改動或修改,這些等效變化和修飾同樣落入本發明權利要求所限定的范圍。