本發(fā)明涉及計算機數(shù)據(jù)處理技術領域,具體涉及一種信息推薦方法及系統(tǒng)。
背景技術:
現(xiàn)有的一些網(wǎng)絡系統(tǒng)需要利用推薦算法向用戶推薦物品。現(xiàn)在的常用推薦算法多為基于協(xié)同過濾方法。在協(xié)同過濾方法中常用的基于鄰域的算法主要分為兩大類:一類是基于用戶的協(xié)同過濾算法(usercf),另一類是基于物品的協(xié)同過濾算法(itemcf)。usercf給用戶推薦那些和他有同樣興趣愛好的用戶喜歡的物品,其推薦結果著重于反映和用戶興趣相似的小群體的熱點,這種推薦顯得更社會化,反映了某一個特定群體中一些物品的熱門程度。itemcf給用戶推薦那些和他之前喜歡的物品類似的物品,其推薦結果著重于維系用戶的歷史興趣,這中推薦更加個性化,反映了用戶自己的興趣傳承。
實踐發(fā)現(xiàn),傳統(tǒng)的做法難以處理只有物品信息沒有行為數(shù)據(jù)的推薦場景。沒有行為數(shù)據(jù)時,傳統(tǒng)的方法難以建立從用戶到物品的關系,這樣既無法構建具有相同興趣的用戶群體,又無法建立某一個用戶的歷史興趣體系。這種問題在推薦系統(tǒng)中也常稱為推薦系統(tǒng)的冷啟動問題。
技術實現(xiàn)要素:
本發(fā)明實施例提供一種信息推薦方法及系統(tǒng),以便在沒有獲得用戶的操作行為數(shù)據(jù)時也可以對用戶進行信息推薦,以解決推薦系統(tǒng)的冷啟動問題。
本發(fā)明第一方面提供一種信息推薦方法,包括:根據(jù)歷史數(shù)據(jù)中用戶對物品信息的操作行為數(shù)據(jù)預先構建向量空間,所述向量空間中包括分別用于表示所述用戶的用戶屬性和所述物品信息的物品標簽的向量;獲取目標用戶的用戶屬性和目標物品信息的物品標簽在所述向量空間中各自對應的向量,通過計算向量間的相似性獲得所述目標用戶的用戶屬性與所述目標物品信息的物品標簽的關聯(lián)關系;根據(jù)所述關聯(lián)關系向任一目標用戶推薦一種或多種目標物品。
本發(fā)明第二方面提供一種用戶和物品信息的關聯(lián)系統(tǒng),包括:構建模塊,用于根據(jù)歷史數(shù)據(jù)中用戶對物品信息的操作行為數(shù)據(jù)預先構建向量空間,所述向量空間中包括分別用于表示所述用戶的用戶屬性和所述物品信息的物品標簽的向量;關聯(lián)模塊,用于獲取目標用戶的用戶屬性和目標物品信息的物品標簽在所述向量空間中各自對應的向量,通過計算向量間的相似性獲得所述目標用戶的用戶屬性與所述目標物品信息的物品標簽的關聯(lián)關系;推薦模塊,用于根據(jù)所述關聯(lián)關系向任一目標用戶推薦一種或多種目標物品。
由上可見,在本發(fā)明的一些可行的實施方式中,根據(jù)歷史數(shù)據(jù)中用戶對物品信息的操作行為數(shù)據(jù)預先構建向量空間,該向量空間包括分別表示用戶屬性和物品標簽的向量,利用該向量空間,通過獲取目標用戶的用戶屬性和目標物品信息的物品標簽在所述向量空間中各自對應的向量,就可以通過計算向量間的相似性獲得目標用戶的用戶屬性與目標物品信息的物品標簽的關聯(lián)關系,根據(jù)該關聯(lián)關系就可以進行信息推薦。可見,由于該信息推薦方法建立了用戶屬性與物品標簽的關聯(lián)關系,因而,不需要獲取目標用戶的操作行為數(shù)據(jù),僅僅基于歷史數(shù)據(jù)中的其它用戶的操作行為數(shù)據(jù),就可以實現(xiàn)物品信息的推薦,從而可以解決推薦系統(tǒng)的冷啟動問題。
附圖說明
圖1是本發(fā)明一個實施例提供的一種信息推薦方法的流程示意圖;
圖2是訓練基礎訓練語料映射向量空間的示意圖;
圖3是本發(fā)明一個實施例提供的一種信息推薦系統(tǒng)的結構示意圖;
圖4是本發(fā)明一個實施例提供的一種計算機設備的結構示意圖。
具體實施方式
為了使本技術領域的人員更好地理解本發(fā)明方案,下面將結合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分的實施例,而不是全部的實施例。基于本發(fā)明中的實施例,本領域普通技術人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都應當屬于本發(fā)明保護的范圍。
本發(fā)明實施例技術方案應用于推薦系統(tǒng),該推薦系統(tǒng)可以部署于計算機設備或分布式部署于計算機網(wǎng)絡中。針對現(xiàn)有技術中推薦系統(tǒng)的冷啟動問題,本發(fā)明實施例提供一種信息推薦方法及系統(tǒng),下面通過具體實施例,分別進行詳細的說明。
(實施例一、)
請參考圖1,本發(fā)明一個實施例提供一種信息推薦方法,可包括:
110、根據(jù)歷史數(shù)據(jù)中用戶對物品信息的操作行為數(shù)據(jù)預先構建向量空間,所述向量空間中包括分別用于表示所述用戶的用戶屬性和所述物品信息的物品標簽的向量。
針對龐大的用戶群體對物品信息的大量點擊行為,一些網(wǎng)絡服務提供商會存儲有大量的歷史數(shù)據(jù),歷史數(shù)據(jù)中包括了用戶對物品信息的操作行為數(shù)據(jù)。本發(fā)明實施例中,可以根據(jù)該歷史數(shù)據(jù)構建出了一個容納豐富的用戶屬性和廣泛的物品標簽的向量空間,向量空間中包括分別用于表示所述用戶和所述物品信息的向量。其中,所說的物品例如可以是手機,鋼筆等實物商品,也可以是廣告,視頻等虛擬物品,本文對此不作限制。
其中,根據(jù)歷史數(shù)據(jù)中的用戶對物品信息的操作行為數(shù)據(jù),例如某用戶購買某物品的信息,可以獲取用戶的用戶屬性以及物品信息的物品標簽??蛇x的,可以從操作行為數(shù)據(jù)中獲取物品信息的標題信息,可通過對物品信息的標題分詞等手段,得到物品標簽。然后可以根據(jù)算法例如word2vec算法,將獲取的用戶屬性和物品標簽映射到同一個向量空間中,其中,每個用戶屬性用所述向量空間中的一個用戶屬性向量表示,每個物品標簽用所述向量空間中的一個物品標簽向量表示。
舉例來說,用戶屬性例如可以包括職業(yè)屬性,年齡屬性,身高屬性,性別屬性等等,物品標簽例如包括物品的名稱,類別,產(chǎn)地,材質,價格等等。
word2vec是2013年google推出的,是一個將單詞轉換成向量形式的工具。word2vec可以利用大量的文本段落內容,將文本中的任意詞表征為一個向量空間的向量。通過向量空間上的關聯(lián)度計算,就可以計算出兩個詞的關聯(lián)度。輸出的詞向量可以做一些自然語言處理的工作,如將詞聚類,找同義詞等等。
請參考圖2,在一些實施例中,利用例如word2vec算法將獲取的用戶屬性和物品標簽映射到同一個向量空間中的步驟可以包括如下過程:
1、基于獲取用戶屬性以及物品標簽,可以將歷史數(shù)據(jù)中用戶對物品信息的操作行為數(shù)據(jù),轉換為用戶屬性對物品標簽的操作行為數(shù)據(jù);例如,將用戶q購買物品p的操作行為數(shù)據(jù),轉換為用戶屬性y1,y2,y3對物品標簽b1,b2,b3的操作行為數(shù)據(jù),其中,用戶屬性y1例如可以是指青年用戶,y2例如可以是指時尚型用戶,物品標簽b1例如可以是指國產(chǎn),b2例如可以是指手機,等等,此處不再一一列舉。這種轉換將操作行為數(shù)據(jù)表示的用戶對物品信息的行為,轉換為用戶屬性對物品標簽的操作行為數(shù)據(jù),得到的操作行為數(shù)據(jù)中,降低了特征的粒度(從用戶降至用戶屬性,從物品降至物品標簽),可以稱為細粒度轉換。通過細粒度轉換,得到的信息就不再局限于表示某個用戶或者某個物品,而是通過用戶屬性和物品標簽可以適用于所有的用戶和所有的物品。
2、從轉換后的操作行為數(shù)據(jù)中可以提取用戶屬性和物品標簽組成基礎訓練語料;其中,在每一條操作行為數(shù)據(jù)中提取用戶屬性和物品標簽,并將這些用戶屬性和物品標簽進行打亂(可以是隨機打亂),組成一條基礎訓練語料。舉例來說,一條某用戶對某物品信息的操作行為數(shù)據(jù)中,可以提取得到多個用戶屬性例如y1,y2,y3,y4,y5,以及多個物品標簽例如b1,b2,b3,b4,b5,b6,然后進行隨機打亂,打亂后后的基于語料例如可以是【b1,y5,y3,b4,y1,b5,y2,b2,y4,b6,b3】。
3、利用word2vec算法對獲取的基礎訓練語料進行學習,就可以得到表征每個用戶屬性和每個物品標簽的向量,從而實現(xiàn)將每個用戶屬性和每個物品標簽分別映射為同一個向量空間中的向量。
需要說明的是,word2vec是tomasmikolov等人提出的一種兩層的神經(jīng)網(wǎng)絡模型,該模型根據(jù)文本的上下文(即假設每個詞與其周圍的詞比較接近),利用大量的文本內容,將文本中的任意詞表征為同一個向量空間的向量。通過向量空間上的相似度就算,就可以計算出兩個詞的相似性。輸出的詞向量可以做一些自然語言處理的工作,如將詞聚類,找同義詞等等。2013年google推出了開源的word2vec的代碼,得到了廣泛的應用。
word2vec算法的設計初衷是對有序的文本來訓練,利用word2vec算法對文本進行訓練,就可以得到表征文本中的每次詞的向量,但是,word2vec算法一般用于對較長的文本例如一些文章等進行訓練,訓練學習時會考慮到上下文詞語的含義,不考慮緊鄰的若干個詞之間的關聯(lián)關系。而本發(fā)明中用于訓練的語料通常是短文本,只是幾個物品標簽和用戶屬性的組合,為了達到較好的訓練效果,需要將這些用戶屬性和物品標簽進行混合打亂。
通過實驗,將用戶屬性和商品標簽進行混合打亂確實可以得到比較好的訓練效果。一個原因是,本文訓練的短文本只是幾個物品標簽和用戶屬性的組合,短文本下word2vec的窗口可以覆蓋整個訓練的基礎訓練語料的一部分。另一個原因是,大量數(shù)據(jù)下可以從隨機打亂的短文本語料獲取信息。
其中,打亂用戶屬性和物品標簽是處理訓練數(shù)據(jù)的,對于在線獲取的用戶屬性或物品標簽則不需要打亂。
120、獲取目標用戶的用戶屬性和目標物品信息的物品標簽在所述向量空間中各自對應的向量,通過計算向量間的相似性獲得所述目標用戶的用戶屬性與所述目標物品信息的物品標簽的關聯(lián)關系。
在上一步驟中,任意用戶屬性和任意物品標簽都被映射到了同一個向量空間當中,每個用戶屬性和物品標簽都可以通過該空間中的向量進行表示,于是,在沒有獲得目標用戶的操作行為數(shù)據(jù)等情況下,針對目標用戶和目標物品,就可以利用該向量空間,通過計算向量間的相似性獲得所述目標用戶的用戶屬性與所述目標物品信息的物品標簽的關聯(lián)關系。
其中,獲得關聯(lián)關系的具體過程可包括:
1、獲取目標用戶的用戶屬性和目標物品信息的物品標簽,以及獲取的用戶屬性和物品標簽在所述向量空間中各自對應的向量;
2、計算所述向量空間中的所述目標用戶的用戶屬性向量與所述目標物品信息的物品標簽向量的相似性,得到所述目標用戶的用戶屬性與所述目標物品信息的物品標簽的關聯(lián)度,從而建立起所述目標用戶的用戶屬性到所述目標物品信息的物品標簽的關聯(lián)關系,該關聯(lián)關系用關聯(lián)度表示。
需要說明的是,計算向量間相似性的方法有多種,一些實施方式中,可以 計算所述向量空間中所述目標用戶的用戶屬性向量與所述目標物品信息的物品標簽向量的余弦相似性,余弦相似性具有計算簡單的優(yōu)點。并且,余弦相似性得到的結果是一個介于0~1之間的值,不需要再進行歸一化等處理,相似度的值越大表示用戶屬性向量與物品標簽向量的關聯(lián)度越高。
本發(fā)明實施例中,通過計算向量間的相似性獲得所述目標用戶的用戶屬性與所述目標物品信息的物品標簽的關聯(lián)度,建立起所述目標用戶到所述目標物品信息的關聯(lián)關系。
130、根據(jù)所述關聯(lián)關系向任一目標用戶推薦一種或多種目標物品。
在推薦系統(tǒng)中,用戶屬性和物品標簽的關聯(lián)度就可以作為推薦的一個重要指標。這個關聯(lián)度體現(xiàn)了物品標簽和用戶屬性共現(xiàn)的程度,向量越相似,說明用戶屬性和物品標簽更相似。
進行信息推薦時,可以設定一個閾值,對于任一目標用戶,將與該目標用戶的用戶屬性的關聯(lián)度超過設定閾值的一種或多種物品標簽表示的目標信息推薦給該目標用戶。
下面舉例說明:在線推薦的場景中,當推薦系統(tǒng)擁有一部分新用戶,一個待推薦的物品池。其中,知道新用戶的一些基礎的用戶屬性,如年齡、性別、地域、學歷等。并且,可將物品池中的物品信息轉換為可用的物品標簽,這些物品標簽可以為物品信息的類目,或標題分詞等。獲取了用戶屬性,物品標簽,還有word2vec訓練得到的向量空間,就可以給用戶推薦物品了。推薦過程包括:通過使用該向量空間中的各個用戶屬性向量與各個物品標簽向量進行的余弦關聯(lián)度計算,就可以獲得任意用戶屬性與任意物品標簽之間的關聯(lián)度。從而推薦系統(tǒng)就可以給任意新用戶推薦物品池中的物品了,從而解決了推薦系統(tǒng)的冷啟動過問題。
舉例來說,某目標用戶的一個用戶屬性是手機型號,假設該手機型號為p1,假設某手機保護套的一個物品標簽為保護套類型,假設該保護套類型為t1,如果該t1類型的手機保護套與該p1型號的手機的關聯(lián)度超過閾值,則可以把該t1類型的手機保護套作為待推薦物品推薦給目標用戶??梢?,該種推薦方法不需要知道目標用戶的歷史操作行為數(shù)據(jù)。
需要說明的是,本發(fā)明實施例中,任意用戶屬性和物品標簽只需要一個k維向量就可以表示,若推薦系統(tǒng)含有|u|個用戶屬性和|i|個物品標簽,那么本發(fā)明實施例構建的向量空間模型,需要|u|×k個參數(shù)表示用戶屬性,需要|i|×k個參數(shù)表示物品標簽,一共只需要(|u|+|i|)×k個參數(shù)就可以表征整個全部用戶屬性和物品標簽??梢?,本發(fā)明實施例建立了一種簡單,可靠,參數(shù)少,可擴展的泛關聯(lián)用戶和物品關系的向量空間模型。
值得說明的是,上述方法的某些過程存在多種可能的替代方案。例如,用戶對物品信息的點擊行為,也可以是用戶對物品信息的點贊,評分,購買等行為。本文中,所說的物品含義廣泛,不僅包括電商中的物品,還可以包含廣告,文章,視頻等。另外,向量相似性的計算不限于余弦相似性,還可以利用其它相似性計算方法。
可以理解,本發(fā)明實施例上述方案例如可以在計算機設備具體實施。
由上可見,在本發(fā)明的一些可行的實施方式中,提供了一種信息推薦方法,該方法可以根據(jù)歷史數(shù)據(jù)中用戶對物品信息的操作行為數(shù)據(jù),預先構建包括分別表示用戶屬性和物品標簽的向量的向量空間,利用該向量空間,通過獲取目標用戶的用戶屬性和目標物品信息的物品標簽在所述向量空間中各自對應的向量,就可以通過計算向量間的相似性獲得目標用戶的用戶屬性與目標物品信息的物品標簽的關聯(lián)關系,根據(jù)該關聯(lián)關系就可以進行物品信息推薦。
可見,由于該信息推薦方法建立了用戶屬性與物品標簽的關聯(lián)關系進行物品信息推薦,不再是直接依賴于用戶和物品信息的關系進行推薦,因而,不需要獲取目標用戶的行為數(shù)據(jù),僅僅基于歷史數(shù)據(jù)中的其它用戶的操作行為數(shù)據(jù),就可以實現(xiàn)信息推薦,從而可以解決推薦系統(tǒng)的冷啟動問題。
(實施例二、)為了更好的實施本發(fā)明實施例的上述方案,下面還提供用于配合實施上述方案的相關裝置。
請參考圖3,本發(fā)明一個實施例提供一種用戶和物品信息的關聯(lián)系統(tǒng)300,該系統(tǒng)300可包括:
構建模塊310,用戶根據(jù)歷史數(shù)據(jù)中用戶對物品信息的操作行為數(shù)據(jù)預先構建向量空間,所述向量空間中包括分別用于表示所述用戶的用戶屬性和所述 物品信息的物品標簽的向量;
關聯(lián)模塊320,用于獲取目標用戶的用戶屬性和目標物品信息的物品標簽在所述向量空間中各自對應的向量,通過計算向量間的相似性獲得所述目標用戶的用戶屬性與所述目標物品信息的物品標簽的關聯(lián)關系;
推薦模塊330,用于根據(jù)所述關聯(lián)關系向任一目標用戶推薦一種或多種目標物品信息。
在一些實施例中,所述構建模塊310具體用于:根據(jù)歷史數(shù)據(jù)中用戶對物品信息的操作行為數(shù)據(jù),獲取所述用戶的用戶屬性和所述物品信息的物品標簽,將獲取的用戶屬性和物品標簽映射到同一個向量空間中,其中,每個用戶屬性用所述向量空間中的一個用戶屬性向量表示,每個物品標簽用所述向量空間中的一個物品標簽向量表示。
在一些實施例中,所述構建模塊310包括:
獲取單元3101,用于根據(jù)歷史數(shù)據(jù)中用戶對物品信息的操作行為數(shù)據(jù),獲取所述用戶的用戶屬性和所述物品信息的物品標簽;
轉換單元3102,用于將歷史數(shù)據(jù)中用戶對物品信息的操作行為數(shù)據(jù),轉換為用戶屬性對物品標簽的操作行為數(shù)據(jù);
提取單元3103,用于從所述操作行為數(shù)據(jù)中提取用戶屬性和物品標簽,并將提取的用戶屬性和物品標簽打亂,組成基礎訓練語料;
映射單元3104,用于利用word2vec算法對獲取的基礎訓練語料進行學習,得到表征每個用戶屬性和每個物品標簽的向量。
在一些實施例中,所述關聯(lián)模塊320包括:
獲取單元3201,用于獲取目標用戶的用戶屬性和目標物品信息的物品標簽在所述向量空間中各自對應的向量;
計算單元3202,用于計算所述向量空間中的所述目標用戶的用戶屬性向量與所述目標物品信息的物品標簽向量的相似性,得到所述目標用戶的用戶屬性與所述目標物品信息的物品標簽的關聯(lián)度。
在一些實施例中,所述計算單元3202,具體用于計算所述向量空間中的所述目標用戶的用戶屬性向量與所述目標物品信息的物品標簽向量的余弦相似 性。
在一些實施例中,所述建立單元3203,具體用于在目標用戶沒有針對目標物品信息的操作行為數(shù)據(jù)時,根據(jù)所述向量空間建立所述目標用戶到所述目標物品信息的關聯(lián)關系。
在一些實施例中,所述推薦模塊330,具體用于對于任一目標用戶,將與該目標用戶的用戶屬性的關聯(lián)度超過設定閾值的一種或多種物品標簽表示的目標物品信息推薦給該目標用戶。
可以理解,本發(fā)明實施例系統(tǒng)的各個功能模塊的功能可根據(jù)上述方法實施例中的方法具體實現(xiàn),其具體實現(xiàn)過程可參照上述方法實施例中的相關描述,此處不再贅述。
由上可見,在本發(fā)明的一些可行的實施方式中,可以根據(jù)歷史數(shù)據(jù)中用戶對物品信息的操作行為數(shù)據(jù),構建包括分別表示用戶屬性和物品標簽的向量的向量空間,利用該向量空間,通過獲取目標用戶的用戶屬性和目標物品信息的物品標簽在所述向量空間中各自對應的向量,就可以通過計算向量間的相似性獲得目標用戶的用戶屬性與目標物品信息的物品標簽的關聯(lián)關系,根據(jù)該關聯(lián)關系就可以進行物品信息推薦。
可見,由于建立了用戶屬性與物品標簽的關聯(lián)關系進行信息推薦,不再是直接依賴于用戶和物品信息的關系進行推薦,因而,不需要獲取目標用戶的行為數(shù)據(jù),僅僅基于歷史數(shù)據(jù)中的其它用戶的操作行為數(shù)據(jù),就可以實現(xiàn)信息推薦,從而可以解決推薦系統(tǒng)的冷啟動問題。
(實施例三、)請參考圖4,本發(fā)明實施例還提供一種計算機設備400;
該計算機設備400可包括:處理器401和存儲器402,所述存儲器402用于存儲程序403,所述處理器401與所述存儲器402通過總線404連接,當所述計算機設備400運行時,所述處理器401執(zhí)行所述存儲器402存儲的所述程序403,以使所述計算機設備400執(zhí)行如上文方法實施例所述的信息推薦方法。
(實施例四、)本發(fā)明實施例還提供一種計算機存儲介質,該計算機存儲介質可存儲有程序,該程序執(zhí)行時包括上述方法實施例中記載的信息推薦方法 的部分或全部步驟。
在上述實施例中,對各個實施例的描述都各有側重,某個實施例中沒有詳細描述的部分,可以參見其它實施例的相關描述。
需要說明的是,對于前述的各方法實施例,為了簡單描述,故將其都表述為一系列的動作組合,但是本領域技術人員應該知悉,本發(fā)明并不受所描述動作順序的限制,因為依據(jù)本發(fā)明,某些步驟可以采用其它順序或者同時進行。其次,本領域技術人員也應該知悉,說明書中所描述的實施例均屬于優(yōu)選實施例,所涉及的動作和模塊并不一定是本發(fā)明所必須的。
本領域普通技術人員可以理解上述實施例的各種方法中的全部或部分步驟是可以通過程序來指令相關的硬件來完成,該程序可以存儲于一計算機可讀存儲介質中,存儲介質可以包括:rom、ram、磁盤或光盤等。
以上對本發(fā)明實施例所提供的信息推薦方法及系統(tǒng)進行了詳細介紹,本文中應用了具體個例對本發(fā)明的原理及實施方式進行了闡述,以上實施例的說明只是用于幫助理解本發(fā)明的方法及其核心思想;同時,對于本領域的一般技術人員,依據(jù)本發(fā)明的思想,在具體實施方式及應用范圍上均會有改變之處,綜上所述,本說明書內容不應理解為對本發(fā)明的限制。