亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

一種基于異構(gòu)圖模型的社交活動推薦方法與流程

文檔序號:11677646閱讀:446來源:國知局
一種基于異構(gòu)圖模型的社交活動推薦方法與流程

本發(fā)明屬于大數(shù)據(jù)與人工智能領(lǐng)域,更具體地,涉及一種基于異構(gòu)圖(heterogeneousgraph)模型的社交活動推薦方法。



背景技術(shù):

近年來,在現(xiàn)實(shí)世界和cyber空間不斷融合交匯的時代背景下,基于活動的社交網(wǎng)絡(luò)平臺迅速發(fā)展,如meetup、plancast、豆瓣同城活動、qq群活動等。這些平臺的建立促進(jìn)了社交活動的傳播,為活動發(fā)起者與平臺用戶提供了便捷的交流空間。然而,隨著社交網(wǎng)絡(luò)平臺的普遍推廣,平臺規(guī)模迅速擴(kuò)大,據(jù)2012年的統(tǒng)計(jì)數(shù)據(jù),meetup已經(jīng)積累了1600萬用戶,且平臺月均活動數(shù)目達(dá)到了30萬。用戶從平臺中檢索出自己最感興趣的活動已經(jīng)成了一件費(fèi)時費(fèi)力的事情,社交活動推薦系統(tǒng)的研究也因此變得愈發(fā)重要。

目前所廣泛采用的社交活動推薦方法主要包括基于內(nèi)容的(content-based)推薦算法和協(xié)同過濾算法(collaborativefiltering)。其中,基于內(nèi)容的推薦算法計(jì)算用戶興趣與候選活動內(nèi)容間的相似度,從而選取用戶在內(nèi)容上最感興趣的活動,但是該算法存在推薦內(nèi)容單一、內(nèi)容特征提取困難的問題;協(xié)同過濾算法利用相似用戶對候選活動的加權(quán)評分來預(yù)測用戶對此活動的喜好度,由于活動具有時效性,沒人能對未發(fā)生的活動產(chǎn)生有效評分,該算法在數(shù)據(jù)稀疏時推薦結(jié)果不理想,且存在嚴(yán)重的冷啟動問題。

為了解決上述兩種常用推薦方法存在的問題,人們研究得出了多種采用混合模型的推薦算法,常用的混合模型包括:決策樹、矩陣分解、概率模型、圖模型、神經(jīng)網(wǎng)絡(luò)模型等,其中采用圖模型的社交活動推薦方法被認(rèn)為性能較為突出,其在表達(dá)多輸入模型時有其先天性優(yōu)勢,直觀且易擴(kuò)充,推薦任務(wù)被轉(zhuǎn)化為圖節(jié)點(diǎn)鄰近性計(jì)算問題。然而,采用圖模型的該社交活動推薦方法仍然存在以下幾方面的技術(shù)問題:首先,對于懸掛節(jié)點(diǎn)的處理會造成對推薦結(jié)果的不當(dāng)影響;其次,對于流行社交活動的推薦會存在過飽和問題;最后,該方法在社交活動動態(tài)更新時存在效率低的問題。



技術(shù)實(shí)現(xiàn)要素:

針對現(xiàn)有技術(shù)的以上缺陷或改進(jìn)需求,本發(fā)明提供了一種基于異構(gòu)圖模型的社交活動推薦方法,其目的在于,通過改變隨機(jī)游走算法中的游走策略,解決現(xiàn)有社交活動推薦方法中對于懸掛節(jié)點(diǎn)的處理影響推薦結(jié)果、對于流行社交活動的推薦存在過飽和現(xiàn)象、以及在社交活動動態(tài)更新時效率低的技術(shù)問題。

為實(shí)現(xiàn)上述目的,按照本發(fā)明的一個方面,提供了一種基于異構(gòu)圖模型的社交活動推薦方法,包括以下步驟:

(1)獲取參與社交活動的所有用戶集合u={u1,u2,...,um}、所有的社交活動集合e={e1,e2,...,en}、以及所有的社交活動群組集合g={g1,g2,...,gw},以及每個用戶對社交活動偏好的影響因素,其中m表示用戶數(shù)量,n表示社交活動的數(shù)量,w表示社交活動群組的數(shù)量;

(2)使用聚類算法對獲取到的影響因素進(jìn)行預(yù)處理,以得到處理后的影響因素集合f={f1,f2,...fz},其中z表示處理后的影響因素的數(shù)量;

(3)將得到的所有用戶集合u={u1,u2,...,um}、所有的社交活動集合e={e1,e2,...,en}、以及所有的社交活動群組集合g={g1,g2,...,gw},以及處理后的影響因素集合f={f1,f2,...fz}中的每個元素作為異構(gòu)圖的節(jié)點(diǎn),通過訓(xùn)練集數(shù)據(jù)構(gòu)建異構(gòu)圖模型中各個節(jié)點(diǎn)間的連接,以生成異構(gòu)圖模型中的邊,并為每條邊設(shè)置相同的權(quán)重系數(shù);

