本發(fā)明涉及一種基于關(guān)聯(lián)規(guī)則的標(biāo)簽推薦方法,屬于計算機的技術(shù)領(lǐng)域。
背景技術(shù):
標(biāo)簽系統(tǒng)在實際應(yīng)用中得到廣泛應(yīng)用,標(biāo)簽可以直接明了地表示出用戶、資源等對象的個性特征,如:用戶的身份、學(xué)歷、所在地、興趣的標(biāo)簽;電影的類別、語種的標(biāo)簽;書籍的語言、類別、篇幅。當(dāng)某個對象擁有充足的標(biāo)簽數(shù)據(jù)時,系統(tǒng)就可以捕捉到關(guān)于該對象更加精準(zhǔn)的、更加全面可靠的特征。
但是,當(dāng)前基于標(biāo)簽的系統(tǒng)中標(biāo)簽使用的情況并不理想,用戶不知如何選擇適宜標(biāo)簽,標(biāo)簽無法多次合理利用,尤其是當(dāng)標(biāo)簽信息的時間跨度過大時,導(dǎo)致本來無關(guān)的標(biāo)簽會相互影響,無法準(zhǔn)確的挖掘出標(biāo)簽之間潛在的關(guān)系,降低了標(biāo)簽的實用性。
技術(shù)實現(xiàn)要素:
本發(fā)明所要解決的技術(shù)問題在于克服現(xiàn)有技術(shù)的不足,提供一種基于關(guān)聯(lián)規(guī)則的標(biāo)簽推薦方法,解決現(xiàn)有方法中標(biāo)簽無法多次合理利用,尤其是當(dāng)標(biāo)簽信息的時間跨度過大時,導(dǎo)致本來無關(guān)的標(biāo)簽會相互影響,無法準(zhǔn)確的挖掘出標(biāo)簽之間潛在的關(guān)系的問題。
本發(fā)明具體采用以下技術(shù)方案解決上述技術(shù)問題:
一種基于關(guān)聯(lián)規(guī)則的標(biāo)簽推薦方法,包括以下步驟:
步驟1、利用建立的滑動時間窗口模型在每個時間窗口內(nèi)采集每個用戶所使用過的標(biāo)簽
事務(wù)并添加至標(biāo)簽事務(wù)集合t;
步驟2、利用最大頻繁項挖掘算法對標(biāo)簽事務(wù)集合t進行頻繁項挖掘,得到頻繁共現(xiàn)的
標(biāo)簽集集合f;
步驟3、對所得頻繁共現(xiàn)的標(biāo)簽集集合f進行挖掘找出標(biāo)簽集之間的關(guān)系,得到關(guān)于所
找到標(biāo)簽集之間的關(guān)聯(lián)規(guī)則集合r,所述關(guān)聯(lián)規(guī)則集合r包括先導(dǎo)標(biāo)簽集及與其關(guān)聯(lián)的
后繼標(biāo)簽集;
步驟4、收集每個待推薦的用戶使用過的所有標(biāo)簽,得到關(guān)于每個用戶的標(biāo)簽集合;判
斷所述標(biāo)簽關(guān)聯(lián)規(guī)則集合r中的先導(dǎo)標(biāo)簽集是否存在于用戶的標(biāo)簽集合中,當(dāng)判斷為存在時,將該條規(guī)則中先導(dǎo)標(biāo)簽集關(guān)聯(lián)的后繼標(biāo)簽集推薦給對應(yīng)用戶。
進一步地,作為本發(fā)明的一種優(yōu)選技術(shù)方案:所述步驟2利用最大頻繁項挖掘算法包括根據(jù)設(shè)置的最小支持度挖掘頻繁項。
進一步地,作為本發(fā)明的一種優(yōu)選技術(shù)方案:所述步驟3標(biāo)簽之間的關(guān)聯(lián)規(guī)則集合r包括:
設(shè)置標(biāo)簽頻繁地同時出現(xiàn)的支持度和置信度;
將滿足所設(shè)置的標(biāo)簽頻繁地同時出現(xiàn)的支持度和置信度的標(biāo)簽之間關(guān)聯(lián)及加入關(guān)聯(lián)規(guī)則集合r。
本發(fā)明采用上述技術(shù)方案,能產(chǎn)生如下技術(shù)效果:
本發(fā)明的基于關(guān)聯(lián)規(guī)則的標(biāo)簽推薦方法,在收集系統(tǒng)對象使用的標(biāo)簽數(shù)據(jù)時,采用了帶有重疊的時間滑動窗口模型,從而很大程度上緩解了標(biāo)簽數(shù)據(jù)稀疏問題,并且避免了時間跨度過大,導(dǎo)致的無關(guān)標(biāo)簽之間的相互影響,從而提高了標(biāo)簽與標(biāo)簽之間的關(guān)聯(lián)規(guī)則挖掘的可靠性,使標(biāo)簽推薦的結(jié)果更加準(zhǔn)確。
附圖說明
圖1為本發(fā)明基于關(guān)聯(lián)規(guī)則的標(biāo)簽推薦方法的流程示意圖。
圖2為本發(fā)明中時間窗口滑動過程的示意圖。
圖3、4均為本發(fā)明標(biāo)簽事務(wù)采集過程的示意圖。
圖5為本發(fā)明標(biāo)簽規(guī)則集合生成過程的示意圖。
圖6為本發(fā)明的規(guī)則推薦過程的示意圖。
具體實施方式
下面結(jié)合說明書附圖對本發(fā)明的實施方式進行描述。
如圖1所示,本發(fā)明設(shè)計了一種基于關(guān)聯(lián)規(guī)則的標(biāo)簽推薦方法,該方法包括以下步驟:
步驟1、利用建立的滑動時間窗口模型在每個時間窗口內(nèi)采集每個用戶所使用過的標(biāo)簽事務(wù)并添加至標(biāo)簽事務(wù)集合t。
首先,系統(tǒng)設(shè)計滑動時間窗口模型,定義時間窗口和滑動步長,然后根據(jù)用戶-標(biāo)簽的關(guān)系,去采集各個用戶在不同的時間窗口內(nèi)使用過的標(biāo)簽數(shù)據(jù)。如圖2所示,此過程涉及到以下定義:
定義1:時間窗口tw。
假設(shè)s<ts,te>={tag1,tag2,tag3,…,tagi,…,tagn}是一個在時間區(qū)域[ts,te]內(nèi)出現(xiàn)的標(biāo)簽序列;sw<ts,te>={tagw,tagw+1,…,tagw+m}是一個在時間區(qū)域[ts,te]內(nèi)的一個的標(biāo)簽序列,標(biāo)簽序列sw是標(biāo)簽序列s的其中一段,即
本實施例設(shè)置時間窗口tw的大小為δt,例如δt=40。
定義2:滑動步長st。
假設(shè)在兩個相鄰的時間窗口twi=[ti,tj]和twi+1=[ti+1,tj+1]中,ti<ti+1<tj;時間窗口的大小為δt=ti-tj=ti+1-tj+1;定義ti+1-ti=tj+1-tj為滑動步長st。
本實施例設(shè)置時間窗口的滑動步長大小為st,例如st=30。
定義3:定義標(biāo)簽事務(wù)和標(biāo)簽事務(wù)集合。
l<uid,tw>={taguid,1,taguid,2,taguid,3,…,taguid,k}是用戶uid在時間窗口tw內(nèi)使用過的標(biāo)簽序列,它定義為一個標(biāo)簽事務(wù)(tagtranscation)。多個標(biāo)簽事務(wù)組成的集合就是標(biāo)簽事務(wù)集合t。
其次,采集的每個用戶所使用過的標(biāo)簽事務(wù)添加至標(biāo)簽事務(wù)集合t。如圖4所示,該過程具體為:
采集當(dāng)前時間窗口twi,其中代表第i個時間窗口內(nèi)每個用戶所使用過的標(biāo)簽集合l<uid,tw1>,即用戶標(biāo)識為uid的標(biāo)簽事務(wù),并且將這條標(biāo)簽事務(wù)添加到標(biāo)簽事務(wù)集合t中。
采集twi中的標(biāo)簽數(shù)據(jù)過程如圖3所示,具體為:
第一個用戶ui的標(biāo)簽事務(wù)為:
l<1,twi>={rock,femalevocalists,pop,punkrock};
第二個用戶u2的標(biāo)簽事務(wù)為:
l<2,twi>={rock,pop,punkrock};
第三個用戶u3的標(biāo)簽事務(wù)為:
l<3,twi>={alternative,rock,pop,rock,punkrock};
直到把所有用戶在的標(biāo)簽使用狀況采集完畢,將得到的所有標(biāo)簽事務(wù),加入標(biāo)簽事務(wù)集合t中。
然后,判斷當(dāng)前窗口twi是否為最后一個時間窗口。
當(dāng)前窗口不是最后一個時間窗口,滑動時間窗口st步長,到達下一個時間窗口twi+1,并采集此窗口內(nèi)所有用戶的標(biāo)簽數(shù)據(jù)。比如圖2中采集twi+1中的標(biāo)簽數(shù)據(jù),生成標(biāo)簽事務(wù)。
采集第一個用戶u1的標(biāo)簽事務(wù)為:
l<1,twi+1>={punkrock,greece,poppunk};
采集第二個用戶u2的標(biāo)簽事務(wù)為:
l<2,twi+1>={punkrock,pop,powerpop,punkpop};
采集第三個用戶u3的標(biāo)簽事務(wù)為:
l<3,twi+1>={rock,punkrock,alternative,pop,southernrock};
依次類推,一直把所有用戶在的標(biāo)簽使用狀況采集完畢,將標(biāo)簽事務(wù)加入標(biāo)簽事務(wù)集合t中。
如果當(dāng)前窗口是最后一個時間窗口,那么用戶標(biāo)簽數(shù)據(jù)采集完畢。得到標(biāo)簽事務(wù)集合t,標(biāo)簽數(shù)據(jù)采集完成。
步驟2、利用最大頻繁項挖掘算法對標(biāo)簽事務(wù)集合t進行頻繁項挖掘,得到頻繁共現(xiàn)的標(biāo)簽集集合f。
首先,該過程定義頻繁項集、超集、最大頻繁項集。
所述定義頻繁項集為:設(shè)p為由一個個標(biāo)簽組成的一個集合,p={t1,t2,…,tk},簡稱標(biāo)簽項集。包含k個項的項集稱為k-標(biāo)簽項集。當(dāng)p的支持度sup(p)>最小支持度minsup時,稱p為頻繁項集frequentitemset。
所述定義超集為:若一個集合p2中的每一個元素都在集合p1中,且集合p1中可能包含p2中沒有的元素,則集合p1就是p2的一個超集。p1是p2的超集,則p2是p1的真子集,反之亦然。
所述定義最大頻繁項集為:如果頻繁項集p的所有超集都是非頻繁項集,那么稱l為最大頻繁項集或稱最大頻繁模式。頻繁項集是最大頻繁項集的子集,也就是說最大頻繁項集的子集都是頻繁項集。
然后,利用最大頻繁項挖掘算法對標(biāo)簽事務(wù)集合t進行最大頻繁項挖掘,得到最大頻繁項集集合,記f={f1,f2,…,fm},其中,fi是最大頻繁標(biāo)簽集。
該過程優(yōu)選地,設(shè)置最小支持度minsup,用來限定出現(xiàn)次數(shù)的頻率,所有標(biāo)簽的出現(xiàn)次數(shù)必須大于最小支持度minsup,這樣才能確保挖掘出規(guī)則的準(zhǔn)確性。根據(jù)fp-growth最大頻繁項算法去挖掘最大頻繁項標(biāo)簽集合f。標(biāo)簽共現(xiàn)的最大頻繁項集合f是指在標(biāo)簽事務(wù)集合中那些出現(xiàn)次數(shù)不小于minsup的最大標(biāo)簽組。
步驟3、對所得頻繁共現(xiàn)的標(biāo)簽集集合f進行挖掘找出標(biāo)簽集之間的關(guān)系,得到關(guān)于所找到標(biāo)簽集之間的關(guān)聯(lián)規(guī)則集合r。包括:設(shè)置標(biāo)簽頻繁地同時出現(xiàn)的支持度和置信度;將滿足所設(shè)置的標(biāo)簽頻繁地同時出現(xiàn)的支持度和置信度的標(biāo)簽之間關(guān)聯(lián)及加入關(guān)聯(lián)規(guī)則集合r,所述關(guān)聯(lián)規(guī)則集合r包括先導(dǎo)標(biāo)簽集及與其關(guān)聯(lián)的后繼標(biāo)簽集,如圖5所示。
所述關(guān)聯(lián)規(guī)則是形如x→y的蘊涵式,描述了頻繁共現(xiàn)的標(biāo)簽集x,y同時出現(xiàn)的規(guī)律和模式,表示規(guī)則的先導(dǎo)集x和后繼集y中的標(biāo)簽頻繁地同時出現(xiàn)。關(guān)聯(lián)規(guī)則x→y需要滿足兩個條件,其一,支持度support是t中標(biāo)簽事務(wù)同時包含x、y的百分比,即概率;其二,置信度confidence是t中事務(wù)已經(jīng)包含x的情況下,包含y的百分比,即條件概率。如果滿足最小支持度閾值和最小置信度閾值,則認(rèn)為關(guān)聯(lián)規(guī)則是可靠的。
本實施例給出一種關(guān)聯(lián)規(guī)則,如{alternativerock,rock}→{punkrock}的蘊涵式,描述了頻繁共現(xiàn)的標(biāo)簽集{alternativerock,rock}和{punkrock}頻繁地同時出現(xiàn)。
在這一部分,首先設(shè)置支持度sup和信任度con。例如:
{alternativerock,rock}→{punkrock};
sup=0.8;
con=0.7
則當(dāng)上述兩個標(biāo)簽集滿足最小支持度閾值0.8和最小置信度閾值0.7時,則確定關(guān)聯(lián)規(guī)則是可靠的。
步驟4、收集每個待推薦的用戶使用過的所有標(biāo)簽,得到關(guān)于每個用戶的標(biāo)簽集合;判斷所述標(biāo)簽關(guān)聯(lián)規(guī)則集合r中的先導(dǎo)標(biāo)簽集是否存在于用戶的標(biāo)簽集合中,當(dāng)判斷為存在時,將該條規(guī)則中先導(dǎo)標(biāo)簽集關(guān)聯(lián)的后繼標(biāo)簽集推薦給對應(yīng)用戶,該過程原理如圖6所示。
當(dāng)已知所述關(guān)聯(lián)規(guī)則x→y∈r,待推薦的用戶uid使用的標(biāo)簽集合為l<oid,loid>。
若關(guān)聯(lián)規(guī)則中的作為先導(dǎo)集的標(biāo)簽集
當(dāng)前用戶推薦完畢后,利用上述原理為每位用戶推薦標(biāo)簽集,直至判斷該規(guī)則是否是最后一條規(guī)則,若是,則讀入下一個用戶的使用標(biāo)簽集,重復(fù)上述過程。最后直到用戶為最后一個用戶,完成推薦過程。
綜上,本發(fā)明基于關(guān)聯(lián)規(guī)則的標(biāo)簽推薦方法,在收集系統(tǒng)用戶使用的標(biāo)簽數(shù)據(jù)時,采用了帶有重疊的時間滑動窗口模型,從而很大程度上緩解了標(biāo)簽數(shù)據(jù)稀疏問題,并且避免了時間跨度過大,導(dǎo)致的無關(guān)標(biāo)簽之間的相互影響,從而提高了標(biāo)簽與標(biāo)簽之間的關(guān)聯(lián)規(guī)則挖掘的可靠性,使標(biāo)簽推薦的結(jié)果更加準(zhǔn)確。
上面結(jié)合附圖對本發(fā)明的實施方式作了詳細(xì)說明,但是本發(fā)明并不限于上述實施方式,在本領(lǐng)域普通技術(shù)人員所具備的知識范圍內(nèi),還可以在不脫離本發(fā)明宗旨的前提下做出各種變化。