本申請總地涉及基于歷史數(shù)據(jù)來向用戶推薦對象的對象推薦方法和對象推薦設備。
背景技術:
在互連網(wǎng)上提供了針對用戶的許多對象推薦服務,諸如書、音樂、電影和新聞推薦。推薦是基于收集的歷史數(shù)據(jù)來學習用戶的特征和對象的特征來進行的。通常,歷史數(shù)據(jù)的集合可以表示成用戶對象矩陣的形式(例如,圖1)。該矩陣具有用戶列表的一個維度和對象列表的一個維度,每個元素被與用戶和對象相關地記錄。所述記錄的內容可以是用戶對對象的評分(如0-5分),或者是數(shù)字化的訪問記錄,如,1:喜歡;0:不喜歡;或,1:購買過;0:未購買過,等等。用戶特征可以從用戶對象矩陣的與該用戶對應的一行中學習到。類似地,對象特征可以從用戶對象矩陣的與該對象對應的一列中學習到。
與推薦應用相關的典型問題是數(shù)據(jù)稀疏性。如上面解釋那樣,根據(jù)用戶對象矩陣來學習用戶特征和對象特征。在實際推薦時,用戶和對象的數(shù)量變得越來越大。然而,非常難以收集該矩陣的每個元素的歷史數(shù)據(jù)。因此,矩陣中越來越多的元素變?yōu)椤拔粗?,如圖1中所示,這使得所學習的用戶特征和對象特征變得不穩(wěn)定且不可靠。
尤其是在拍攝景點推薦應用中,歷史數(shù)據(jù)(如用戶對景點的訪問記錄等)與用戶和景點的位置高度相關,這經(jīng)常導致更加嚴重的數(shù)據(jù)稀疏性。
在美國專利公開us2010/0030764a1中公開了“利用通過鄰近和潛在因素模型的組合顯式和隱式反饋的聯(lián)合過濾的推薦系統(tǒng)(recommendersystemutilizingcollaborativefilteringcombing explicitandimplicitfeedbackwithbothneighborhoodandlatentfactormodels)”。該文獻包括如下推薦方法:把表示歷史數(shù)據(jù)的用戶對象矩陣分解為用戶因素矩陣和對象因素矩陣。在用戶因素矩陣中,每個用戶分別由一行因素矢量表示。在對象因素矩陣中,每個對象分別由一列因素矢量表示。通過對應用戶因素矢量和對象因素矢量的點積來計算針對特定用戶的對象的推薦分數(shù)。在計算出針對特定用戶的每個對象的推薦分數(shù)之后,根據(jù)這些分數(shù)的排列來確定要推薦的至少一個對象。
該文獻可以解決對象推薦應用中的數(shù)據(jù)稀疏性。然而,在該文獻中,所述用戶因素矩陣和對象因素矩陣是根據(jù)作為訓練數(shù)據(jù)的歷史數(shù)據(jù)離線學習的。這意味著,一旦更新了用戶對象矩陣,用戶因素矩陣和對象因素矩陣中至少一個全部需要被重新訓練。例如,如果我們新知道用戶訪問了某個對象,則我們需要重新訓練整個用戶因素矩陣或整個對象因素矩陣。重新訓練過程是高度耗時的操作,因此現(xiàn)有技術文獻中提出的方法對于頻繁更新用戶對象矩陣的推薦應用是不可行的。而且,推薦結果是不可解釋的,難以說明該方法中的用戶因素矩陣和對象因素矩陣的每個元素的含義。
例如,在拍攝景點推薦應用中,拍攝景點推薦與用戶和景點的位置高度相關,這常導致數(shù)據(jù)稀疏性并且在實際應用中用戶景點矩陣是頻繁更新的。使用該文獻的推薦方法就需要頻繁的重新訓練并因此與這樣的動態(tài)數(shù)據(jù)源無法兼容。最后,推薦結果也是難以解釋的,這意味著難以說明景點被推薦給用戶的原因并進行分析和改進。
技術實現(xiàn)要素:
本申請的目的之一在歷史數(shù)據(jù)更新時避免重新訓練整個用戶因素矩陣或整個對象因素矩陣,從而既準確又高效地進行對象推薦。此外,期望對象推薦結果是可以解釋的。
本申請的一方面涉及一種對象推薦方法,該對象推薦方法包括:特征矢量提取步驟,根據(jù)用戶的和對象的多個歷史數(shù)據(jù)來提取至少一 個表示對應用戶特征的用戶特征矢量和至少一個表示對應對象特征的對象特征矢量,在歷史數(shù)據(jù)更新的情況下所述用戶特征矢量中的每一個都彼此獨立地更新并且所述對象特征矢量中的每一個都彼此獨立地更新;權重矩陣生成步驟,使用歷史數(shù)據(jù)來生成表示用戶特征相對于對象特征的映射的權重矩陣;以及,推薦分數(shù)確定步驟,基于用戶特征矢量、對象特征矢量和權重矩陣來確定用于被選定用戶的多個候選對象的分數(shù)。
本申請的另一方面涉及一種對象推薦設備,包括:特征矢量提取裝置,被配置為根據(jù)用戶的和對象的多個歷史數(shù)據(jù)來提取至少一個表示對應用戶特征的用戶特征矢量和至少一個表示對應對象特征的對象特征矢量,在歷史數(shù)據(jù)更新的情況下所述用戶特征矢量中的每一個都彼此獨立地更新并且所述對象特征矢量中的每一個都彼此獨立地更新;權重矩陣生成裝置,被配置為使用歷史數(shù)據(jù)來生成表示用戶特征相對于對象特征的映射的權重矩陣;以及,推薦分數(shù)確定裝置,被配置為基于用戶特征矢量、對象特征矢量和權重矩陣來確定用于被選定用戶的多個候選對象的分數(shù)。
因此,根據(jù)本申請的各方面,能夠使得在更新歷史數(shù)據(jù)時,避免重新訓練整個用戶因素矩陣或整個對象因素矩陣,從而既準確又高效地進行對象推薦。此外,對象推薦結果也是可以解釋的。
附圖說明
下面結合具體的實施例,并參照附圖,對本申請的上述和其它目的和優(yōu)點做進一步的描述。在附圖中,相同的或對應的技術特征或部件將采用相同或對應的附圖標記來表示。
圖1是示出作為歷史數(shù)據(jù)的用戶對象矩陣;
圖2示出根據(jù)本申請的一個實施例的景點推薦方法的流程圖;
圖3示出根據(jù)本申請的實施例的景點推薦方法中的特征矢量提取過程的流程圖;
圖4a和圖4b分別示出所提取的用戶特征矢量和景點特征矢量 的示例;
圖5a和5b分別示出根據(jù)本申請的不同實施例生成的權重矩陣;
圖6a和6b分別示出根據(jù)本申請的不同實施例的確定景點推薦分數(shù)的示意圖;
圖7是示出根據(jù)本申請的實施例的景點推薦設備的示例性配置的框圖;
圖8示出根據(jù)本申請的實施例的用于實施景點推薦方法的推薦系統(tǒng)的示意圖;以及
圖9示出能夠實施本申請的實施例的計算機系統(tǒng)的硬件配置的框圖。
具體實施方式
在下文中將結合附圖對本申請的示范性實施例進行描述。為了清楚和簡明起見,在說明書中并未描述實施例的所有特征。然而,應該了解,在對實施例進行實施的過程中必須做出很多特定于實施方式的設置,以便實現(xiàn)開發(fā)人員的具體目標,例如,符合與設備及業(yè)務相關的那些限制條件,并且這些限制條件可能會隨著實施方式的不同而有所改變。此外,還應該了解,雖然開發(fā)工作有可能是非常復雜和費時的,但對得益于本公開內容的本領域技術人員來說,這種開發(fā)工作僅僅是例行的任務。
在此,還應當注意,為了避免因不必要的細節(jié)而模糊了本申請,在附圖中僅僅示出了與至少根據(jù)本申請的方案密切相關的處理步驟和/或設備結構,而省略了與本申請關系不大的其他細節(jié)。
以下將以拍攝景點推薦應用為例進行說明,這是因為如前文所述用戶景點矩陣頻繁更新。但應當理解該示例并非限定,本申請也可適用于其它對象推薦應用中,例如書籍推薦應用、音樂推薦應用、電影推薦應用等,這將在后面具體說明。接下來,按照以下順序進行描述。
1.景點推薦方法的流程圖
2.特征矢量提取過程
2-1用戶特征矢量提取過程
2-2景點特征矢量提取過程
3.權重矩陣生成過程
4.推薦分數(shù)確定過程
5.景點推薦設備的框圖
6.景點推薦方法和設備的優(yōu)點
7.實現(xiàn)對象推薦方法的推薦系統(tǒng)
8.其它實施例
9.用以實施本申請的方法和設備的計算機設備
1.景點推薦方法的流程圖
首先,參照圖2描述根據(jù)本申請的一個實施例的景點推薦方法的流程圖。在該方法中,把作為歷史數(shù)據(jù)的用戶景點矩陣分解為以下三個矩陣:用戶特征矩陣,權重矩陣,以及景點特征矩陣。然后,基于這三個矩陣來計算景點的推薦分數(shù),也就是與用戶景點矩陣的未知元素相關的分數(shù)。
步驟s101是用戶特征矢量提取步驟,其中根據(jù)用戶的和景點的多個歷史數(shù)據(jù)來提取至少一個表示對應用戶特征的用戶特征矢量,在歷史數(shù)據(jù)更新的情況下所述用戶特征矢量中的每一個都彼此獨立地更新。步驟s101是由稍后描述的用戶推薦請求觸發(fā)的。
用戶的歷史數(shù)據(jù)和景點的歷史數(shù)據(jù)的示例形式可以是如圖1所示那樣的用戶景點矩陣,其中記錄了用戶對景點的訪問情況,各行可視為表示用戶特征的歷史數(shù)據(jù)并且各列可視為表示景點特征的歷史數(shù)據(jù)。歷史數(shù)據(jù)不限于該示例形式,例如另一種形式可以是不同用戶拍攝的不同景點的照片集合,又或者是不同用戶在互聯(lián)網(wǎng)上對不同景點的評價分數(shù)等等。
因此,用戶的歷史數(shù)據(jù)可以來自例如包括以下項中的至少一個:
a)用戶訪問的景點;
b)用戶評分的景點,以及評價分數(shù);
c)用戶拍攝的景點照片;
d)用戶拍攝的景點照片,照片具有照片標簽;以及
e)用戶評分的景點照片,以及評價分數(shù)。
另一方面,景點的歷史數(shù)據(jù)可以來自例如包括以下項中的至少一個:
a)訪問景點的用戶;
b)對景點評分的用戶,以及評價分數(shù);
c)拍攝景點時拍攝的照片;以及
d)拍攝景點時拍攝的照片,照片具有照片標簽。
照片標簽例如是照片拍攝的時間、地點以及拍攝者姓名等。
在一個示例中,拍攝景點的所述歷史數(shù)據(jù)能夠被通過用照片文件中存儲的能夠是gps信息的位置信息對收集的照片進行聚類來獲得。
在本文中,用戶特征使各用戶彼此區(qū)分,可以使用對應用戶的歷史數(shù)據(jù)基于各種特征提取方法來得到表示用戶特征的用戶特征矢量。如前面所述,在景點推薦應用中,歷史數(shù)據(jù)例如用戶景點矩陣頻繁更新。本申請使得在此情況下所提取的用戶特征矢量中的每一個都能夠彼此獨立地更新,這避免了更新整個用戶因素矩陣并因此將大大提高景點推薦的效率。特征矢量提取的過程將在后面詳細描述。
步驟s102是景點特征矢量提取步驟,其中根據(jù)用戶和景點的多個歷史數(shù)據(jù)來提取至少一個表示對應景點特征的景點特征矢量,在歷史數(shù)據(jù)更新的情況下所述景點特征矢量中的每一個都彼此獨立地更新。
該步驟與步驟s101類似,例如,可以使用對應景點的歷史數(shù)據(jù)基于各種特征提取方法來得到表示景點特征的景點特征矢量。類似地,本申請也使得所提取的景點特征矢量中的每一個都能夠彼此獨立地更新。這避免了更新整個景點因素矩陣并因此將大大提高景點推薦的效率。
步驟s103是權重矩陣生成步驟,其中使用用戶歷史數(shù)據(jù)和景點的歷史數(shù)據(jù)來生成表示用戶特征矢量相對于景點特征矢量的映射的權重矩陣。
如前所述,可以分別基于任何來源的用戶歷史數(shù)據(jù)或景點歷史數(shù)據(jù)使用適當?shù)奶卣魈崛》椒▉硖崛∮脩籼卣魇噶炕蚓包c特征矢量。為了使得能夠知道用戶特征矢量和景點特征矢量之間的關系以便更加準確地確定景點對于用戶的推薦分數(shù),我們需要生成表示用戶特征相對于景點特征的映射的權重矩陣。例如,以行表示用戶特征并且以列表示景點特征,則該權重矩陣的元素(權重)可以看作是具有該特征的用戶喜歡景點中的該特征的程度。因此所提出的方法的推薦結果是可以解釋景點被推薦給用戶的原因。生成權重矩陣的過程將在后面詳細描述。
步驟s104是推薦分數(shù)確定步驟,其中基于用戶特征矢量、景點特征矢量和權重矩陣來確定用于選定用戶的多個候選景點的分數(shù)。
在提取了用戶特征矢量和景點特征矢量并生成了權重矩陣之后,就可以計算出景點對所選用戶的推薦分數(shù),這基本上確定了用戶景點矩陣中的未知項的內容。因為排列靠前的景點通常更好匹配用戶,所以應選擇排列靠前的景點來進行推薦。推薦景點的數(shù)量可以根據(jù)多重因素來確定,例如推薦分數(shù)的總閾值、個人推薦分數(shù)、或人為定義的推薦數(shù)量。
因此,根據(jù)本申請的實施例的景點推薦方法能夠避免在歷史數(shù)據(jù)更新時重新訓練整個用戶因素矩陣或整個景點因素矩陣,從而提高了景點推薦的效率。此外,景點推薦結果也是可以解釋的。通過閱讀下面的詳細描述可以更好地理解這些優(yōu)點。
2.特征矢量提取過程
圖3示出根據(jù)本申請的實施例的特征矢量提取過程的流程圖。在圖3中,步驟s201是信息接收步驟,其中接收來自用戶的推薦請求和具體信息。步驟s202是數(shù)據(jù)獲取步驟,其中獲取最新的用戶和景點歷史數(shù)據(jù)。步驟s203是特征定義步驟,其中,預先定義要根據(jù)歷史數(shù)據(jù)提取的特征。步驟s204是特征矢量更新步驟,其中基于歷史數(shù)據(jù)來提取并更新用戶特征矢量或景點特征矢量。這將在后面進一步具體說明。
2-1用戶特征矢量提取過程
接下來參照圖3的流程圖來具體描述提取用戶特征矢量的過程。
首先,接收從用戶發(fā)送的拍攝景點推薦請求。
該請求例如來自用戶設備的通信模塊。該請求優(yōu)選地包括至少兩類信息:用戶id,在存儲用戶特征矢量的數(shù)據(jù)庫中是通用索引;和用戶指定的位置,在該位置處用戶正尋求拍攝景點。
用戶指定位置的方式可以是顯式的或隱式的。在顯式方式中,用戶可以通過,例如輸入位置名稱、手動在交互地圖上繪制區(qū)域、或向其設備發(fā)送語音命令等來指定位置。在隱式方式中,位置可以由用戶設備自動確定。例如,用戶的當前位置可以由用戶設備中的gps模塊提供。此外,位置半徑可以指示用戶期望在其中進行推薦景點的區(qū)域。位置半徑可由用戶指定,或者根據(jù)用戶的上下文信息而被自動確定。
接下來,獲取用戶和景點的最新歷史數(shù)據(jù)。這些歷史數(shù)據(jù)可以來自互聯(lián)網(wǎng)上關于用戶訪問景點的記錄的信息,或者用戶提供的各種信息源,例如一組照片。歷史數(shù)據(jù)的各種來源如前文所述,此處不再重復。
然后,預先定義要根據(jù)歷史數(shù)據(jù)提取的用戶特征。例如在歷史數(shù)據(jù)是一組景點照片或者是用戶訪問過的景點或評過分的景點的記錄的情況下,用戶特征可以是這些照片中的場景信息,諸如“街道”、“動物”、“植物”、“大?!钡?。由此用戶特征矢量可以是包括以下項中的至少一項:
a)屬于預定場景的由相應用戶拍攝的照片的數(shù)量;
b)屬于預定場景的由相應用戶拍攝的照片的百分比;
c)屬于預定場景的由相應用戶評分的照片的數(shù)量;
d)屬于預定場景的由相應用戶評分的照片的百分比;
e)屬于預定場景的由相應用戶訪問的景點的數(shù)量;
f)屬于預定場景的由相應用戶訪問的景點的百分比;
g)屬于預定場景的由相應用戶評分的景點的數(shù)量;以及
h)屬于預定場景的由相應用戶評分的景點的百分比。
或者,用戶特征可以是由相應用戶訪問景點的統(tǒng)計信息,所述統(tǒng)計信息能夠是用戶訪問景點的類型、訪問頻率和時長并且用戶特征矢量由其相應的統(tǒng)計值構成。
最后,基于用戶信息、歷史數(shù)據(jù)和所定義的用戶特征來提取并更新用戶特征矢量。
在一個示例中,用戶特征矢量在此是場景標簽直方圖。提取方法如下:采用提出推薦請求的用戶上傳的n個照片(n>0);對n個照片中每一個照片進行迭代,從而基于對應的圖像內容使用例如對象識別方法來識別照片場景信息,每個照片的所識別的照片場景信息是預定義場景標簽集合(特征)中的一個或多個場景標簽;全部n個照片的所識別的場景標簽信息的總和被計算以形成計算矢量;然后用n對計算矢量進行歸一化成為直方圖,直方圖的每個元素是對應場景標簽的百分比。然后場景標簽直方圖被存儲作為用戶數(shù)據(jù)庫中的用戶特征矢量,如圖4a所示。每當用戶上傳一組新照片時,雖然用戶歷史數(shù)據(jù)發(fā)生變化,但可以獨立地僅更新對應用戶的場景標簽直方圖而不必影響其它用戶的特征矢量。
在其它示例中,作為對用戶上傳的一組照片的替代,歷史數(shù)據(jù)可以來自由相應用戶評分的景點。在把場景信息定義為用戶特征的情況下,用戶特征矢量可以被與前述示例類似地提取。
在另一個示例中,可以基于歷史數(shù)據(jù)統(tǒng)計得出該用戶訪問的各景點的類型、訪問頻率和時長等作為該用戶的用戶特征矢量。
2-2景點特征矢量提取過程
該過程與用戶特征矢量提取過程類似。下面僅描述不同之處。
首先,如果用戶信息中指定了位置和半徑,則根據(jù)位置和半徑來選取候選景點。在此如果沒有指定位置和半徑,則可以忽略步驟s201。
因此,給定具有已知緯度和經(jīng)度的用戶指定位置,用戶指定位置和每個景點之間的距離可以被計算出來。在計算并比較從用戶指定位 置到每個景點的距離之后,僅位于半徑之內的景點被考慮為候選景點。
然后,在歷史數(shù)據(jù)是一組景點照片或者是用戶訪問過的景點或評過分的景點的記錄的情況下,景點特征也可以是這些照片中的場景信息,諸如“街道”、“動物”、“植物”、“大?!钡取5包c特征矢量與用戶特征矢量有所不同并且包括以下項中的至少一項:
a)對相應景點拍攝的屬于預定場景的照片的數(shù)量;
b)對相應景點拍攝的屬于預定場景的照片的百分比;
c)對相應景點拍攝的具有指定平均評價分數(shù)的照片的數(shù)量;以及
d)對相應景點拍攝的具有指定平均評價分數(shù)的照片的百分比。
或者,景點特征可以是訪問相應景點的各用戶的統(tǒng)計信息,所述統(tǒng)計信息能夠是訪問用戶的年齡、性別和教育程度并且景點特征矢量由其相應的統(tǒng)計值構成。
最后,基于用戶信息、歷史數(shù)據(jù)和所定義的景點特征來提取并更新景點特征矢量。
在一個示例中,景點特征矢量是場景標簽直方圖。提取方法如下:采用所針對的候選景點的范圍內的m個照片(m>0);對m個照片中每一個照片進行迭代,從而基于對應的圖像內容來識別照片場景信息。每個照片的所識別的照片場景信息是預定義場景標簽集合(特征)中的一個或多個場景標簽;計算m個照片的所識別的場景標簽信息的總和以形成計算矢量;然后用m對計算矢量進行歸一化成為直方圖,直方圖的每個元素是對應場景標簽的百分比。然后場景標簽直方圖被存儲作為景點數(shù)據(jù)庫中的景點特征矢量,如圖4b所示。當該景點的范圍內上傳一組新照片時,盡管景點歷史數(shù)據(jù)發(fā)生變化,但可以獨立地更新對應景點的場景標簽直方圖而不必影響其它景點的特征矢量。
在其它示例中,作為對候選景點的范圍內的一組照片的替代,歷史數(shù)據(jù)可以是對景點評分的用戶以及評價分數(shù)。在把評價分數(shù)定義為景點特征的情況下,景點特征矢量可以被與前述示例類似地提取。
在另一個示例中,可以基于歷史數(shù)據(jù)統(tǒng)計得出訪問該景點的各用戶的年齡、性別和教育程度等作為該候選景點的景點特征矢量。
3.權重矩陣生成過程
權重矩陣例如是方陣,其中每個元素是實數(shù)。權重矩陣的元素是用戶特征轉移到景點特征的權重。大致而言,權重越大,具有某類特征的用戶與具有某類特征的景點的匹配程度越大。
在一個示例中,權重矩陣是被使用歷史數(shù)據(jù)離線訓練而生成的。若干算法可以應用于訓練過程中,例如隨機梯度下降sgd算法,在該算法中:
1)輸入學習速率因子γ和正規(guī)化因子λ;
2)隨機初始化權重矩陣s;
3)定義損失函數(shù):
其中,
ru,i是用戶u對于景點i的真值;
pu是用戶u的特征矢量;
qi是景點i的特征矢量;
4)對于用戶u和景點i,計算梯度:
5)更新對應的s:
6)對于訓練數(shù)據(jù)內的每個用戶u和每個景點i重復步驟4)和5),直到收斂;
7)訓練完成并輸出學習的權重矩陣s。
此時得到的權重矩陣s能夠與用戶特征矢量和景點特征矢量一起通過乘法運算來計算出至少對應于用戶景點矩陣中的未知項的數(shù)據(jù)。圖5a示出根據(jù)該示例所生成的權重矩陣。該矩陣中每個元素表示具 有某類特征的用戶喜歡具有某類特征的景點的程度。作為歷史數(shù)據(jù)的訓練數(shù)據(jù)越充足,則生成的權重矩陣將在用戶的和對象歷史數(shù)據(jù)更新時保持更加穩(wěn)定。因此這將成為適應動態(tài)數(shù)據(jù)源的重要因素。
在另一個示例中,作為離線訓練方法的替代,還可以基于歷史數(shù)據(jù)使用統(tǒng)計方法來生成權重矩陣。該矩陣中的每個元素表示用戶的某類特征與景點的某類特征的聯(lián)合概率,矩陣中的各聯(lián)合概率之和應等于1。圖5b示出根據(jù)該示例所生成的權重矩陣,其中例如0.11表示具有“(喜歡拍攝)植物”特征的用戶拍攝過含有“街道”特征的景點的概率。在統(tǒng)計時,在給定各用戶拍攝的照片集合的情況下,計算出各用戶特征和各景點特征的聯(lián)合概率分布。統(tǒng)計方法并不限于此處列舉的聯(lián)合概率,也可以根據(jù)需要使用其它方式,如條件概率等。
4.推薦分數(shù)確定過程
在提取了用戶特征矢量、景點特征矢量并生成了權重矩陣之后,就可以確定針對該用戶的候選景點的推薦分數(shù),并然后根據(jù)需要推薦一個或更多個景點。
在一個示例中,用于提取用戶特征矢量和景點特征矢量的歷史數(shù)據(jù)的來源與用于生成權重矩陣所使用的歷史數(shù)據(jù)的來源相同。具體而言,用戶提供的照片集被作為可以從中得到如圖1所示那樣的用戶景點矩陣的歷史數(shù)據(jù)。用戶特征矢量和景點特征矢量是基于場景信息從照片集提取的,如前面所述。此外,權重矩陣是基于該用戶景點矩陣、用戶特征矢量以及景點特征矢量來離線訓練得到的,如前面所述。
因此,用如下公式針對同一用戶u分別計算每個候選景點的推薦分數(shù):
即基于用戶u的特征矢量pu、權重矩陣s、和景點i的特征矢量qi來計算景點i對用戶u的推薦分數(shù)
推薦分數(shù)指示對應用戶的特征矢量和景點的特征矢量的匹配程度。對于特定用戶,如果景點具有比另一景點大的推薦分數(shù),則該景 點具有將被用戶接受的更大可能性并因此適于被推薦。在該示例中,因為歷史數(shù)據(jù)的來源相同,所以數(shù)據(jù)的相關性和推薦結果的穩(wěn)定性更好。
在一個變型中,上述的權重矩陣可以不是離線訓練生成的。作為替代,其可以是基于作為歷史數(shù)據(jù)的照片集合使用統(tǒng)計方法來生成的,如前面所描述的那樣。使用如此統(tǒng)計生成的權重矩陣如圖6b所示那樣類似地確定推薦分數(shù)
在另一個示例中,與前一示例不同的是,用于提取用戶特征矢量和景點特征矢量的歷史數(shù)據(jù)的來源與用于生成權重矩陣所使用的歷史數(shù)據(jù)的來源不同。具體而言,用戶訪問的景點這類數(shù)據(jù)被作為歷史數(shù)據(jù),從這樣的歷史數(shù)據(jù)可以直接得到如圖1所示那樣的用戶景點矩陣。另一方面,用戶特征矢量和景點特征矢量是從用戶提供的照片集基于場景信息提取的,如前面所述。此外,權重矩陣是基于該用戶景點矩陣、用戶特征矢量以及景點特征矢量來離線訓練得到的,如前面所述。類似地,能夠如圖6a所示那樣確定推薦分數(shù)
在該示例的與前述變型類似的變型中,權重矩陣可以不是由離線訓練生成的。作為替代,所述權重矩陣可以是基于作為歷史數(shù)據(jù)的照片集合使用統(tǒng)計方法來生成的,其中每個元素表示用戶的某類特征與景點的某類特征的聯(lián)合概率。類似地,能夠如圖6b所示那樣確定推薦分數(shù)
因此,根據(jù)本申請的實施例的景點推薦方法不需要在歷史數(shù)據(jù)更新時重新訓練整個用戶因素矩陣或整個景點因素矩陣。而且,由于權重矩陣中的元素具有具體的含義,因此便于解釋推薦結果。
5.景點推薦設備的框圖
接下來參照圖7描述根據(jù)本申請的一個實施例的景點推薦設備700的示例性配置的框圖。該景點推薦設備700包括:特征矢量提取裝置701,被配置為根據(jù)用戶的和景點的多個歷史數(shù)據(jù)來提取至少一個表示對應用戶特征的用戶特征矢量和至少一個表示對應景點特征的 景點特征矢量,在歷史數(shù)據(jù)更新的情況下所述用戶特征矢量中的每一個都彼此獨立地更新并且所述景點特征矢量中的每一個都彼此獨立地更新;權重矩陣生成裝置702,被配置為使用歷史數(shù)據(jù)來生成表示用戶特征相對于景點特征的映射的權重矩陣;以及推薦分數(shù)確定裝置703,被配置為基于用戶特征矢量、景點特征矢量和權重矩陣來確定用于所選用戶的多個候選景點的分數(shù)。
以上裝置701-703可以被配置為分別執(zhí)行前述的景點推薦方法的步驟s101-s104。
優(yōu)選地,特征矢量提取裝置701可以還包括:信息接收裝置704,被配置為接收來自用戶的推薦請求和具體信息;數(shù)據(jù)獲取裝置705,被配置為獲取最新的用戶歷史數(shù)據(jù)和景點歷史數(shù)據(jù);特征定義裝置706,被配置為預先定義要根據(jù)歷史數(shù)據(jù)提取的特征;以及矢量更新裝置707,被配置為基于歷史數(shù)據(jù)來提取并更新特征矢量。
以上描述的裝置是用于實施本申請中描述的景點推薦方法的示例性和/或優(yōu)選的裝置。這些裝置可以是硬件單元(諸如中央處理器(圖9中的cpu901)、場可編程門陣列、數(shù)字信號處理器、專用集成電路或計算機等)和/或軟件裝置(諸如計算機可讀程序)。以上并未詳盡地描述用于實施各個步驟的裝置。然而,只要有執(zhí)行某個處理的步驟,就可以有用于實施同一處理的對應的裝置(由硬件和/或軟件實施)。通過所描述的步驟以及與這些步驟對應的裝置的所有組合限定的技術方案都被包括在本申請的公開內容中,只要它們構成的這些技術方案是完整并且可應用的。
此外,由各種裝置構成的上述設備可以作為功能模塊被并入到諸如計算機之類的硬件裝置中。除了這些功能模塊之外,計算機當然可以具有其他硬件或者軟件部件。
6.景點推薦方法和設備的優(yōu)點
根據(jù)本申請的實施例的景點推薦方法和設備把用戶景點矩陣分解為以下三個矩陣:由用戶特征矢量構成的用戶特征矩陣,權重矩陣以 及由景點特征矢量構成的景點特征矩陣。然后,利用相應的用戶特征矢量、景點特征矢量和權重矩陣來計算針對相應用戶的景點的推薦分數(shù)。
首先,用戶特征和景點特征是利用例如照片場景直方圖來描述的。因為該照片景點直方圖是一類低維度特征,所以可以減少位置相關的推薦中的數(shù)據(jù)稀疏性問題。其次,用戶特征矩陣和景點特征矩陣分別由用戶照片場景直方圖和景點照片場景直方圖形成,是獨立于用戶景點矩陣的。權重矩陣是根據(jù)歷史數(shù)據(jù)離線訓練或統(tǒng)計學習的,作為歷史數(shù)據(jù)的訓練數(shù)據(jù)越充足,則學到的權重矩陣將在用戶和景點歷史數(shù)據(jù)更新時保持更加穩(wěn)定。當更新與用戶或景點有關的歷史數(shù)據(jù)時,僅更新對應的用戶特征矢量或景點特征矢量,其它用戶特征矢量或景點特征矢量將不變化。依賴于這樣的局部重新訓練機制,所提出的方法實現(xiàn)了與動態(tài)數(shù)據(jù)源的兼容性。最后,因為權重矩陣能被考慮為映射矩陣,其中的每個元素是用戶的特定特征與景點的特定特征的匹配程度,在所以所提出的方法中可以解釋景點被推薦給用戶的原因。
7.實現(xiàn)景點推薦方法的推薦系統(tǒng)
圖8示出根據(jù)本申請的實施例的用于實施景點推薦方法的推薦系統(tǒng)的示意圖。推薦系統(tǒng)包括用戶數(shù)據(jù)庫、景點數(shù)據(jù)庫、圖像分析模塊、離線訓練模塊、用戶提取器、景點過濾器以及推薦引擎。用戶數(shù)據(jù)庫和景點數(shù)據(jù)庫分別存儲用戶特征矢量(如圖4a所示)和景點特征矢量(如圖4b所示),這些矢量是由圖像分析模塊(特征矢量提取裝置)使用用戶上傳的圖像數(shù)據(jù)生成的。根據(jù)以上圖像數(shù)據(jù),離線訓練模塊(權重矩陣生成裝置)學習由推薦引擎使用的權重矩陣(如圖5a所示)。當推薦系統(tǒng)從特定用戶接收用于拍攝景點推薦的請求時,用戶提取器被調用以從用戶數(shù)據(jù)庫中選擇對應的用戶特征矢量,并且景點過濾器被調用以根據(jù)景點的位置從景點數(shù)據(jù)庫中選擇多個景點特征矢量并形成候選景點集合。推薦引擎(推薦分數(shù)確定裝置)使用用戶特征矢量(如pu)、景點特征矢量(如qi)和權重矩陣(如s)來計 算各個候選景點的推薦分數(shù)(如
8.其它實施例
盡管前面的實施例集中在景點推薦應用,但本申請顯然不限于這種應用,而是可以廣泛地用于例如網(wǎng)絡上常見的各種對象推薦領域。
例如,在書籍推薦領域,與景點推薦領域類似,通過把用戶訪問的書籍的類型(或者對書籍的評分)作為特征來提取用戶特征矢量并且把訪問書籍的用戶的教育程度作為特征來提取書籍特征矢量,并然后使用用戶特征矢量和書籍特征矢量以及用戶書籍矩陣來離線訓練權重矩陣,可以確定某些書籍對于所選用戶的推薦分數(shù)。
又例如,在視頻推薦領域,與景點推薦領域類似,通過把用戶訪問的視頻的類型和觀看時長等(或者對視頻的評分)作為特征來提取用戶特征矢量并且把訪問視頻的用戶的年齡、性別和教育程度作為特征來提取視頻特征矢量,并然后使用用戶特征矢量和視頻特征矢量以及用戶視頻矩陣來離線訓練權重矩陣,就可以確定某些視頻對于所選用戶的推薦分數(shù)。
9.用以實施本申請的方法和設備的計算機設備
圖9是示出能夠實施本申請的實施例的計算機系統(tǒng)的硬件配置的框圖。
如圖9中所示,計算機系統(tǒng)包括經(jīng)由系統(tǒng)總線904連接的處理單元901、只讀存儲器902、隨機存取存儲器903和輸入/輸出接口905,以及經(jīng)由輸入/輸出接口905連接的輸入單元906、輸出單元907、存儲單元908、通信單元909和驅動器910。程序可以預先記錄在作為計算機中內置的記錄介質的rom(只讀存儲器)902或者存儲單元908中。或者,程序可以存儲(記錄)在可移除介質911中。在本文中, 可移除介質911包括例如軟盤、cd-rom(壓縮光盤只讀存儲器)、mo(磁光)盤、dvd(數(shù)字多功能盤)、磁盤、半導體存儲器等。
輸入單元906用于輸入用戶請求,被配置有鍵盤、鼠標、觸摸屏、麥克風等。另外,輸出單元907配置有l(wèi)cd(液晶顯示器)、揚聲器等。
通信單元909可以例如是無線通信單元,包括至少一個收發(fā)器模塊和定位模塊。收發(fā)器模塊用于向遠程服務器發(fā)送推薦請求并從遠程服務器接收對象推薦結果。定位模塊例如是gps模塊912,用于獲取用戶的位置。
存儲單元908或rom902存儲基本用戶信息、歷史數(shù)據(jù)、興趣等等。ram903可以存儲臨時狀態(tài)信息和中間計算結果。
此外,除了通過驅動器910從以上提到的可移除介質911把程序安裝到計算機的配置之外,可以通過通信網(wǎng)絡或廣播網(wǎng)絡把程序下載到計算機以安裝在內置存儲單元908中。換言之,可以例如以無線方式通過用于數(shù)字衛(wèi)星廣播的衛(wèi)星從下載點向計算機或者以有線方式通過諸如lan(局域網(wǎng))或互聯(lián)網(wǎng)等的網(wǎng)絡向計算機傳輸程序。
如果通過對輸入單元906的用戶操控等、經(jīng)由輸入/輸出接口905向計算機系統(tǒng)輸入了命令,則cpu901根據(jù)命令來執(zhí)行rom902中存儲的程序?;蛘撸琧pu901把存儲單元908中存儲的程序加載在ram903上以執(zhí)行程序。
因此,cpu901執(zhí)行根據(jù)以上提到的流程圖的某些處理或者通過以上提到的框圖的配置執(zhí)行的處理。接下來,如果有必要,則cpu901允許處理的結果例如通過輸入/輸出接口905從輸出單元907輸出、經(jīng)由通信單元909傳輸、在存儲單元908中記錄等。
另外,程序可以由一個計算機(處理器)執(zhí)行。另外,程序可以由多個計算機以分布式的方式處理。另外,可以把程序傳輸給遠程計算機執(zhí)行。
圖9所示的計算機系統(tǒng)僅僅是說明性的并且決不意圖對本申請、其應用或用途進行任何限制。圖9所示的計算機系統(tǒng)可以被實施于任 何實施例,可作為獨立計算機,或者也可作為設備中的處理系統(tǒng),可以根據(jù)需要從計算機系統(tǒng)移除一個或更多個組件,也可以向其添加一個或更多個組件作為附加的組件。
可以通過許多方式來實施本申請的方法和系統(tǒng)。例如,可以通過軟件、硬件、固件、或其任何組合來實施本申請的方法和系統(tǒng)。上述的方法步驟的次序僅是說明性的,本申請的方法步驟不限于以上具體描述的次序,除非以其他方式明確說明。此外,在一些實施例中,本申請還可以被實施為記錄在記錄介質中的程序,其包括用于實現(xiàn)根據(jù)本申請的方法的機器可讀指令。因而,本申請還覆蓋存儲用于實現(xiàn)根據(jù)本申請的方法的程序的記錄介質。
雖然已通過示例詳細描述了本申請的一些具體實施方式,但是本領域技術人員應當理解,上述示例僅是說明性的而不限制本申請的范圍。本領域技術人員應該理解,上述實施例可以被修改而不脫離本申請的范圍和實質。本申請的范圍是通過所附的權利要求限定的。