(4)為異構(gòu)圖模型中存在關(guān)聯(lián)性的集合構(gòu)建對應(yīng)的鄰接矩陣;

(5)對獲取的每個鄰接矩陣進(jìn)行行歸一化,以生成轉(zhuǎn)移概率矩陣p;

(6)利用帶重啟動的隨機(jī)游走方法對異構(gòu)圖模型進(jìn)行處理,以得到每個用戶對社交活動的偏好程度;

(7)將步驟(6)中得到的每個用戶對社交活動的偏好程度按照從高到低的順序進(jìn)行排序,并將前k個偏好程度對應(yīng)的社交活動推薦給該用戶,其中k為自然數(shù)。

優(yōu)選地,步驟(5)中對于鄰接矩陣中某一行元素全零的情況,則將該行元素全部設(shè)置為1,再進(jìn)行歸一化處理。

優(yōu)選地,步驟(6)包括以下子步驟:

(6-1)令u(t),e(t),g(t),f1(t),...fz(t)分別表示隨機(jī)游走的第t步中用戶節(jié)點(diǎn)集合、社交活動節(jié)點(diǎn)集合、群組節(jié)點(diǎn)集合以及影響因素節(jié)點(diǎn)集合的概率分布向量,隨機(jī)為異構(gòu)圖模型中的每個集合中的節(jié)點(diǎn)賦概率初值,即設(shè)定u(0),e(0),g(0),f1(0),...fz(0);

(6-2)以社交活動集合中的每個節(jié)點(diǎn)為重啟動節(jié)點(diǎn),依次為每個重啟動節(jié)點(diǎn)設(shè)置請求向量q1×n;

(6-3)利用步驟(5)中得到的轉(zhuǎn)移概率矩陣、步驟(6-1)中得到的每個節(jié)點(diǎn)的概率初值和步驟(6-2)中得到的請求向量,并依次以社交活動集合中的每個節(jié)點(diǎn)為重啟動節(jié)點(diǎn),采用以下公式進(jìn)行隨機(jī)游走過程,以得到每個節(jié)點(diǎn)對應(yīng)的穩(wěn)態(tài)概率值;

......

其中,ii()是表征括號里兩類集合是否存在關(guān)聯(lián)的指示函數(shù),若存在關(guān)聯(lián)則其取值為1,否則取值為0。

優(yōu)選地,步驟(6-3)的隨機(jī)游走的每一步中,每個節(jié)點(diǎn)將其概率值沿邊傳遞到其相鄰節(jié)點(diǎn)上,同時也接收其相鄰節(jié)點(diǎn)傳遞過來的概率值,重啟動活動節(jié)點(diǎn)在每步隨機(jī)游走中會被賦予一定的重啟動概率,重復(fù)此步驟,直到各節(jié)點(diǎn)上的概率值趨于穩(wěn)定,收斂為穩(wěn)態(tài)概率值。

按照本發(fā)明的另一方面,提供了一種基于異構(gòu)圖模型的社交活動推薦方法,包括以下步驟:

(1)獲取參與社交活動的所有用戶集合u={u1,u2,...,um}、所有的社交活動集合e={e1,e2,...,en}、以及所有的社交活動群組集合g={g1,g2,...,gw},以及每個用戶對社交活動偏好的影響因素,其中m表示用戶數(shù)量,n表示社交活動的數(shù)量,w表示社交活動群組的數(shù)量;

(2)使用聚類算法對獲取到的影響因素進(jìn)行預(yù)處理,以得到處理后的影響因素集合f={f1,f2,...fz},其中z表示處理后的影響因素的數(shù)量;

(3)將得到的所有用戶集合u={u1,u2,...,um}、所有的社交活動集合e={e1,e2,...,en}、以及所有的社交活動群組集合g={g1,g2,...,gw},以及處理后的影響因素集合f={f1,f2,...fz}中的每個元素作為異構(gòu)圖的節(jié)點(diǎn),通過訓(xùn)練集數(shù)據(jù)構(gòu)建異構(gòu)圖模型中各個節(jié)點(diǎn)間的連接,以生成異構(gòu)圖模型中的邊,并為每條邊設(shè)置相同的權(quán)重系數(shù);

(4)為異構(gòu)圖模型中存在關(guān)聯(lián)性的集合構(gòu)建對應(yīng)的鄰接矩陣;

(5)對獲取的每個鄰接矩陣進(jìn)行行歸一化,以生成轉(zhuǎn)移概率矩陣p;

(6)利用帶重啟動的隨機(jī)游走方法對異構(gòu)圖模型進(jìn)行處理,以得到每個用戶對社交活動的偏好程度;

