本發(fā)明涉及網(wǎng)絡(luò)技術(shù)領(lǐng)域,更具體地說(shuō),涉及一種信息推薦方法及裝置。
背景技術(shù):
伴隨著移動(dòng)互聯(lián)網(wǎng)的發(fā)展,數(shù)據(jù)的體量也成幾何級(jí)增長(zhǎng)。數(shù)據(jù)的融合和共享已經(jīng)成為了新的發(fā)展方向。這些都引領(lǐng)著推薦系統(tǒng)進(jìn)入新的發(fā)展階段,推薦系統(tǒng)開始從單個(gè)領(lǐng)域的成功發(fā)展到跨領(lǐng)域的信息共享。
跨領(lǐng)域推薦是一種將若干個(gè)領(lǐng)域的數(shù)據(jù)或知識(shí)擴(kuò)展到目標(biāo)領(lǐng)域,在目標(biāo)領(lǐng)域進(jìn)行個(gè)性化推薦的方法。例如,用戶在視頻網(wǎng)站A看過很多電影,當(dāng)這些用戶瀏覽音樂網(wǎng)站B時(shí),可以利用這些用戶在A網(wǎng)站的行為數(shù)據(jù)或特征,結(jié)合B網(wǎng)站的數(shù)據(jù)給用戶推薦音樂。然而,現(xiàn)有的跨領(lǐng)域推薦方法大多基于一種假設(shè),即領(lǐng)域間的用戶行為是一致或者相似的,但是這種假設(shè)在大多數(shù)情況下并不成立,使得現(xiàn)有的跨領(lǐng)域推薦方法的普適性較差。
因此,如何提高跨領(lǐng)域推薦方法的普適性成為亟待解決的問題。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的目的是提供一種信息推薦方法及裝置,以提高跨領(lǐng)域推薦方法的普適性。
為實(shí)現(xiàn)上述目的,本發(fā)明提供了如下技術(shù)方案:
一種信息推薦方法,包括:
獲取第一領(lǐng)域的第一矩陣,所述第一矩陣用于表征各個(gè)用戶對(duì)在所述第一領(lǐng)域所使用的第一類項(xiàng)目的第一評(píng)分;
獲取至少一個(gè)第二領(lǐng)域的第二矩陣,所述第二矩陣用于表征所述各個(gè)用戶對(duì)在所述第二領(lǐng)域所使用的第二類項(xiàng)目的第二評(píng)分;
將所述第二評(píng)分歸一化,得到所述各個(gè)用戶對(duì)在所述第二領(lǐng)域所使用的第二類項(xiàng)目的第三評(píng)分;
基于所述各個(gè)用戶對(duì)在所述第二領(lǐng)域所使用的第二類項(xiàng)目的第三評(píng)分對(duì)所述第一矩陣進(jìn)行擴(kuò)展,得到第三矩陣,所述第三矩陣用于表征各個(gè)用戶對(duì)在所述第一領(lǐng)域所使用的第一類項(xiàng)目的第一評(píng)分,以及各個(gè)用戶對(duì)在所述第二領(lǐng)域所使用的第二類項(xiàng)目的第三評(píng)分;
基于所述第三矩陣構(gòu)建信息推薦模型,所述信息推薦模型用于在所述第一領(lǐng)域向用戶推薦項(xiàng)目。
上述方法,優(yōu)選的,所述將所述第二評(píng)分歸一化,得到所述各個(gè)用戶對(duì)在所述第二領(lǐng)域所使用的第二類項(xiàng)目的第三評(píng)分,包括:
基于所述第二領(lǐng)域的第二評(píng)分對(duì)所述第二領(lǐng)域的各個(gè)第二評(píng)分進(jìn)行歸一化。
上述方法,優(yōu)選的,所述基于所述第二領(lǐng)域的第二評(píng)分對(duì)所述第二領(lǐng)域的第二評(píng)分進(jìn)行歸一化,包括:
對(duì)于每一個(gè)用戶,基于該用戶在所述第二領(lǐng)域中的所有評(píng)分,對(duì)該用戶的各個(gè)第二評(píng)分進(jìn)行歸一化。
上述方法,優(yōu)選的,基于第一公式將所述第二評(píng)分歸一化,所述第一公式為:
其中,j表示第j個(gè)第二領(lǐng)域;θj(u,i)表示用戶u在第j個(gè)第二領(lǐng)域?qū)?xiàng)目i的第三評(píng)分;aj為與第j個(gè)第二領(lǐng)域?qū)?yīng)的懲罰系數(shù);rj(u,i)表示用戶u在第j個(gè)第二領(lǐng)域?qū)Φ趇個(gè)項(xiàng)目的第二評(píng)分;Minj(u)表示用戶u在第j個(gè)第二領(lǐng)域中的最低評(píng)分;Maxj(u)表示用戶u在第j個(gè)第二領(lǐng)域中的最高評(píng)分;Sj(u)表示用戶u在第j個(gè)第二領(lǐng)域評(píng)分的項(xiàng)目總數(shù)。
上述方法,優(yōu)選的,所述基于所述第三矩陣構(gòu)建推薦模型包括:
基于所述第三矩陣構(gòu)建因式分解機(jī)推薦模型。
一種信息推薦裝置,包括:
第一獲取模塊,用于獲取第一領(lǐng)域的第一矩陣,所述第一矩陣用于表征各個(gè)用戶對(duì)在所述第一領(lǐng)域所使用的第一類項(xiàng)目的第一評(píng)分;
第二獲取模塊,用于獲取至少一個(gè)第二領(lǐng)域的第二矩陣,所述第二矩陣用于表征所述各個(gè)用戶對(duì)在所述第二領(lǐng)域所使用的第二類項(xiàng)目的第二評(píng)分;
歸一化模塊,用于將所述第二評(píng)分歸一化,得到所述各個(gè)用戶對(duì)在所述第二領(lǐng)域所使用的第二類項(xiàng)目的第三評(píng)分;
擴(kuò)展模塊,用于基于所述各個(gè)用戶對(duì)在所述第二領(lǐng)域所使用的第二類項(xiàng)目的第三評(píng)分對(duì)所述第一矩陣進(jìn)行擴(kuò)展,得到第三矩陣,所述第三矩陣用于表征各個(gè)用戶對(duì)在所述第一領(lǐng)域所使用的第一類項(xiàng)目的第一評(píng)分,以及各個(gè)用戶對(duì)在所述第二領(lǐng)域所使用的第二類項(xiàng)目的第三評(píng)分;
構(gòu)建模塊,用于基于所述第三矩陣構(gòu)建信息推薦模型,所述信息推薦模型用于在所述第一領(lǐng)域向用戶推薦項(xiàng)目。
上述裝置,優(yōu)選的,所述歸一化模塊包括:
歸一化單元,用于基于所述第二領(lǐng)域的第二評(píng)分對(duì)所述第二領(lǐng)域的各個(gè)第二評(píng)分進(jìn)行歸一化。
上述裝置,優(yōu)選的,所述歸一化單元用于:對(duì)于每一個(gè)用戶,基于該用戶在所述第二領(lǐng)域的所有評(píng)分,對(duì)該用戶的各個(gè)第二評(píng)分進(jìn)行歸一化。
上述裝置,優(yōu)選的,所述歸一化單元具體用于,基于第一公式將所述第二評(píng)分歸一化,所述第一公式為:
其中,j表示第j個(gè)第二領(lǐng)域;θj(u,i)表示用戶u在第j個(gè)第二領(lǐng)域?qū)?xiàng)目i的第三評(píng)分;aj為與第j個(gè)第二領(lǐng)域?qū)?yīng)的懲罰系數(shù);rj(u,i)表示用戶u在第j個(gè)第二領(lǐng)域?qū)Φ趇個(gè)項(xiàng)目的第二評(píng)分;Minj(u)表示用戶u在第j個(gè)第二領(lǐng)域中的最低評(píng)分;Maxj(u)表示用戶u在第j個(gè)第二領(lǐng)域中的最高評(píng)分;Sj(u)表示用戶u在第j個(gè)第二領(lǐng)域評(píng)分的項(xiàng)目總數(shù)。
上述裝置,優(yōu)選的,所述構(gòu)建模塊具體用于,基于所述第三矩陣構(gòu)建因式分解機(jī)推薦模型。
通過以上方案可知,本申請(qǐng)?zhí)峁┑囊环N信息推薦方法及裝置,將用戶在第二領(lǐng)域?qū)Φ诙愴?xiàng)目的評(píng)分進(jìn)行歸一化,通過用戶對(duì)第二類項(xiàng)目的歸一化后的評(píng)分對(duì)第一領(lǐng)域的用于表征各個(gè)用戶對(duì)在第一領(lǐng)域所使用的第一類項(xiàng)目的第一評(píng)分的矩陣進(jìn)行擴(kuò)展,使用擴(kuò)展后的矩陣構(gòu)建信息推薦模型,通過該信息推薦模型在第一領(lǐng)域向用戶推薦項(xiàng)目,實(shí)現(xiàn)了跨領(lǐng)域推薦。而且,構(gòu)建信息推薦模型所使用的矩陣是通過用戶在第二領(lǐng)域的行為特征數(shù)據(jù)(即用戶對(duì)第二類項(xiàng)目的評(píng)分)進(jìn)行擴(kuò)展得到的,也就是說(shuō),所構(gòu)建的信息推薦模型融入了用戶行為特征的差異,從而提高了跨領(lǐng)域推薦方法的普遍適用性。
附圖說(shuō)明
為了更清楚地說(shuō)明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來(lái)講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1為本發(fā)明實(shí)施提供的信息推薦方法的一種實(shí)現(xiàn)流程圖;
圖2為本發(fā)明實(shí)施提供的“用戶-項(xiàng)目-評(píng)分”矩陣的一種數(shù)據(jù)格式示意圖;
圖3a為本發(fā)明實(shí)施提供的第三矩陣的一種數(shù)據(jù)格式的示意圖;
圖3b為本發(fā)明實(shí)施提供的第三矩陣的另一種數(shù)據(jù)格式的示意圖;
圖3c為本發(fā)明實(shí)施提供的第三矩陣的又一種數(shù)據(jù)格式的示意圖;
圖4為本發(fā)明實(shí)施提供的第三矩陣的又一種數(shù)據(jù)格式的示意圖;
圖5為本發(fā)明實(shí)施提供的第三矩陣的又一種數(shù)據(jù)格式的示意圖;
圖6為本發(fā)明實(shí)施提供的信息推薦裝置的一種結(jié)構(gòu)示意圖。
說(shuō)明書和權(quán)利要求書及上述附圖中的術(shù)語(yǔ)“第一”、“第二”、“第三”“第四”等(如果存在)是用于區(qū)別類似的部分,而不必用于描述特定的順序或先后次序。應(yīng)該理解這樣使用的數(shù)據(jù)在適當(dāng)情況下可以互換,以便這里描述的本申請(qǐng)的實(shí)施例能夠以除了在這里圖示的以外的順序?qū)嵤?/p>
具體實(shí)施方式
下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有付出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
請(qǐng)參閱圖1,圖1為本發(fā)明實(shí)施提供的信息推薦方法的一種實(shí)現(xiàn)流程圖,可以包括:
步驟S11:獲取第一領(lǐng)域的第一矩陣,第一矩陣用于表征各個(gè)用戶對(duì)在第一領(lǐng)域所使用的第一類項(xiàng)目的第一評(píng)分;
對(duì)于每一個(gè)領(lǐng)域來(lái)說(shuō),都有一個(gè)“用戶-項(xiàng)目-評(píng)分”矩陣,該矩陣可以用于本領(lǐng)域的信息推薦算法建模。本發(fā)明實(shí)施例中,為了便于敘述,將第一領(lǐng)域的“用戶-項(xiàng)目-評(píng)分”矩陣記為第一矩陣。項(xiàng)目是指領(lǐng)域所提供的事物,如,若一個(gè)領(lǐng)域?yàn)橐魳肪W(wǎng)站,該領(lǐng)域的項(xiàng)目為該網(wǎng)站所提供的音樂,每一首音樂稱為一個(gè)項(xiàng)目。若一個(gè)領(lǐng)域?yàn)橐曨l網(wǎng)站,則該領(lǐng)域的項(xiàng)目為該網(wǎng)站所提供的視頻,每一個(gè)視頻稱為一個(gè)項(xiàng)目。
“用戶-項(xiàng)目-評(píng)分”矩陣的一種數(shù)據(jù)格式如圖2所示。
圖2中,“用戶-項(xiàng)目”部分的非零值對(duì)應(yīng)相應(yīng)的用戶或項(xiàng)目,評(píng)分部分的數(shù)值表示用戶對(duì)項(xiàng)目的真實(shí)評(píng)分。每一行表示一個(gè)用戶對(duì)一個(gè)項(xiàng)目的評(píng)分。例如,圖2中,用戶u1對(duì)項(xiàng)目i1的評(píng)分為4,用戶u1對(duì)項(xiàng)目i2的評(píng)分為5,用戶u2對(duì)項(xiàng)目i2的評(píng)分為3,用戶u3對(duì)項(xiàng)目i3的評(píng)分為2。
步驟S12:獲取至少一個(gè)第二領(lǐng)域的第二矩陣,第二矩陣用于表征上述各個(gè)用戶對(duì)在第二領(lǐng)域所使用的第二類項(xiàng)目的第二評(píng)分;
第二領(lǐng)域與第一領(lǐng)域?yàn)椴煌念I(lǐng)域。例如,第一領(lǐng)域?yàn)锳音樂網(wǎng)站,第二領(lǐng)域?yàn)锽音樂網(wǎng)站,或者,第二領(lǐng)域?yàn)镃視頻網(wǎng)站等等。也就是說(shuō),第一領(lǐng)域和第二領(lǐng)域可以是同類型的網(wǎng)站,如均是音樂網(wǎng)站;第一領(lǐng)域和第二領(lǐng)域也可以是不同類型的網(wǎng)站,如,一個(gè)是音樂網(wǎng)站,一個(gè)是視頻網(wǎng)站。
第二領(lǐng)域的項(xiàng)目與第一領(lǐng)域的項(xiàng)目可能完全不同,也可能部分相同。
可以從一個(gè)第二領(lǐng)域獲取第二矩陣,也可以從多個(gè)第二領(lǐng)域獲取多個(gè)第二矩陣,其中,從每個(gè)第二領(lǐng)域中獲取一個(gè)第二矩陣。
第二矩陣的數(shù)據(jù)格式與第一矩陣的數(shù)據(jù)格式相同,這里不再贅述。
本發(fā)明實(shí)施例中,第一領(lǐng)域和第二領(lǐng)域至少有部分用戶相同。也就是說(shuō),第一領(lǐng)域和第二領(lǐng)域的用戶可以全部相同,也可以只有部分相同。
對(duì)于屬于第一領(lǐng)域的用戶,但未在第二領(lǐng)域中使用任何第二類項(xiàng)目的用戶(包括屬于第一領(lǐng)域而不屬于第二領(lǐng)域的用戶,以及同時(shí)屬于第一領(lǐng)域和第二領(lǐng)域,但未在第二領(lǐng)域使用任何第二類項(xiàng)目的用戶),則第二矩陣中,該類用戶對(duì)上述各個(gè)用戶所使用的第二類項(xiàng)目的評(píng)分為0。
需要說(shuō)明的是,本發(fā)明實(shí)施例中,步驟S11和步驟S12之間的執(zhí)行順序不作具體限定,可以先執(zhí)行步驟S11,再執(zhí)行步驟S12,或者,先執(zhí)行步驟S12,再執(zhí)行步驟S11,或者,步驟S11和步驟S12同時(shí)執(zhí)行。
步驟S13:將第二評(píng)分歸一化,得到各個(gè)用戶對(duì)在第二領(lǐng)域所使用的第二類項(xiàng)目的第三評(píng)分;
由于不同的領(lǐng)域,對(duì)項(xiàng)目評(píng)分的方式不同。例如,有的網(wǎng)站的評(píng)分范圍是1-5星,有的網(wǎng)站的評(píng)分范圍則是1-10分,還有些網(wǎng)站則是沒有給用戶提供評(píng)分接口,而是根據(jù)用戶的隱性行為計(jì)算出評(píng)分值。因此,為了將第二領(lǐng)域的用戶行為數(shù)據(jù)擴(kuò)展到第一領(lǐng)域,本發(fā)明實(shí)施例中,將用戶在第二領(lǐng)域的評(píng)分歸一化。
步驟S14:基于各個(gè)用戶對(duì)在第二領(lǐng)域所使用的第二類項(xiàng)目的第三評(píng)分對(duì)第一矩陣進(jìn)行擴(kuò)展,得到第三矩陣,第三矩陣用于表征各個(gè)用戶對(duì)在第一領(lǐng)域所使用的第一類項(xiàng)目的第一評(píng)分,以及各個(gè)用戶對(duì)在第二領(lǐng)域所使用的第二類項(xiàng)目的第三評(píng)分;
將第二領(lǐng)域中用戶對(duì)第二類項(xiàng)目的歸一化后的評(píng)分添加到第一矩陣,得到第三矩陣。第三矩陣為“用戶-第一類項(xiàng)目-第二類項(xiàng)目及評(píng)分-評(píng)分”矩陣。若第二領(lǐng)域只有一個(gè),則第三矩陣的數(shù)據(jù)格式如圖3a所示。
圖3a中每一行表示一個(gè)用戶對(duì)不同領(lǐng)域的項(xiàng)目的評(píng)分。其中,用戶、第一類項(xiàng)目和評(píng)分為用戶在第一領(lǐng)域中對(duì)第一類項(xiàng)目的真實(shí)評(píng)分。第二類項(xiàng)目則是用戶在第二領(lǐng)域?qū)Φ诙愴?xiàng)目的歸一化后的評(píng)分。例如,用戶u1對(duì)第二類項(xiàng)目p1的歸一化評(píng)分為0.1,用戶u1對(duì)第二類項(xiàng)目p3的歸一化評(píng)分為0.3,用戶u2對(duì)第二類項(xiàng)目p2的歸一化評(píng)分為0.2,用戶u3對(duì)第二類項(xiàng)目p3的歸一化評(píng)分為0.8。
圖3a所示示例中,同一用戶在不同領(lǐng)域評(píng)論的項(xiàng)目數(shù)是一樣的,具體的,用戶u1在第一領(lǐng)域中對(duì)兩個(gè)項(xiàng)目(即i1和i2)進(jìn)行了評(píng)分,在第二領(lǐng)域中也對(duì)兩個(gè)項(xiàng)目(即p1和p3)進(jìn)行了評(píng)分;用戶u2在第一領(lǐng)域中對(duì)一個(gè)項(xiàng)目(即i2)進(jìn)行了評(píng)分,在第二領(lǐng)域中也對(duì)一個(gè)項(xiàng)目(即p2)進(jìn)行了評(píng)分;用戶u3在第一領(lǐng)域中對(duì)一個(gè)項(xiàng)目(即i3)進(jìn)行了評(píng)分,在第二領(lǐng)域中也對(duì)一個(gè)項(xiàng)目(即p3)進(jìn)行了評(píng)分。
而大多數(shù)情況下,同一用戶在不同領(lǐng)域評(píng)論的項(xiàng)目數(shù)是不同?;诖?,將第二領(lǐng)域中用戶對(duì)第二類項(xiàng)目的歸一化后的評(píng)分添加到第一矩陣,得到的第三矩陣的另一種示例圖如圖3b所示。
圖3b所示示例中,用戶u1在第一領(lǐng)域評(píng)論的項(xiàng)目數(shù)(2個(gè),即i1和i2)少于其在第二領(lǐng)域的評(píng)論的項(xiàng)目數(shù)(3個(gè),即p1、p2和p3)。
同一用戶在不同領(lǐng)域評(píng)論的項(xiàng)目數(shù)是不同時(shí),本發(fā)明實(shí)施例提供的第三矩陣的又一種示例圖如圖3c所示。
圖3c所示示例中,用戶u1在第一領(lǐng)域評(píng)論的項(xiàng)目數(shù)(2個(gè),即i1和i2)多于其在第二領(lǐng)域的評(píng)論的項(xiàng)目數(shù)(1個(gè),即p1)。
若第二領(lǐng)域有兩個(gè)或更多個(gè),則第三矩陣的數(shù)據(jù)格式如圖4所示。
圖4中每一行表示一個(gè)用戶對(duì)不同領(lǐng)域的項(xiàng)目的評(píng)分。其中,用戶、第一類項(xiàng)目和評(píng)分為用戶在第一領(lǐng)域中對(duì)第一類項(xiàng)目的真實(shí)評(píng)分。第二類項(xiàng)目則是用戶在一個(gè)第二領(lǐng)域?qū)Φ诙愴?xiàng)目的歸一化后的評(píng)分。例如,用戶u1對(duì)第二類項(xiàng)目p1的歸一化評(píng)分為0.1,用戶u1對(duì)第二類項(xiàng)目p3的歸一化評(píng)分為0.3,用戶u2對(duì)第二類項(xiàng)目p2的歸一化評(píng)分為0.2,用戶u3對(duì)第二類項(xiàng)目p3的歸一化評(píng)分為0.8。第三類項(xiàng)目則是用戶在另一個(gè)第二領(lǐng)域?qū)Φ诙愴?xiàng)目的歸一化后的評(píng)分。例如,用戶u1對(duì)第三類項(xiàng)目q1的歸一化評(píng)分為0.6,用戶u1對(duì)第三類項(xiàng)目q2的歸一化評(píng)分為0.1,用戶u2對(duì)第三類項(xiàng)目q3的歸一化評(píng)分為0.4,用戶u3對(duì)第三類項(xiàng)目q2的歸一化評(píng)分為0.2。
步驟S15:基于第三矩陣構(gòu)建信息推薦模型,該信息推薦模型用于在第一領(lǐng)域向用戶推薦項(xiàng)目。
在構(gòu)建信息推薦模型后,就可以利用該信息推薦模型在第一領(lǐng)域向用戶推薦項(xiàng)目。
具體的,可以利用該信息推薦模型預(yù)測(cè)出用戶對(duì)未使用項(xiàng)目的評(píng)分,按照預(yù)測(cè)評(píng)分由高到低的順序?qū)㈨?xiàng)目推薦給用戶。
本發(fā)明實(shí)施例提供的信息推薦方法,將用戶在第二領(lǐng)域?qū)Φ诙愴?xiàng)目的評(píng)分進(jìn)行歸一化,通過用戶對(duì)第二類項(xiàng)目的歸一化后的評(píng)分對(duì)第一領(lǐng)域的用于表征各個(gè)用戶對(duì)在第一領(lǐng)域所使用的第一類項(xiàng)目的第一評(píng)分的矩陣進(jìn)行擴(kuò)展,使用擴(kuò)展后的矩陣構(gòu)建信息推薦模型,通過該信息推薦模型在第一領(lǐng)域向用戶推薦項(xiàng)目,實(shí)現(xiàn)了跨領(lǐng)域推薦。而且,構(gòu)建信息推薦模型所使用的矩陣是通過用戶在第二領(lǐng)域的行為特征數(shù)據(jù)(即用戶對(duì)第二類項(xiàng)目的評(píng)分)進(jìn)行擴(kuò)展得到的,也就是說(shuō),所構(gòu)建的信息推薦模型融入了用戶行為特征的差異,從而提高了跨領(lǐng)域推薦方法的普遍適用性。
在一可選的實(shí)施例中,將第二評(píng)分歸一化的一種實(shí)現(xiàn)方式可以為:
基于第二領(lǐng)域的第二評(píng)分對(duì)第二領(lǐng)域的各個(gè)第二評(píng)分進(jìn)行歸一化。也就是說(shuō),本發(fā)明實(shí)施例中,是分領(lǐng)域?qū)Φ诙u(píng)分進(jìn)行歸一化。例如,假設(shè)有多個(gè)第二領(lǐng)域,分別為D1、D2、D3、D4……,則對(duì)第j(j=1,2,3,4,……)個(gè)第二領(lǐng)域Dj中的第二評(píng)分進(jìn)行歸一化時(shí),只應(yīng)用Dj領(lǐng)域中的第二評(píng)分即可,而無(wú)需其它第二領(lǐng)域Dk(k≠j)的第二評(píng)分。
本發(fā)明實(shí)施例中,每個(gè)第二領(lǐng)域的評(píng)分歸一化均是針對(duì)自身領(lǐng)域進(jìn)行的,歸一化操作并不依賴其它領(lǐng)域的評(píng)分,從而可以進(jìn)行并行運(yùn)算,降低推薦模型的構(gòu)建時(shí)間;而且,領(lǐng)域間不互相依賴,算法的時(shí)間復(fù)雜度可控。
在一可選的實(shí)施例中,在對(duì)第j個(gè)第二領(lǐng)域Dj中的第二評(píng)分進(jìn)行歸一化時(shí),分用戶進(jìn)行歸一化。即,對(duì)于每一個(gè)用戶,基于該用戶在第二領(lǐng)域Dj中的所有評(píng)分,對(duì)該用戶在第二領(lǐng)域Dj中的各個(gè)第二評(píng)分進(jìn)行歸一化。
在一可選的實(shí)施例中,可以基于第一公式對(duì)第二評(píng)分進(jìn)行歸一化。第一公式為:
其中,j表示第j個(gè)第二領(lǐng)域;θj(u,i)表示用戶u在第j個(gè)第二領(lǐng)域?qū)?xiàng)目i的第三評(píng)分;aj為與第j個(gè)第二領(lǐng)域?qū)?yīng)的懲罰系數(shù);rj(u,i)表示用戶u在第j個(gè)第二領(lǐng)域?qū)Φ趇個(gè)項(xiàng)目的第二評(píng)分;Minj(u)表示用戶u在第j個(gè)第二領(lǐng)域中的最低評(píng)分;Maxj(u)表示用戶u在第j個(gè)第二領(lǐng)域中的最高評(píng)分;Sj(u)表示用戶u在第j個(gè)第二領(lǐng)域評(píng)分的項(xiàng)目總數(shù)。
本發(fā)明實(shí)施例中,每個(gè)第二領(lǐng)域都對(duì)應(yīng)一個(gè)懲罰系數(shù)。該懲罰系數(shù)的主要作用是控制第二領(lǐng)域帶入到第一領(lǐng)域的信息量。若想第二領(lǐng)域?qū)Φ谝活I(lǐng)域的影響大一些,則降低懲罰系數(shù)取值;若想第二領(lǐng)域?qū)Φ谝活I(lǐng)域的影響小一些,則增大懲罰系數(shù)的取值。懲罰系數(shù)的具體取值可以根據(jù)實(shí)際需求進(jìn)行確定,例如,在將數(shù)據(jù)豐富的第二領(lǐng)域的數(shù)據(jù)帶入到用戶行為稀疏的第一領(lǐng)域時(shí)需要控制帶入到第一領(lǐng)域的數(shù)據(jù)量,以保證帶入到第一領(lǐng)域的數(shù)據(jù)處于輔助地位,而不是主導(dǎo)地位。此時(shí)可以將第二領(lǐng)域的懲罰系數(shù)設(shè)置的大一些。
在一可選的實(shí)施例中,基于第三矩陣構(gòu)建推薦模型可以包括:
基于第三矩陣構(gòu)建因式分解機(jī)(Factorization Machines,F(xiàn)M)信息推薦模型。
因式分解機(jī)信息推薦模型可以為:
其中,為一個(gè)用戶對(duì)第一領(lǐng)域的一個(gè)第一類項(xiàng)目的預(yù)測(cè)評(píng)分。
xi為因式分解機(jī)信息推薦模型的特征,該特征根據(jù)待預(yù)測(cè)的用戶及待預(yù)測(cè)第一類項(xiàng)目從第三矩陣中確定。具體的,xi的取值個(gè)數(shù)n為第三矩陣的列數(shù)減1,xi的取值包括:第三矩陣中,表征待預(yù)測(cè)用戶的第一序列,表征第一領(lǐng)域中的待預(yù)測(cè)第一類項(xiàng)目有評(píng)分的第二序列,以及表征待預(yù)測(cè)用戶對(duì)第二領(lǐng)域的第二類項(xiàng)目的評(píng)分的第三序列。
例如,假設(shè)第一領(lǐng)域的用戶數(shù)為5,第一領(lǐng)域的項(xiàng)目數(shù)為4,第二領(lǐng)域的項(xiàng)目數(shù)為3,基于此構(gòu)建的第三矩陣如圖5所示。則,
如果要預(yù)測(cè)用戶u1對(duì)項(xiàng)目i3的評(píng)分,則xi的取值共12個(gè),分別為{1,0,0,0,0;0,0,1,0;0.1,0.3,0.3},其中,前5個(gè)取值為表征待預(yù)測(cè)用戶u1的第一序列;之后的4個(gè)取值為表征第一領(lǐng)域中的待預(yù)測(cè)第一類項(xiàng)目i3有評(píng)分的第二序列;最后3個(gè)取值為表征待預(yù)測(cè)用戶u1對(duì)第二領(lǐng)域的第二類項(xiàng)目的評(píng)分的第三序列。
若要預(yù)測(cè)用戶u1對(duì)項(xiàng)目i4的評(píng)分,則xi的取值共12個(gè),分別為{1,0,0,0,0;0,0,0,1;0.1,0.3,0.3},其中,前5個(gè)取值為表征待預(yù)測(cè)用戶u1的第一序列;之后的4個(gè)取值為表征第一領(lǐng)域中的待預(yù)測(cè)第一類項(xiàng)目i4有評(píng)分的第二序列;最后3個(gè)取值為表征待預(yù)測(cè)用戶u1對(duì)第二領(lǐng)域的第二類項(xiàng)目的評(píng)分的第三序列。
若要預(yù)測(cè)用戶u2對(duì)項(xiàng)目i1的評(píng)分,則xi的取值共12個(gè),分別為{0,1,0,0,0;1,0,0,0;0,0.2,0}。其中,前5個(gè)取值為表征待預(yù)測(cè)用戶u2的第一序列;之后的4個(gè)取值為表征第一領(lǐng)域中的待預(yù)測(cè)第一類項(xiàng)目i1有評(píng)分的第二序列;最后3個(gè)取值為表征待預(yù)測(cè)用戶u2對(duì)第二領(lǐng)域的第二類項(xiàng)目的評(píng)分的第三序列。
w0為常數(shù)項(xiàng);
wi為特征xi的系數(shù);
wi,j為特征xi與特征xj間的相關(guān)系數(shù)。由于特征xi與特征xj間的相關(guān)系數(shù),以及特征xj與特征xi間的相關(guān)系數(shù)是相同的,因此,由特征間的相關(guān)系數(shù)(包括不同特征間的相關(guān)系數(shù),以及同一特征間的相關(guān)系數(shù))構(gòu)成的矩陣是一個(gè)n×n的對(duì)稱矩陣(為便于敘述,該矩陣記為An×n),并且是一個(gè)正定矩陣,因此,矩陣An×n可以被分解為兩個(gè)互為轉(zhuǎn)置矩陣的點(diǎn)乘積,即所以,矩陣An×n中的元素wi,j可以分解為一個(gè)行矩陣和一個(gè)列矩陣的點(diǎn)乘積,即,wi,j=vi·vjT,vi和vj的維度均為k,vi為Bn×k中的第i行,vj為Bn×k中的第j行,vjT即是中的第j列。
基于第三矩陣構(gòu)建因式分解機(jī)信息推薦模型的過程就是學(xué)習(xí)如下參數(shù)的過程。
{w0,w1,…,wn,v1,1,…,vn,k}
在一可選的實(shí)施例中,可以通過隨機(jī)梯度下降法(Stochastic Gradient Descent,SGD)學(xué)習(xí)上述參數(shù),或者,通過交替最小二乘法(Alternating Least Squares,ALS)學(xué)習(xí)上述參數(shù)。具體學(xué)習(xí)過程不屬于本發(fā)明的研究重點(diǎn),這里不再論述。
與方法實(shí)施例相對(duì)應(yīng),本發(fā)明實(shí)施例還提供一種信息推薦裝置。如圖6所示,為本發(fā)明實(shí)施例提供的信息推薦裝置的一種結(jié)構(gòu)示意圖,可以包括:
第一獲取模塊61,第二獲取模塊62,歸一化模塊63,擴(kuò)展模塊64和構(gòu)建模塊65;其中,
第一獲取模塊61用于獲取第一領(lǐng)域的第一矩陣,第一矩陣用于表征各個(gè)用戶對(duì)在第一領(lǐng)域所使用的第一類項(xiàng)目的第一評(píng)分;
對(duì)于每一個(gè)領(lǐng)域來(lái)說(shuō),都有一個(gè)“用戶-項(xiàng)目-評(píng)分”矩陣,該矩陣可以用于本領(lǐng)域的信息推薦算法建模。本發(fā)明實(shí)施例中,為了便于敘述,將第一領(lǐng)域的“用戶-項(xiàng)目-評(píng)分”矩陣記為第一矩陣。項(xiàng)目是指領(lǐng)域所提供的事物,如,若一個(gè)領(lǐng)域?yàn)橐魳肪W(wǎng)站,該領(lǐng)域的項(xiàng)目為該網(wǎng)站所提供的音樂,每一首音樂稱為一個(gè)項(xiàng)目。若一個(gè)領(lǐng)域?yàn)橐曨l網(wǎng)站,則該領(lǐng)域的項(xiàng)目為該網(wǎng)站所提供的視頻,每一個(gè)視頻稱為一個(gè)項(xiàng)目。
“用戶-項(xiàng)目-評(píng)分”矩陣的一種數(shù)據(jù)格式如圖2所示。
圖2中,“用戶-項(xiàng)目”部分的非零值對(duì)應(yīng)相應(yīng)的用戶或項(xiàng)目,評(píng)分部分的數(shù)值表示用戶對(duì)項(xiàng)目的真實(shí)評(píng)分。每一行表示一個(gè)用戶對(duì)一個(gè)項(xiàng)目的評(píng)分。例如,圖2中,用戶u1對(duì)項(xiàng)目i1的評(píng)分為4,用戶u1對(duì)項(xiàng)目i2的評(píng)分為5,用戶u2對(duì)項(xiàng)目i2的評(píng)分為3,用戶u3對(duì)項(xiàng)目i3的評(píng)分為2。
第二獲取模塊62用于獲取至少一個(gè)第二領(lǐng)域的第二矩陣,第二矩陣用于表征各個(gè)用戶對(duì)在第二領(lǐng)域所使用的第二類項(xiàng)目的第二評(píng)分;
第二領(lǐng)域與第一領(lǐng)域?yàn)椴煌念I(lǐng)域。例如,第一領(lǐng)域?yàn)榘俣纫魳?,第二領(lǐng)域?yàn)樗压芬魳罚蛘?,第二領(lǐng)域?yàn)榘俣纫曨l,或者第二領(lǐng)域?yàn)樗押曨l等等。
第二領(lǐng)域的項(xiàng)目與第一領(lǐng)域的項(xiàng)目可能完全不同,也可能部分相同。
可以獲取一個(gè)第二領(lǐng)域的第二矩陣,也可以獲取多個(gè)第二領(lǐng)域的第二矩陣。
本發(fā)明實(shí)施例中,第一領(lǐng)域和第二領(lǐng)域的用戶相同。
第二矩陣的數(shù)據(jù)格式與第一矩陣的數(shù)據(jù)格式相同,這里不再贅述。
歸一化模塊63用于將第二評(píng)分歸一化,得到各個(gè)用戶對(duì)在第二領(lǐng)域所使用的第二類項(xiàng)目的第三評(píng)分;
由于不同的領(lǐng)域,對(duì)項(xiàng)目評(píng)分的方式不同。例如,有的網(wǎng)站的評(píng)分范圍是1-5星,有的網(wǎng)站的評(píng)分范圍則是1-10分,還有些網(wǎng)站則是沒有給用戶提供評(píng)分接口,而是根據(jù)用戶的隱性行為計(jì)算出評(píng)分值。因此,為了將第二領(lǐng)域的用戶行為數(shù)據(jù)擴(kuò)展到第一領(lǐng)域,本發(fā)明實(shí)施例中,將用戶在第二領(lǐng)域的評(píng)分歸一化。
擴(kuò)展模塊64用于基于各個(gè)用戶對(duì)在第二領(lǐng)域所使用的第二類項(xiàng)目的第三評(píng)分對(duì)第一矩陣進(jìn)行擴(kuò)展,得到第三矩陣,第三矩陣用于表征各個(gè)用戶對(duì)在第一領(lǐng)域所使用的第一類項(xiàng)目的第一評(píng)分,以及各個(gè)用戶對(duì)在第二領(lǐng)域所使用的第二類項(xiàng)目的第三評(píng)分;
將第二領(lǐng)域中用戶對(duì)第二類項(xiàng)目的歸一化后的評(píng)分添加到第一矩陣,得到第三矩陣。第三矩陣為“用戶-第一類項(xiàng)目-第二類項(xiàng)目及評(píng)分-評(píng)分”矩陣。若第二領(lǐng)域只有一個(gè),則第三矩陣的數(shù)據(jù)格式如圖3所示。
圖3中每一行表示一個(gè)用戶對(duì)不同領(lǐng)域的項(xiàng)目的評(píng)分。其中,用戶、第一類項(xiàng)目和評(píng)分為用戶在第一領(lǐng)域中對(duì)第一類項(xiàng)目的真實(shí)評(píng)分。第二類項(xiàng)目則是用戶在第二領(lǐng)域?qū)Φ诙愴?xiàng)目的歸一化后的評(píng)分。例如,用戶u1對(duì)第二類項(xiàng)目p1的歸一化評(píng)分為0.1,用戶u1對(duì)第二類項(xiàng)目p3的歸一化評(píng)分為0.3,用戶u2對(duì)第二類項(xiàng)目p2的歸一化評(píng)分為0.2,用戶u3對(duì)第二類項(xiàng)目p3的歸一化評(píng)分為0.8。
若第二領(lǐng)域有兩個(gè)或更多個(gè),則第三矩陣的數(shù)據(jù)格式如圖4所示。
圖4中每一行表示一個(gè)用戶對(duì)不同領(lǐng)域的項(xiàng)目的評(píng)分。其中,用戶、第一類項(xiàng)目和評(píng)分為用戶在第一領(lǐng)域中對(duì)第一類項(xiàng)目的真實(shí)評(píng)分。第二類項(xiàng)目則是用戶在一個(gè)第二領(lǐng)域?qū)Φ诙愴?xiàng)目的歸一化后的評(píng)分。例如,用戶u1對(duì)第二類項(xiàng)目p1的歸一化評(píng)分為0.1,用戶u1對(duì)第二類項(xiàng)目p3的歸一化評(píng)分為0.3,用戶u2對(duì)第二類項(xiàng)目p2的歸一化評(píng)分為0.2,用戶u3對(duì)第二類項(xiàng)目p3的歸一化評(píng)分為0.8。第三類項(xiàng)目則是用戶在另一個(gè)第二領(lǐng)域?qū)Φ诙愴?xiàng)目的歸一化后的評(píng)分。例如,用戶u1對(duì)第三類項(xiàng)目q1的歸一化評(píng)分為0.6,用戶u1對(duì)第三類項(xiàng)目q2的歸一化評(píng)分為0.1,用戶u2對(duì)第三類項(xiàng)目q3的歸一化評(píng)分為0.4,用戶u3對(duì)第三類項(xiàng)目q2的歸一化評(píng)分為0.2。
構(gòu)建模塊65用于基于第三矩陣構(gòu)建信息推薦模型,該信息推薦模型用于在第一領(lǐng)域向用戶推薦項(xiàng)目。
在構(gòu)建信息推薦模型后,就可以利用該信息推薦模型在第一領(lǐng)域向用戶推薦項(xiàng)目。
本發(fā)明實(shí)施例提供的信息推薦裝置,將用戶在第二領(lǐng)域?qū)Φ诙愴?xiàng)目的評(píng)分進(jìn)行歸一化,通過用戶對(duì)第二類項(xiàng)目的歸一化后的評(píng)分對(duì)第一領(lǐng)域的用于表征各個(gè)用戶對(duì)在第一領(lǐng)域所使用的第一類項(xiàng)目的第一評(píng)分的矩陣進(jìn)行擴(kuò)展,使用擴(kuò)展后的矩陣構(gòu)建信息推薦模型,通過該信息推薦模型在第一領(lǐng)域向用戶推薦項(xiàng)目,實(shí)現(xiàn)了跨領(lǐng)域推薦。而且,構(gòu)建信息推薦模型所使用的矩陣是通過用戶在第二領(lǐng)域的行為特征數(shù)據(jù)(即用戶對(duì)第二類項(xiàng)目的評(píng)分)進(jìn)行擴(kuò)展得到的,也就是說(shuō),所構(gòu)建的信息推薦模型融入了用戶行為特征的差異,從而提高了跨領(lǐng)域推薦方法的普遍適用性。
在一個(gè)可選的實(shí)施例中,歸一化模塊63可以包括:
歸一化單元,用于基于第二領(lǐng)域的第二評(píng)分對(duì)第二領(lǐng)域的各個(gè)第二評(píng)分進(jìn)行歸一化。
也就是說(shuō),本發(fā)明實(shí)施例中,是分領(lǐng)域?qū)Φ诙u(píng)分進(jìn)行歸一化。例如,假設(shè)有多個(gè)第二領(lǐng)域,分別為D1、D2、D3、D4……,則對(duì)第j(j=1,2,3,4,……)個(gè)第二領(lǐng)域Dj中的第二評(píng)分進(jìn)行歸一化時(shí),只應(yīng)用Dj領(lǐng)域中的第二評(píng)分即可,而無(wú)需其它第二領(lǐng)域Dk(k≠j)的第二評(píng)分。
本發(fā)明實(shí)施例中,每個(gè)第二領(lǐng)域的評(píng)分歸一化均是針對(duì)自身領(lǐng)域進(jìn)行的,歸一化操作并不依賴其它領(lǐng)域的評(píng)分,從而可以進(jìn)行并行運(yùn)算,降低推薦模型的構(gòu)建時(shí)間;而且,領(lǐng)域間不互相依賴,算法的時(shí)間復(fù)雜度可控。
在一可選的實(shí)施例中,歸一化單元具體可以用于,對(duì)于每一個(gè)用戶,基于該用戶在第二領(lǐng)域的所有評(píng)分,對(duì)該用戶的各個(gè)第二評(píng)分進(jìn)行歸一化。
本發(fā)明實(shí)施例中,在對(duì)第j個(gè)第二領(lǐng)域Dj中的第二評(píng)分進(jìn)行歸一化時(shí),分用戶進(jìn)行歸一化。即,對(duì)于每一個(gè)用戶,基于該用戶在第二領(lǐng)域Dj中的所有評(píng)分,對(duì)該用戶在第二領(lǐng)域Dj中的各個(gè)第二評(píng)分進(jìn)行歸一化。
在一可選的實(shí)施例中,歸一化單元可以基于第一公式將所述第二評(píng)分歸一化,所述第一公式為:
其中,j表示第j個(gè)第二領(lǐng)域;θj(u,i)表示用戶u在第j個(gè)第二領(lǐng)域?qū)?xiàng)目i的第三評(píng)分;aj為與第j個(gè)第二領(lǐng)域?qū)?yīng)的懲罰系數(shù);rj(u,i)表示用戶u在第j個(gè)第二領(lǐng)域?qū)Φ趇個(gè)項(xiàng)目的第二評(píng)分;Minj(u)表示用戶u在第j個(gè)第二領(lǐng)域中的最低評(píng)分;Maxj(u)表示用戶u在第j個(gè)第二領(lǐng)域中的最高評(píng)分;Sj(u)表示用戶u在第j個(gè)第二領(lǐng)域評(píng)分的項(xiàng)目總數(shù)。
本發(fā)明實(shí)施例中,每個(gè)第二領(lǐng)域都對(duì)應(yīng)一個(gè)懲罰系數(shù)。該懲罰系數(shù)的主要作用是控制第二領(lǐng)域帶入到第一領(lǐng)域的信息量。若想第二領(lǐng)域?qū)Φ谝活I(lǐng)域的影響大一些,則降低懲罰系數(shù)取值;若想第二領(lǐng)域?qū)Φ谝活I(lǐng)域的影響小一些,則增大懲罰系數(shù)的取值。懲罰系數(shù)的具體取值可以根據(jù)實(shí)際需求進(jìn)行確定,例如,在將數(shù)據(jù)豐富的第二領(lǐng)域的數(shù)據(jù)帶入到用戶行為稀疏的第一領(lǐng)域時(shí)需要控制帶入到第一領(lǐng)域的數(shù)據(jù)量,以保證帶入到第一領(lǐng)域的數(shù)據(jù)處于輔助地位,而不是主導(dǎo)地位。此時(shí)可以將第二領(lǐng)域的懲罰系數(shù)設(shè)置的大一些。
在一可選的實(shí)施例中,構(gòu)建模塊65具體可以用于,基于第三矩陣構(gòu)建因式分解機(jī)推薦模型。
結(jié)合本發(fā)明公開內(nèi)容所描述的方法或者算法的步驟可以硬件的方式來(lái)實(shí)現(xiàn),也可以是由處理器執(zhí)行軟件指令的方式來(lái)實(shí)現(xiàn)。軟件指令可以由相應(yīng)的軟件模塊組成,軟件模塊可以被存放于RAM存儲(chǔ)器、閃存、ROM存儲(chǔ)器、EPROM存儲(chǔ)器、EEPROM存儲(chǔ)器、寄存器、硬盤、移動(dòng)硬盤、CD-ROM或者本領(lǐng)域熟知的任何其它形式的存儲(chǔ)介質(zhì)中。一種示例性的存儲(chǔ)介質(zhì)耦合至處理器,從而使處理器能夠從該存儲(chǔ)介質(zhì)讀取信息,且可向該存儲(chǔ)介質(zhì)寫入信息。當(dāng)然,存儲(chǔ)介質(zhì)也可以是處理器的組成部分。處理器和存儲(chǔ)介質(zhì)可以位于ASIC中。另外,該ASIC可以位于用戶設(shè)備中。當(dāng)然,處理器和存儲(chǔ)介質(zhì)也可以作為分立組件存在于用戶設(shè)備中。
本領(lǐng)域技術(shù)人員應(yīng)該可以意識(shí)到,在上述一個(gè)或多個(gè)示例中,本發(fā)明所描述的功能可以用硬件、軟件、固件或它們的任意組合來(lái)實(shí)現(xiàn)。當(dāng)使用軟件實(shí)現(xiàn)時(shí),可以將這些功能存儲(chǔ)在計(jì)算機(jī)可讀介質(zhì)中或者作為計(jì)算機(jī)可讀介質(zhì)上的一個(gè)或多個(gè)指令或代碼進(jìn)行傳輸。計(jì)算機(jī)可讀介質(zhì)包括計(jì)算機(jī)存儲(chǔ)介質(zhì)和通信介質(zhì),其中通信介質(zhì)包括便于從一個(gè)地方向另一個(gè)地方傳送計(jì)算機(jī)程序的任何介質(zhì)。存儲(chǔ)介質(zhì)可以是通用或?qū)S糜?jì)算機(jī)能夠存取的任何可用介質(zhì)。
對(duì)所公開的實(shí)施例的上述說(shuō)明,使本領(lǐng)域?qū)I(yè)技術(shù)人員能夠?qū)崿F(xiàn)或使用本發(fā)明。對(duì)這些實(shí)施例的多種修改對(duì)本領(lǐng)域的專業(yè)技術(shù)人員來(lái)說(shuō)將是顯而易見的,本文中所定義的一般原理可以在不脫離本發(fā)明的精神或范圍的情況下,在其它實(shí)施例中實(shí)現(xiàn)。因此,本發(fā)明將不會(huì)被限制于本文所示的這些實(shí)施例,而是要符合與本文所公開的原理和新穎特點(diǎn)相一致的最寬的范圍。