(7)利用最優(yōu)化模型對獲得的每個用戶對社交活動的偏好程度,并引入每個社交活動的容量進(jìn)行處理,在滿足社交活動所推薦的用戶數(shù)不超過其容量的前提下得到為每個用戶推薦的社交活動。

優(yōu)選地,步驟(6)包括以下子步驟:

(6-1)令u(t),e(t),g(t),f1(t),...fz(t)分別表示隨機(jī)游走的第t步中用戶節(jié)點(diǎn)集合、社交活動節(jié)點(diǎn)集合、群組節(jié)點(diǎn)集合以及影響因素節(jié)點(diǎn)集合的概率分布向量,隨機(jī)為異構(gòu)圖模型中的每個集合中的節(jié)點(diǎn)賦概率初值,即設(shè)定u(0),e(0),g(0),f1(0),...fz(0);

(6-2)以社交活動集合中的每個節(jié)點(diǎn)為重啟動節(jié)點(diǎn),依次為每個重啟動節(jié)點(diǎn)設(shè)置請求向量q1×n;

(6-3)利用步驟(5)中得到的轉(zhuǎn)移概率矩陣、步驟(6-1)中得到的每個節(jié)點(diǎn)的概率初值和步驟(6-2)中得到的請求向量,并依次以社交活動集合中的每個節(jié)點(diǎn)為重啟動節(jié)點(diǎn),采用以下公式進(jìn)行隨機(jī)游走過程,以得到每個節(jié)點(diǎn)對應(yīng)的穩(wěn)態(tài)概率值;

......

其中,ii()是表征括號里兩類集合是否存在關(guān)聯(lián)的指示函數(shù),若存在關(guān)聯(lián)則其取值為1,否則取值為0。

優(yōu)選地,步驟(7)包括以下子步驟:

(7-1)獲取社交活動集合中每個元素)的容量c=(c1,c2,…,cn),根據(jù)該容量c獲取規(guī)模系數(shù)并根據(jù)該規(guī)模系數(shù)得到每個社交活動的應(yīng)推薦人數(shù)mj*=ρcj;

(7-2)根據(jù)獲得的推薦人數(shù)構(gòu)建以下最優(yōu)化數(shù)學(xué)模型,以實(shí)現(xiàn)對用戶集合和社交活動集合的規(guī)??刂疲?/p>

最大化

滿足:ni≤k,i=1,...,m

其中sall表示用戶集合中的所有元素(即用戶)對于待推薦給其的社交活動的偏好程度的總和,pij表示第i個用戶對第j個社交活動的偏好程度,li表示待推薦給第i個用戶的社交活動,ⅱ(ej∈li)是表征第j個社交活動是否位于待推薦給第i個用戶的社交活動中的函數(shù),若在則其取值為1,否則其取值為0,mj為第j個社交活動實(shí)際被推薦的用戶數(shù),ni為第i個用戶實(shí)際被推薦的社交活動數(shù);

(7-3)將步驟(7-2)得到的最優(yōu)化數(shù)學(xué)模型轉(zhuǎn)換為0-1整數(shù)規(guī)劃問題:

最大化

滿足:

其中vm×n代表用戶-社交活動推薦矩陣,其中的元素vij代表第i個用戶是否被推薦了第j個社交活動,vij=1代表第i個用戶已經(jīng)被推薦了第j個社交活動,vij=0代表.第i個用戶沒有被推薦第j個社交活動;

(7-4)構(gòu)建以用戶被推薦的活動數(shù)k和社交活動容量c為輸入的貪婪算法,對步驟(7-3)獲取的0-1整數(shù)規(guī)劃問題進(jìn)行求解,以獲得最終的推薦結(jié)果。

優(yōu)選地,步驟(7-4)包括以下子步驟:

(7-4-1)獲取步驟(6)得到的用戶-社交活動偏好程度矩陣,矩陣中的元素pij代表第i個用戶對第j個社交活動的偏好程度,獲取用戶推薦活動數(shù)k,獲取社交活動容量c=(c1,c2,…,cn),并依據(jù)步驟(7-1)計(jì)算每個社交活動的應(yīng)推薦人數(shù)mj*;

(7-4-2)初始化用戶-社交活動推薦矩陣v為零矩陣,為用戶-社交活動推薦矩陣v中的每個用戶-社交活動對添加標(biāo)簽f,其中fij是第i個用戶與第j個社交活動的標(biāo)簽位(其中i為1到m之間的任意整數(shù),j為1到n之間的任意整數(shù)),fij=0代表該用戶-社交活動對尚未被選取,否則其取值為1,初始化所有用戶-社交活動對的標(biāo)簽位為0;

(7-4-3)從所有標(biāo)簽位為0的用戶-社交活動對中選擇偏好程度pij最大的用戶-社交活動對,并將其標(biāo)簽位fij設(shè)置為1;

(7-4-4)判斷將此用戶-社交活動(ui,ej)對添加至用戶-社交活動推薦矩陣v中會不會導(dǎo)致用戶容量、社交活動推薦人數(shù)超出其限制,若會則該子步驟結(jié)束,且跳至步驟(7-4-5),否則將其添加至用戶-社交活動推薦矩陣v中,即令用戶-社交活動推薦矩陣v對應(yīng)元素vij=1;

(7-4-5)重復(fù)(7-4-2)到(7-4-4)的步驟,直至所有用戶-社交活動對的標(biāo)簽位均為1為止,輸出最終的用戶-社交活動推薦矩陣,并為每位用戶推薦對應(yīng)的社交活動。

優(yōu)選地,步驟(7)包括以下子步驟:

(7-1)獲取社交活動集合中每個元素)的容量c=(c1,c2,…,cn),根據(jù)該容量c獲取規(guī)模系數(shù)并根據(jù)該規(guī)模系數(shù)得到每個社交活動的應(yīng)推薦人數(shù)mj*=ρcj;

(7-2)根據(jù)獲得的推薦人數(shù)構(gòu)建以下最優(yōu)化數(shù)學(xué)模型,以實(shí)現(xiàn)對用戶集合和社交活動集合的規(guī)??刂疲?/p>

最大化

滿足:ni≤k,i=1,...,m

其中sall表示用戶集合中的所有元素(即用戶)對于待推薦給其的社交活動的偏好程度的總和,pij表示第i個用戶對第j個社交活動的偏好程度,li表示待推薦給第i個用戶的社交活動,ⅱ(ej∈li)是表征第j個社交活動是否位于待推薦給第i個用戶的社交活動中的函數(shù),若在則其取值為1,否則其取值為0,mj為第j個社交活動實(shí)際被推薦的用戶數(shù),ni為第i個用戶實(shí)際被推薦的社交活動數(shù);

(7-3)將步驟(7-2)得到的最優(yōu)化數(shù)學(xué)模型轉(zhuǎn)換為0-1整數(shù)規(guī)劃問題:

最大化

滿足:

其中vm×n代表用戶-社交活動推薦矩陣,其中的元素vij代表第i個用戶是否被推薦了第j個社交活動,vij=1代表第i個用戶已經(jīng)被推薦了第j個社交活動,vij=0代表.第i個用戶沒有被推薦第j個社交活動;

(7-4)構(gòu)建以用戶被推薦的活動數(shù)k和社交活動容量c為輸入的貪婪算法,對步驟(7-3)獲取的0-1整數(shù)規(guī)劃問題進(jìn)行求解,以獲得最終的推薦結(jié)果。

優(yōu)選地,步驟(7-4)包括以下子步驟:

(7-4-1’)獲取步驟(7)中為每名用戶推薦的k個社交活動,獲取社交活動容量c=(c1,c2,…,cn),并依據(jù)步驟(7-1)計(jì)算每個社交活動的應(yīng)推薦人數(shù)mj*

(7-4-2’)遍歷所有社交活動,當(dāng)其實(shí)際被推薦人數(shù)大于其應(yīng)推薦人數(shù)達(dá)k個時,則從該社交活動的推薦用戶中選擇對其偏好程度最低的k名用戶,將這些用戶從該社交活動中移除,并依次為這k名被移除的用戶推薦新的社交活動。

總體而言,通過本發(fā)明所構(gòu)思的以上技術(shù)方案與現(xiàn)有技術(shù)相比,能夠取得下列有益效果:

1、本發(fā)明能夠解決現(xiàn)有方法對于懸掛節(jié)點(diǎn)的處理會影響推薦結(jié)果的技術(shù)問題:由于采用了步驟(6),其將重啟動節(jié)點(diǎn)設(shè)置為活動節(jié)點(diǎn),其本身不會與懸掛節(jié)點(diǎn)有直接連接,從而緩解了傳統(tǒng)方法中懸掛節(jié)點(diǎn)對于穩(wěn)態(tài)概率分布的不利影響;

2、本發(fā)明能夠解決現(xiàn)有方法中流行社交活動的推薦存在過飽和的問題:由于采用了步驟(6)得到多個用戶對社交活動的偏好程度構(gòu)成的偏好矩陣,其是列歸一化矩陣,而不同于傳統(tǒng)方法中得到的行歸一化矩陣,因此不存在流行活動對許多用戶偏好程度都很高的情況,從而能夠避免出現(xiàn)的過飽和問題。

(3)本發(fā)明能夠解決現(xiàn)有方法中社交活動動態(tài)更新時效率低的技術(shù)問題:由于采用了步驟(6),當(dāng)系統(tǒng)添加了新的社交活動時,僅需要以該社交活動作為重啟動節(jié)點(diǎn)進(jìn)行一次隨機(jī)游走過程,不同于傳統(tǒng)方法中需要以每個用戶為重啟動節(jié)點(diǎn)進(jìn)行多次隨機(jī)游走過程,因此提升了系統(tǒng)的運(yùn)行效率。

(4)由于本發(fā)明采用了步驟(8),其通過引入活動容量維度,結(jié)合步驟(6)中的用戶對社交活動的偏好程度,在保證每個社交活動的推薦人數(shù)不超過其容量限制的前提下,為每位用戶推薦其最感興趣的社交活動,因此使得每個活動實(shí)際被推薦的用戶數(shù)目與其預(yù)期規(guī)模適配,從而提升了用戶和社交活動舉辦方的體驗(yàn)。

附圖說明

圖1是本發(fā)明基于異構(gòu)圖模型的社交活動推薦方法的流程圖。

圖2是本發(fā)明方法中建立的異構(gòu)圖模型的示意圖。

具體實(shí)施方式

為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,以下結(jié)合附圖及實(shí)施例,對本發(fā)明進(jìn)行進(jìn)一步詳細(xì)說明。應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。此外,下面所描述的本發(fā)明各個實(shí)施方式中所涉及到的技術(shù)特征只要彼此之間未構(gòu)成沖突就可以相互組合。

如圖1所示,本發(fā)明基于異構(gòu)圖模型的社交活動推薦方法包括以下步驟:

步驟1:獲取參與社交活動的所有用戶集合u={u1,u2,...,um}、所有的社交活動集合e={e1,e2,...,en}、以及所有的社交活動群組集合g={g1,g2,...,gw},以及每個用戶對社交活動偏好的影響因素,其中m表示用戶數(shù)量,n表示社交活動的數(shù)量,w表示社交活動群組的數(shù)量;具體而言,影響因素是通過網(wǎng)絡(luò)爬蟲的方式獲取到的,且包括地理位置、線上與線下社交關(guān)系、標(biāo)簽信息(其用于表示用戶、社交活動群組對于社交活動的興趣)等;

步驟2:使用聚類算法對獲取到的影響因素進(jìn)行預(yù)處理,以得到處理后的影響因素集合f={f1,f2,...fz},其中z表示處理后的影響因素的數(shù)量;本步驟是為了降低圖模型的稀疏性;

具體而言,本發(fā)明中使用的聚類算法是k-means聚類算法,如果獲取的影響因素是地理位置,則經(jīng)過該聚類算法處理后得到的是地理區(qū)域,如果獲得的影響因素是標(biāo)簽信息,則經(jīng)過該聚類算法處理后得到是主題(例如,用戶a的標(biāo)簽信息是“籃球”,用戶b的標(biāo)簽是“足球”,則經(jīng)過聚類處理后得到的主題是“體育運(yùn)動”),針對影響因素是線上與線下社交關(guān)系的情況,則無需對其進(jìn)行聚類處理;f1用于表示地理區(qū)域的集合r={r1,r2,...rx},f2用于表示主題的集合s={s1,s2,...sy},其中x和y分別表示區(qū)域和主題的數(shù)量;

步驟3:將步驟1中得到的所有用戶集合u={u1,u2,...,um}、所有的社交活動集合e={e1,e2,...,en}、以及所有的社交活動群組集合g={g1,g2,...,gw},以及步驟2中得到的處理后的影響因素集合f={f1,f2,...fr}中的每個元素作為異構(gòu)圖的節(jié)點(diǎn),通過訓(xùn)練集數(shù)據(jù)構(gòu)建異構(gòu)圖模型中各個節(jié)點(diǎn)間的連接,以生成異構(gòu)圖模型中的邊,并為每條邊設(shè)置相同的權(quán)重系數(shù);例如,當(dāng)用戶u1參加過社交活動e2,節(jié)點(diǎn)u1與節(jié)點(diǎn)e2間建立一條邊,如圖2所示,在本發(fā)明中該權(quán)重系數(shù)為正整數(shù)(其優(yōu)選為1);

圖2是本發(fā)明基于活動的社交網(wǎng)絡(luò)中包含用戶、活動、群組、標(biāo)簽、區(qū)域節(jié)點(diǎn)的異構(gòu)圖示意圖。在圖2中,用戶u2參與群組g1,用戶u3參與群組g2,用戶u1的家庭住址在區(qū)域r1,同時群組g1舉辦的社交活動e1也在此地舉行,用戶u1喜歡主題s2,群組g1也選擇主題s2來表達(dá)其興趣。

步驟4:為異構(gòu)圖模型中存在關(guān)聯(lián)性的集合構(gòu)建對應(yīng)的鄰接矩陣;其中異構(gòu)圖模型中兩個集合存在關(guān)聯(lián)性是指兩個集合中存在有彼此連接的節(jié)點(diǎn),若兩類影響因子集合間不存在關(guān)聯(lián)性,則不用構(gòu)造鄰接矩陣。具體而言,某個集合中的所有元素(即對應(yīng)的異構(gòu)圖模型中的節(jié)點(diǎn))與另一個集合中的所有元素之間生成其鄰接矩陣a,例如,用戶集合u和社交活動集合e間生成鄰接矩陣aue與aeu,矩陣中的非零項(xiàng)aij=1代表第i個用戶ui參與過第j個社交活動ej(其中i為1到m之間的任意整數(shù),j為1到n之間的任意整數(shù)),否則aij=0;

步驟5:對步驟4獲取的每個鄰接矩陣進(jìn)行行歸一化,以生成轉(zhuǎn)移概率矩陣p,其中對于鄰接矩陣中某一行元素全零的情況,則將該行元素全部設(shè)置為1,再進(jìn)行歸一化處理;

例如,對上一步驟中生成的鄰接矩陣aue進(jìn)行行歸一化后,得到轉(zhuǎn)移概率矩陣pue;

步驟6:利用帶重啟動的隨機(jī)游走方法(randomwalkwithrestart)對異構(gòu)圖模型進(jìn)行處理,以得到每個用戶對社交活動的偏好程度;本步驟包括以下子步驟:

(6-1)令u(t),e(t),g(t),f1(t),...fz(t)分別表示隨機(jī)游走的第t步中用戶節(jié)點(diǎn)集合、社交活動節(jié)點(diǎn)集合、群組節(jié)點(diǎn)集合以及影響因素節(jié)點(diǎn)集合的概率分布向量,隨機(jī)為異構(gòu)圖模型中的每個集合中的節(jié)點(diǎn)賦概率初值,即設(shè)定u(0),e(0),g(0),f1(0),...fz(0);具體而言,每個集合中每個節(jié)點(diǎn)的概率初值為正數(shù),且每個集合中所有節(jié)點(diǎn)的概率初值總和為1;

(6-2)以社交活動集合中的每個節(jié)點(diǎn)為重啟動節(jié)點(diǎn),依次為每個重啟動節(jié)點(diǎn)設(shè)置請求向量q1×n;具體而言,對于活動ej而言,其對應(yīng)的請求向量q1×n中q(j)=1,其余元素為0;

(6-3)利用步驟(5)中得到的轉(zhuǎn)移概率矩陣、步驟(6-1)中得到的每個節(jié)點(diǎn)的概率初值和步驟(6-2)中得到的請求向量,并依次以社交活動集合中的每個節(jié)點(diǎn)為重啟動節(jié)點(diǎn),采用以下公式進(jìn)行隨機(jī)游走過程,以得到每個節(jié)點(diǎn)對應(yīng)的穩(wěn)態(tài)概率值;

......

其中,ii()是表征括號里兩類集合是否存在關(guān)聯(lián)的指示函數(shù),若存在關(guān)聯(lián)則其取值為1,否則取值為0;

在隨機(jī)游走的每一步中,每個節(jié)點(diǎn)將其概率值沿邊傳遞到其相鄰節(jié)點(diǎn)上,同時也接收其相鄰節(jié)點(diǎn)傳遞過來的概率值,特別地,重啟動活動節(jié)點(diǎn)在每步隨機(jī)游走中會被賦予一定的重啟動概率,重復(fù)此步驟,直到各節(jié)點(diǎn)上的概率值趨于穩(wěn)定,收斂為穩(wěn)態(tài)概率值;其中用戶集合中每個節(jié)點(diǎn)對應(yīng)的穩(wěn)態(tài)概率值表征的是,對應(yīng)用戶對社交活動集合中該重啟動節(jié)點(diǎn)所對應(yīng)的社交活動的偏好程度,原理上而言,隨機(jī)游走過程是基于多變量馬爾科夫鏈的迭代過程;

(7)將步驟(6)中得到的每個用戶對社交活動的偏好程度按照從高到低的順序進(jìn)行排序,并將前k個偏好程度對應(yīng)的社交活動推薦給該用戶,其中k為自然數(shù),通常為3到10之間。

作為進(jìn)一步優(yōu)選的,上述步驟(7)也可以被以下步驟代替:

(8)利用最優(yōu)化模型對步驟(6)中獲得的每個用戶對社交活動的偏好程度,并引入每個社交活動的容量進(jìn)行處理,在滿足社交活動所推薦的用戶數(shù)不超過其容量的前提下得到為每個用戶推薦的社交活動。

本步驟包括以下子步驟:

(8-1)獲取社交活動集合中每個元素(即社交活動)的容量c=(c1,c2,…,cn),根據(jù)該容量c獲取規(guī)模系數(shù)并根據(jù)該規(guī)模系數(shù)得到每個社交活動的應(yīng)推薦人數(shù)mj*=ρcj;

(8-2)根據(jù)獲得的推薦人數(shù)構(gòu)建以下最優(yōu)化數(shù)學(xué)模型,以實(shí)現(xiàn)對用戶集合和社交活動集合的規(guī)模控制:

最大化

滿足:ni≤k,i=1,...,m

其中sall表示用戶集合中的所有元素(即用戶)對于待推薦給其的社交活動的偏好程度的總和,pij表示第i個用戶對第j個社交活動的偏好程度,li表示待推薦給第i個用戶的社交活動,ⅱ(ej∈li)是表征第j個社交活動是否位于待推薦給第i個用戶的社交活動中的函數(shù),若在則其取值為1,否則其取值為0,mj為第j個社交活動實(shí)際被推薦的用戶數(shù),ni為第i個用戶實(shí)際被推薦的社交活動數(shù);

(8-3)將步驟(8-2)得到的最優(yōu)化數(shù)學(xué)模型轉(zhuǎn)換為0-1整數(shù)規(guī)劃問題:

最大化

滿足:

其中vm×n代表用戶-社交活動推薦矩陣,其中的元素vij代表第i個用戶是否被推薦了第j個社交活動,vij=1代表第i個用戶已經(jīng)被推薦了第j個社交活動,vij=0代表.第i個用戶沒有被推薦第j個社交活動。

該0-1整數(shù)規(guī)劃問題為np-hard問題,在多項(xiàng)式時間內(nèi)無法求解,因此需要構(gòu)建啟發(fā)式算法。

(8-4)構(gòu)建以用戶被推薦的活動數(shù)k和社交活動容量c為輸入的貪婪算法,對步驟(8-3)獲取的0-1整數(shù)規(guī)劃問題進(jìn)行求解,以獲得最終的推薦結(jié)果,具體包含以下步驟:

(8-4-1)獲取步驟(6)得到的用戶-社交活動偏好程度矩陣,矩陣中的元素pij代表第i個用戶對第j個社交活動的偏好程度,獲取用戶推薦活動數(shù)k;獲取社交活動容量c=(c1,c2,…,cn),并依據(jù)步驟(8-1)計(jì)算每個社交活動的應(yīng)推薦人數(shù)mj*

(8-4-2)初始化用戶-社交活動推薦矩陣v為零矩陣,為用戶-社交活動推薦矩陣v中的每個用戶-社交活動對添加標(biāo)簽f,其中fij是第i個用戶與第j個社交活動的標(biāo)簽位(其中i為1到m之間的任意整數(shù),j為1到n之間的任意整數(shù)),fij=0代表該用戶-社交活動對尚未被選取,否則其取值為1;初始化所有用戶-社交活動對的標(biāo)簽位為0;

(8-4-3)從所有標(biāo)簽位為0的用戶-社交活動對中選擇偏好程度pij最大的用戶-社交活動對,并將其標(biāo)簽位fij設(shè)置為1;

(8-4-4)判斷將此用戶-社交活動(ui,ej)對添加至用戶-社交活動推薦矩陣v中會不會導(dǎo)致用戶容量、社交活動推薦人數(shù)超出其限制,若會則該子步驟結(jié)束,且跳至步驟(8-4-5),否則將其添加至用戶-社交活動推薦矩陣v中,即令用戶-社交活動推薦矩陣v對應(yīng)元素vij=1;

(8-4-5)重復(fù)(8-4-2)到(8-4-4)的步驟,直至所有用戶-社交活動對的標(biāo)簽位均為1為止,輸出最終的用戶-社交活動推薦矩陣,并為每位用戶推薦對應(yīng)的社交活動;

(8-4’)構(gòu)建以用戶被推薦的活動數(shù)k和社交活動容量c為輸入的貪婪算法,對步驟(8-3)獲取的0-1整數(shù)規(guī)劃問題進(jìn)行求解,以獲得最終的推薦結(jié)果。

(8-4-1’)獲取步驟(7)中為每名用戶推薦的k個社交活動,獲取社交活動容量c=(c1,c2,…,cn),并依據(jù)步驟(8-1)計(jì)算每個社交活動的應(yīng)推薦人數(shù)mj*;

(8-4-2’)遍歷所有社交活動,當(dāng)其實(shí)際被推薦人數(shù)大于其應(yīng)推薦人數(shù)達(dá)k個時(k≥1),則從該社交活動的推薦用戶中選擇對其偏好程度最低的k名用戶,將這些用戶從該社交活動中移除,并依次為這k名被移除的用戶推薦新的社交活動,具體方法為,為該用戶從人員不足的社交活動中挑選出其偏好程度最高的活動進(jìn)行推薦;

總之,本發(fā)明的技術(shù)方案具有以下特點(diǎn):

(1)所判定的影響用戶偏好的因素包含多種,如地理位置、線上社交關(guān)系、線下社交關(guān)系、標(biāo)簽配置等。

(2)在預(yù)處理數(shù)據(jù)時的降維操作。如對地理坐標(biāo)和標(biāo)簽處理時,為克服稀疏性問題,采用聚類的方法進(jìn)行降維,生成區(qū)域和主題節(jié)點(diǎn)。進(jìn)而,每個用戶和活動的位置從坐標(biāo)點(diǎn)的表達(dá),轉(zhuǎn)化為從屬區(qū)域表達(dá),從區(qū)域角度理解位置信息更加合理。與此類似,每個標(biāo)簽屬于一個主題,每個主題包含許多標(biāo)簽,從主題層面理解標(biāo)簽信息能更好把握語義信息。

(3)在構(gòu)圖時,選擇了異構(gòu)圖的方式,圖模型中包含多種類型的節(jié)點(diǎn),如用戶、活動以及區(qū)域、主題、群組等。

(4)在計(jì)算節(jié)點(diǎn)鄰近性時,采用了異構(gòu)圖中的帶重啟動隨機(jī)游走算法(randomwalkwithrestart)。與基于節(jié)點(diǎn)(node-dependent)和基于路徑(path-dependent)方法相比,這種方法能更好考慮節(jié)點(diǎn)間的間接聯(lián)系。

(5)帶重啟動的“逆向隨機(jī)游走”算法能解決一般隨機(jī)游走算法在處理社交活動推薦時所面臨的一些問題。逆向隨機(jī)游走算法轉(zhuǎn)變推薦思路,從一般的為每位用戶推薦活動,轉(zhuǎn)化為從每個候選活動出發(fā),為每個活動推薦用戶,在算法中的體現(xiàn)是重啟動節(jié)點(diǎn)的轉(zhuǎn)變,通過“逆向游走”的方式,解決了“懸掛節(jié)點(diǎn)”、“流行活動”、“更新效率”等問題,并能提升推薦結(jié)果的準(zhǔn)確度、多樣性、曲線下的面積(areaundercurve,簡稱auc)等指標(biāo)。

(6)規(guī)模控制算法旨在平衡用戶在活動間的分配,使活動能招募到合適的用戶數(shù)。算法依據(jù)活動的預(yù)期規(guī)模信進(jìn)行用戶分配,對一個有m個用戶,n個候選活動的平臺,每個用戶被推薦k個活動,平臺依據(jù)此n個活動的預(yù)期規(guī)模比例為它們分配用戶,即m×k人次被分配給n個活動,每個活動分配人數(shù)正比于其需求人數(shù)。

(7)兩種規(guī)??刂频膯l(fā)式算法用來解決用戶-活動分配的0-1整數(shù)規(guī)劃問題,其輸入包括用戶-活動偏好矩陣(pm×n)、活動預(yù)期規(guī)模向量(s1×n)、推薦列表長度(常數(shù)k)。第一種方法為greedy-arrangement,從最初分配就考慮到規(guī)模因素,每一步在不超出用戶與活動容量限制的情況下選取偏好值最高的用戶對,直至沒有用戶-活動對能被選取。第二種方法為greedy-adjustment,最初分配時不考慮規(guī)模因素,對每名用戶選取其偏好值最高的k個用戶-活動對。選擇完畢后,對失衡的分配進(jìn)行動態(tài)調(diào)整,每一步將一名用戶從“超員”的活動中調(diào)整到“缺人”的活動中,每一步調(diào)整選取偏好值減少量最小的調(diào)整方案,直至分配達(dá)到平衡。

(8)評估指標(biāo)不僅考慮常見的準(zhǔn)確度、auc指標(biāo),同時也考慮多樣性、覆蓋率、s-pearson指標(biāo)。其中s-pearson指標(biāo)是本文構(gòu)造的綜合衡量推薦準(zhǔn)確性與規(guī)模匹配度的綜合指標(biāo),它計(jì)算活動預(yù)期規(guī)模向量與活動實(shí)際準(zhǔn)確推薦人數(shù)向量的pearson相關(guān)系數(shù)。

本發(fā)明具有如下優(yōu)點(diǎn):

1、能夠直觀地反映基于活動的社交網(wǎng)絡(luò)組織形態(tài),容易理解。

2、當(dāng)系統(tǒng)有新的輸入時,容易擴(kuò)充,僅需在圖模型中添加節(jié)點(diǎn)、與邊即可。

3、能解決社交活動推薦中,普通隨機(jī)游走算法所面臨因“懸掛節(jié)點(diǎn)”處理而導(dǎo)致的概率偏差問題。

4、解決分配失衡問題,能有效防止流行活動被推薦給過多的用戶,而一些不太流行卻很有意思的活動招募不到足夠的用戶。

5、更新速度快,計(jì)算量小。當(dāng)系統(tǒng)添加上新的活動時,僅需對該活動進(jìn)行一次逆向隨機(jī)游走,計(jì)算其在圖模型中與每名用戶的鄰近值,從而更新每名用戶的推薦列表即可。

6、能提升推薦系統(tǒng)的準(zhǔn)確度、多樣性、auc、s-pearson、覆蓋率等指標(biāo)。

本領(lǐng)域的技術(shù)人員容易理解,以上所述僅為本發(fā)明的較佳實(shí)施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi)所作的任何修改、等同替換和改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。

當(dāng)前第1頁1 2 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1