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

一種基于用戶行為的特征提取、個(gè)性化推薦的方法和系統(tǒng)的制作方法

文檔序號(hào):6504326閱讀:247來源:國知局
一種基于用戶行為的特征提取、個(gè)性化推薦的方法和系統(tǒng)的制作方法
【專利摘要】本申請實(shí)施例提供了一種基于用戶行為的特征提取方法,包括:收集用戶的原始行為信息,依據(jù)所述用戶的原始行為信息生成用戶行為數(shù)據(jù)點(diǎn);所述用戶行為數(shù)據(jù)點(diǎn)包括用戶標(biāo)識(shí)、維度標(biāo)識(shí)及對應(yīng)的維度分值;按照所述維度標(biāo)識(shí)采用維度分值對所述用戶行為數(shù)據(jù)點(diǎn)進(jìn)行聚類,形成多個(gè)聚類空間;分別針對所述多個(gè)聚類空間中用戶行為數(shù)據(jù)點(diǎn)的維度分值進(jìn)行二值化;依據(jù)二值化的結(jié)果提取滿足預(yù)設(shè)要求的一個(gè)或多個(gè)維度標(biāo)識(shí)作為聚類空間的特征維度。本申請實(shí)施例采用了分布式計(jì)算,總體運(yùn)算時(shí)間大幅減少。針對海量數(shù)據(jù)輸入的條目超多和條目維度超多的問題,采用對數(shù)據(jù)分塊計(jì)算的方法,對中間結(jié)果分塊表達(dá),解決了I/O過大問題。
【專利說明】一種基于用戶行為的特征提取、個(gè)性化推薦的方法和系統(tǒng)

【技術(shù)領(lǐng)域】
[0001] 本申請實(shí)施例涉及數(shù)據(jù)處理【技術(shù)領(lǐng)域】,特別是涉及一種基于用戶行為的特征提取 的方法、一種基于用戶行為的特征提取的系統(tǒng)、一種基于用戶行為的個(gè)性化推薦的方法和 一種基于用戶行為的個(gè)性化推薦的系統(tǒng)。

【背景技術(shù)】
[0002] 因特網(wǎng)Internet的迅猛發(fā)展將人們帶入了信息社會(huì)和網(wǎng)絡(luò)經(jīng)濟(jì)時(shí)代,對企業(yè)的 發(fā)展和個(gè)人生活都產(chǎn)生了深刻的影響。同時(shí),過量的信息使得人們無法高效地從中獲取自 己需要的部分,信息的使用效率反而降低。
[0003] 以電子商務(wù)(ElectronicCommerce)為例,電子商務(wù)是在Internet開放的網(wǎng)絡(luò)環(huán) 境下,基于瀏覽器/服務(wù)器應(yīng)用方式,實(shí)現(xiàn)消費(fèi)者的網(wǎng)上購物、商戶之間的網(wǎng)上交易和在線 電子支付的一種新型的商業(yè)運(yùn)營模式。隨著Internet的爆發(fā)式發(fā)展,電子商務(wù)越加繁榮。 由于供應(yīng)鏈和物流的發(fā)展,商家能夠在網(wǎng)上提供的商品種類和數(shù)量非常多,反而大大增加 了消費(fèi)者購物的時(shí)間成本,降低了電子商務(wù)平臺(tái)的商品購買率。顯然,用戶既不愿意花費(fèi)太 多時(shí)間在漫無邊際的網(wǎng)上尋找商品,也不可能像在現(xiàn)實(shí)生活中那種檢查商品的質(zhì)量。而是 希望根據(jù)自身的興趣愛好自動(dòng)獲取系統(tǒng)推薦的而且會(huì)感到滿意的商品。因此根據(jù)不同的用 戶特征,把用戶劃分為不同的群組,進(jìn)行有針對性的服務(wù),是當(dāng)前的應(yīng)用熱點(diǎn)之一。這樣,聚 類和特征提取也成為重要的應(yīng)用。
[0004]目前的數(shù)據(jù)聚類系統(tǒng)大多是單機(jī)的,在處理大量數(shù)據(jù)時(shí),除了運(yùn)算時(shí)間過長,還存 在輸入/輸出(I/O)負(fù)載過重的問題。當(dāng)數(shù)據(jù)維度過多的時(shí)候,數(shù)據(jù)運(yùn)算的中間結(jié)果過大, 既不能放在內(nèi)存中,又不能存儲(chǔ)為文件保存,并且中間運(yùn)算的I/O也會(huì)過大。換言之,當(dāng)數(shù) 據(jù)量過大時(shí)系統(tǒng)的硬件設(shè)備就會(huì)出現(xiàn)瓶頸,導(dǎo)致無法處理更大的數(shù)據(jù)量,顯然這樣的聚類 系統(tǒng)是無法進(jìn)行諸如電子商務(wù)的海量數(shù)據(jù)的聚類。
[0005] 現(xiàn)有的技術(shù)也提出了用并行和分布式的方法進(jìn)行大數(shù)據(jù)聚類處理,但是也存在分 布式各個(gè)節(jié)點(diǎn)的交互、迭代等步驟的I/O壓力過大的問題,即當(dāng)數(shù)據(jù)量過大時(shí)系統(tǒng)硬件設(shè) 備也會(huì)出現(xiàn)瓶頸,導(dǎo)致無法處理更大的數(shù)據(jù)量,顯然也是無法進(jìn)行諸如電子商務(wù)的海量數(shù) 據(jù)的聚類。
[0006] 現(xiàn)在的推薦系統(tǒng)很多是基于某種特征提取算法的,這種算法要求相當(dāng)?shù)臉I(yè)務(wù)知 識(shí),人工介入比較多,導(dǎo)致通用性差,人工成本高;電子商務(wù)涉及的行業(yè)廣,要求通用性好, 而且人工介入過多導(dǎo)致成本愈來愈大以致無法承受。再者,這種算法要在內(nèi)存中進(jìn)行運(yùn)算, 而且運(yùn)算量大,運(yùn)算時(shí)間長,受制于計(jì)算機(jī)硬件的承受能力,不適用于處理諸如電子商務(wù)的 海量數(shù)據(jù)。最重要的是,該算法提取出不同用戶群的特征,無法有效區(qū)分不同的用戶群。
[0007] 因此,目前需要本領(lǐng)域技術(shù)人員迫切解決的一個(gè)技術(shù)問題就是:提出一種適用于 海量數(shù)據(jù)的處理的聚類及特征提取機(jī)制,根據(jù)不同的用戶行為,把用戶劃分為不同的群組, 提取能有效區(qū)分不同群組的特征,分別進(jìn)行針對性的服務(wù),提高服務(wù)的效率。
[0008] 申請內(nèi)容
[0009] 本申請實(shí)施例所要解決的技術(shù)問題是提供一種基于用戶行為的特征提取的方法 及一種基于用戶行為的個(gè)性化推薦的方法,能夠基于用戶的行為信息將用戶劃分為興趣愛 好相近的用戶群,并提取出不同用戶群的特征,使該特征可以區(qū)分不同的用戶群,在個(gè)性化 推薦時(shí)據(jù)此特征快速高效地進(jìn)行推薦。
[0010] 相應(yīng)的,本申請實(shí)施例還提供了一種基于用戶行為的特征提取的系統(tǒng)及一種基于 用戶行為的個(gè)性化推薦的系統(tǒng),用以保證上述方法的實(shí)現(xiàn)及應(yīng)用。
[0011] 本申請實(shí)施例公開了一種基于用戶行為的特征提取方法,包括:
[0012] 收集用戶的原始行為信息,依據(jù)所述用戶的原始行為信息生成用戶行為數(shù)據(jù)點(diǎn); 所述用戶行為數(shù)據(jù)點(diǎn)包括用戶標(biāo)識(shí)、維度標(biāo)識(shí)及對應(yīng)的維度分值;
[0013] 按照所述維度標(biāo)識(shí)采用維度分值對所述用戶行為數(shù)據(jù)點(diǎn)進(jìn)行聚類,形成多個(gè)聚類 空間;
[0014] 分別針對所述多個(gè)聚類空間中用戶行為數(shù)據(jù)點(diǎn)的維度分值進(jìn)行二值化;
[0015] 依據(jù)二值化的結(jié)果提取滿足預(yù)設(shè)要求的一個(gè)或多個(gè)維度標(biāo)識(shí)作為聚類空間的特 征維度。
[0016] 優(yōu)選地,所述按照維度標(biāo)識(shí)采用維度分值對所述用戶行為數(shù)據(jù)點(diǎn)進(jìn)行聚類,形成 多個(gè)聚類空間的步驟包括:
[0017] 將所述用戶行為數(shù)據(jù)點(diǎn)分配至K個(gè)簇中,并按照維度標(biāo)識(shí)分別計(jì)算K個(gè)簇中對應(yīng) 的初始的K個(gè)中心點(diǎn),并依據(jù)所述K個(gè)中心點(diǎn)及對應(yīng)的用戶行為數(shù)據(jù)點(diǎn),形成初始的K個(gè)聚 類空間;其中,所述K為正整數(shù);
[0018] 按照維度標(biāo)識(shí)分別計(jì)算各用戶行為數(shù)據(jù)點(diǎn)與K個(gè)中心點(diǎn)的距離;
[0019] 依據(jù)所述用戶行為數(shù)據(jù)點(diǎn)與K個(gè)中心點(diǎn)的距離,重新確定所述用戶行為數(shù)據(jù)點(diǎn)歸 屬的聚類空間;
[0020] 判斷當(dāng)前K個(gè)聚類空間是否滿足預(yù)設(shè)條件;
[0021] 若是,則獲得最終的K個(gè)聚類空間;
[0022] 若否,則在執(zhí)行按照維度標(biāo)識(shí)分別計(jì)算當(dāng)前K個(gè)聚類空間的新的中心點(diǎn)的子步驟 后,返回所述按照維度標(biāo)識(shí)分別計(jì)算各用戶行為數(shù)據(jù)點(diǎn)與K個(gè)中心點(diǎn)的距離的子步驟。
[0023] 優(yōu)選地,所述將用戶行為數(shù)據(jù)點(diǎn)分配至K個(gè)簇中,并按照維度標(biāo)識(shí)分別計(jì)算K個(gè)簇 中對應(yīng)的初始的K個(gè)中心點(diǎn),并依據(jù)所述用戶行為數(shù)據(jù)點(diǎn)及對應(yīng)的K個(gè)中心點(diǎn),形成初始的 K個(gè)聚類空間的步驟包括:
[0024] 將所述用戶行為數(shù)據(jù)點(diǎn)隨機(jī)分配至K個(gè)簇中,依據(jù)用戶標(biāo)識(shí)統(tǒng)計(jì)各個(gè)聚類空間中 的用戶數(shù)量;
[0025] 在K個(gè)簇中,按維度標(biāo)識(shí)分別聚合對應(yīng)的用戶行為數(shù)據(jù)點(diǎn),形成一個(gè)或多個(gè)分別 歸屬于不同維度的用戶行為數(shù)據(jù)點(diǎn)子集合;
[0026] 分別對所述子集合中的維度分值進(jìn)行求和,再分別除以對應(yīng)的聚類空間中的用戶 數(shù)量,獲得作為K個(gè)聚類空間初始的中心點(diǎn)的計(jì)算結(jié)果;
[0027] 依據(jù)所述K個(gè)中心點(diǎn)及對應(yīng)的用戶行為數(shù)據(jù)點(diǎn),形成初始的K個(gè)聚類空間。
[0028] 優(yōu)選地,所述按照維度標(biāo)識(shí)分別計(jì)算各用戶行為數(shù)據(jù)點(diǎn)與K個(gè)中心點(diǎn)的距離的步 驟包括:
[0029] 按照維度標(biāo)識(shí)分別聚合對應(yīng)的中心點(diǎn)和用戶行為數(shù)據(jù)點(diǎn),形成一個(gè)或多個(gè)分別歸 屬于不同維度的中心點(diǎn)及對應(yīng)的用戶行為數(shù)據(jù)點(diǎn)的子集合;
[0030] 分別計(jì)算所述子集合中各用戶行為數(shù)據(jù)點(diǎn)與K個(gè)中心點(diǎn)的距離。
[0031] 優(yōu)選地,所述子集合中各用戶行為數(shù)據(jù)點(diǎn)與K個(gè)中心點(diǎn)的距離通過以下公式獲 得:
[0032]distance=l_2*score;
[0033]其中,distance為用戶行為數(shù)據(jù)點(diǎn)與中心點(diǎn)在所述維度上的距離,score為中心 點(diǎn)在所述維度上的值。
[0034] 優(yōu)選地,所述依據(jù)用戶行為數(shù)據(jù)點(diǎn)與K個(gè)中心點(diǎn)的距離,重新確定所述用戶行為 數(shù)據(jù)點(diǎn)歸屬的聚類空間的步驟包括:
[0035] 按用戶標(biāo)識(shí)分別聚合對應(yīng)的用戶行為數(shù)據(jù)點(diǎn)與K個(gè)中心點(diǎn)在所有維度上的距離, 形成一個(gè)或多個(gè)分別歸屬于不同用戶的距離子集合;
[0036] 在所述子集合中,提取與用戶行為數(shù)據(jù)點(diǎn)距離最近的中心點(diǎn)對應(yīng)的聚類空間作為 用戶行為數(shù)據(jù)點(diǎn)歸屬的聚類空間。
[0037] 優(yōu)選地,所述按照維度標(biāo)識(shí)分別計(jì)算當(dāng)前K個(gè)聚類空間的新的中心點(diǎn)的步驟包 括:
[0038] 在K個(gè)聚類空間中,按維度標(biāo)識(shí)分別聚合對應(yīng)的用戶行為數(shù)據(jù)點(diǎn),形成一個(gè)或多 個(gè)分別歸屬于不同維度的用戶行為數(shù)據(jù)點(diǎn)子集合;
[0039] 依據(jù)用戶標(biāo)識(shí)統(tǒng)計(jì)各個(gè)聚類空間中的用戶數(shù)量;
[0040] 分別對所述子集合中的維度分值進(jìn)行求和,再分別除以所述K個(gè)聚類空間中的用 戶數(shù)量,獲得作為K個(gè)聚類空間新的中心點(diǎn)的計(jì)算結(jié)果。
[0041] 優(yōu)選地,所述預(yù)設(shè)條件包括聚類的迭代次數(shù)超過第一預(yù)設(shè)閾值,所述判斷當(dāng)前K 個(gè)聚類空間是否滿足預(yù)設(shè)條件的步驟包括:
[0042] 統(tǒng)計(jì)當(dāng)前聚類的迭代次數(shù);
[0043] 判斷所述迭代次數(shù)是否超過第一預(yù)設(shè)閾值。
[0044] 優(yōu)選地,所述預(yù)設(shè)條件還包括完成收斂的聚類空間的占比超過第二預(yù)設(shè)閾值,所 述判斷當(dāng)前K個(gè)聚類空間是否滿足預(yù)設(shè)條件的步驟還包括:
[0045] 分別判斷K個(gè)聚類空間是否完成收斂;
[0046] 統(tǒng)計(jì)完成收斂的聚類空間的占比;
[0047] 判斷所述占比是否超過第二預(yù)設(shè)閾值。
[0048] 優(yōu)選地,所述分別判斷K個(gè)聚類空間是否完成收斂的步驟包括:
[0049] 按維度標(biāo)識(shí)分別聚合K個(gè)聚類空間中的新的中心點(diǎn)和前一中心點(diǎn),形成一個(gè)或多 個(gè)分別歸屬于不同維度的中心點(diǎn)子集合;
[0050] 分別依據(jù)所述子集合中新中心點(diǎn)及對應(yīng)的前一中心點(diǎn)計(jì)算誤差;
[0051] 按照聚類空間標(biāo)識(shí)分別聚合對應(yīng)的誤差,形成K個(gè)分別歸屬于對應(yīng)K個(gè)聚類空間 的迭代誤差;
[0052] 若所述迭代誤差小于第三預(yù)設(shè)閾值,則標(biāo)識(shí)對應(yīng)的聚類空間完成收斂;若否,則標(biāo) 識(shí)對應(yīng)的聚類空間未完成收斂。
[0053] 優(yōu)選地,所述依據(jù)二值化的結(jié)果提取滿足預(yù)設(shè)要求的一個(gè)或多個(gè)維度標(biāo)識(shí)作為聚 類空間的特征維度的步驟包括:
[0054] 在多個(gè)聚類空間中,按主鍵分別聚合對應(yīng)的用戶行為數(shù)據(jù)點(diǎn),形成一個(gè)或多個(gè)分 別歸屬于不同主鍵的用戶行為數(shù)據(jù)點(diǎn)的子集合;其中,所述主鍵為維度標(biāo)識(shí)或維度標(biāo)識(shí)的 組合;
[0055] 分別提取所述子集合中公共維度占比超過第四預(yù)設(shè)閾值的一個(gè)或多個(gè)維度的頻 繁集;其中,所述公共維度為二值化后的維度分值為指定值的用戶行為數(shù)據(jù)點(diǎn)的占比超過 第五預(yù)設(shè)閾值的維度;
[0056] 找出所述子集合中最長的頻繁集對應(yīng)的維度,并依據(jù)所述維度生成對應(yīng)的聚類空 間的特征維度。
[0057] 本申請實(shí)施例公開了一種基于用戶行為的個(gè)性化推薦的方法,包括:
[0058] 獲取用戶的行為信息,所述用戶的行為信息包括用戶標(biāo)識(shí);
[0059] 根據(jù)所述用戶標(biāo)識(shí)確定當(dāng)前用戶所屬的一個(gè)或多個(gè)聚類空間;
[0060] 提取所述一個(gè)或多個(gè)聚類空間對應(yīng)的聚類空間特征維度;
[0061] 采用所述聚類空間特征向當(dāng)前用戶進(jìn)行推薦;
[0062] 其中,所述聚類空間特征維度通過如下方式生成:
[0063] 收集用戶的原始行為信息,依據(jù)所述用戶的原始行為信息生成用戶行為數(shù)據(jù)點(diǎn); 所述用戶行為數(shù)據(jù)點(diǎn)包括用戶標(biāo)識(shí)、維度標(biāo)識(shí)及對應(yīng)的維度分值;
[0064] 按照所述維度標(biāo)識(shí)采用維度分值對所述用戶行為數(shù)據(jù)點(diǎn)進(jìn)行聚類,形成多個(gè)聚類 空間;
[0065] 分別針對所述多個(gè)聚類空間中用戶行為數(shù)據(jù)點(diǎn)的維度分值進(jìn)行二值化;
[0066] 依據(jù)二值化的結(jié)果提取滿足預(yù)設(shè)要求的一個(gè)或多個(gè)維度標(biāo)識(shí)作為聚類空間的特 征維度。
[0067] 本申請實(shí)施例公開一種基于用戶行為的特征提取系統(tǒng),包括:
[0068] 用戶行為數(shù)據(jù)點(diǎn)生成模塊,用于收集用戶的原始行為信息,依據(jù)所述用戶的原始 行為信息生成用戶行為數(shù)據(jù)點(diǎn);所述用戶行為數(shù)據(jù)點(diǎn)包括用戶標(biāo)識(shí)、維度標(biāo)識(shí)及對應(yīng)的維 度分值;
[0069] 聚類空間形成模塊,用于按照所述維度標(biāo)識(shí)采用維度分值對所述用戶行為數(shù)據(jù)點(diǎn) 進(jìn)行聚類,形成多個(gè)聚類空間;
[0070] 二值化模塊,用于分別針對所述多個(gè)聚類空間中用戶行為數(shù)據(jù)點(diǎn)的維度分值進(jìn)行 二值化;
[0071] 特征維度提取模塊,用于依據(jù)二值化的結(jié)果提取滿足預(yù)設(shè)要求的一個(gè)或多個(gè)維度 標(biāo)識(shí)作為聚類空間的特征維度。
[0072] 優(yōu)選地,所述聚類空間形成模塊包括:
[0073] 初始聚類空間形成子模塊,用于將所述用戶行為數(shù)據(jù)點(diǎn)分配至K個(gè)簇中,并按照 維度標(biāo)識(shí)分別計(jì)算K個(gè)簇中對應(yīng)的初始的K個(gè)中心點(diǎn),并依據(jù)所述K個(gè)中心點(diǎn)及對應(yīng)的用 戶行為數(shù)據(jù)點(diǎn),形成初始的K個(gè)聚類空間;其中,所述K為正整數(shù);
[0074] 維度距離計(jì)算子模塊,用于按照維度標(biāo)識(shí)分別計(jì)算各用戶行為數(shù)據(jù)點(diǎn)與K個(gè)中心 點(diǎn)的距離;
[0075] 聚類空間重新歸屬子模塊,用于依據(jù)所述用戶行為數(shù)據(jù)點(diǎn)與K個(gè)中心點(diǎn)的距離, 重新確定所述用戶行為數(shù)據(jù)點(diǎn)歸屬的聚類空間;
[0076] 預(yù)設(shè)條件判斷子模塊,用于判斷當(dāng)前K個(gè)聚類空間是否滿足預(yù)設(shè)條件;若是,則調(diào) 用最終聚類空間獲得子模塊;若否,則調(diào)用返回子模塊;
[0077] 最終聚類空間獲得子模塊,用于獲得最終的K個(gè)聚類空間;
[0078] 返回子模塊,用于在調(diào)用按照維度標(biāo)識(shí)分別計(jì)算當(dāng)前K個(gè)聚類空間的新的中心點(diǎn) 的子模塊后,返回距離計(jì)算子模塊。
[0079] 優(yōu)選地,所述初始聚類空間形成子模塊包括:
[0080] 隨機(jī)分配子模塊,用于將所述用戶行為數(shù)據(jù)點(diǎn)隨機(jī)分配至K個(gè)簇中,依據(jù)用戶標(biāo) 識(shí)統(tǒng)計(jì)各個(gè)聚類空間中的用戶數(shù)量;
[0081] 第一子集合形成子模塊,用于在K個(gè)簇中,按維度標(biāo)識(shí)分別聚合對應(yīng)的用戶行為 數(shù)據(jù)點(diǎn),形成一個(gè)或多個(gè)分別歸屬于不同維度的用戶行為數(shù)據(jù)點(diǎn)子集合;
[0082] 初始中心點(diǎn)獲得子模塊,用于分別對所述子集合中的維度分值進(jìn)行求和,再分別 除以對應(yīng)的聚類空間中的用戶數(shù)量,獲得作為K個(gè)聚類空間初始的中心點(diǎn)的計(jì)算結(jié)果;
[0083] 初始形成子模塊,用于依據(jù)所述K個(gè)中心點(diǎn)及對應(yīng)的用戶行為數(shù)據(jù)點(diǎn),形成初始 的K個(gè)聚類空間。
[0084] 優(yōu)選地,所述維度距離計(jì)算子模塊包括:
[0085] 第二子集合形成子模塊,用于按照維度標(biāo)識(shí)分別聚合對應(yīng)的中心點(diǎn)和用戶行為數(shù) 據(jù)點(diǎn),形成一個(gè)或多個(gè)分別歸屬于不同維度的中心點(diǎn)及對應(yīng)的用戶行為數(shù)據(jù)點(diǎn)的子集合;
[0086] 子集合距離計(jì)算子模塊,用于分別計(jì)算所述子集合中各用戶行為數(shù)據(jù)點(diǎn)與K個(gè)中 心點(diǎn)的距離。
[0087] 優(yōu)選地,所述子集合中各用戶行為數(shù)據(jù)點(diǎn)與K個(gè)中心點(diǎn)的距離通過以下公式獲 得:
[0088]distance=l_2*score;
[0089] 其中,distance為用戶行為數(shù)據(jù)點(diǎn)與中心點(diǎn)在所述維度上的距離,score為中心 點(diǎn)在所述維度上的值。
[0090] 優(yōu)選地,所述聚類空間歸屬子模塊包括:
[0091] 第三子集合形成子模塊,用于按用戶標(biāo)識(shí)分別聚合對應(yīng)的用戶行為數(shù)據(jù)點(diǎn)與K個(gè) 中心點(diǎn)在所有維度上的距離,形成一個(gè)或多個(gè)分別歸屬于不同用戶的距離子集合;
[0092] 子集合歸屬子模塊,用于在所述子集合中,提取與用戶行為數(shù)據(jù)點(diǎn)距離最近的中 心點(diǎn)對應(yīng)的聚類空間作為用戶行為數(shù)據(jù)點(diǎn)歸屬的聚類空間。
[0093] 優(yōu)選地,所述按照維度標(biāo)識(shí)分別計(jì)算當(dāng)前K個(gè)聚類空間的新的中心點(diǎn)的子模塊包 括:
[0094] 第四子集合形成子模塊,用于在K個(gè)聚類空間中,按維度標(biāo)識(shí)分別聚合對應(yīng)的用 戶行為數(shù)據(jù)點(diǎn),形成一個(gè)或多個(gè)分別歸屬于不同維度的用戶行為數(shù)據(jù)點(diǎn)子集合;
[0095] 用戶數(shù)量統(tǒng)計(jì)子模塊,用于依據(jù)用戶標(biāo)識(shí)統(tǒng)計(jì)各個(gè)聚類空間中的用戶數(shù)量;
[0096] 新中心點(diǎn)計(jì)算子模塊,用于分別對所述子集合中的維度分值進(jìn)行求和,再分別除 以所述K個(gè)聚類空間中的用戶數(shù)量,獲得作為K個(gè)聚類空間新的中心點(diǎn)的計(jì)算結(jié)果。
[0097] 優(yōu)選地,所述預(yù)設(shè)條件包括聚類的迭代次數(shù)超過第一預(yù)設(shè)閾值,所述預(yù)設(shè)條件判 斷子模塊包括:
[0098] 迭代次數(shù)統(tǒng)計(jì)子模塊,用于統(tǒng)計(jì)當(dāng)前聚類的迭代次數(shù);
[0099] 第一預(yù)設(shè)閾值判斷子模塊,用于判斷所述迭代次數(shù)是否超過第一預(yù)設(shè)閾值。
[0100] 優(yōu)選地,所述預(yù)設(shè)條件還包括完成收斂的聚類空間的占比超過第二預(yù)設(shè)閾值,所 述預(yù)設(shè)條件判斷子模塊包括:
[0101] 聚類空間收斂判斷子模塊,用于分別判斷K個(gè)聚類空間是否完成收斂;
[0102] 占比統(tǒng)計(jì)子模塊,用于統(tǒng)計(jì)完成收斂的聚類空間的占比;
[0103] 第二預(yù)設(shè)閾值判斷子模塊,用于判斷所述占比是否超過第二預(yù)設(shè)閾值。
[0104] 優(yōu)選地,所述聚類空間收斂判斷子模塊包括:
[0105] 第五子集合形成子模塊,用于按維度標(biāo)識(shí)分別聚合K個(gè)聚類空間中的新的中心點(diǎn) 和前一中心點(diǎn),形成一個(gè)或多個(gè)分別歸屬于不同維度的中心點(diǎn)子集合;
[0106] 誤差計(jì)算子模塊,用于分別依據(jù)所述子集合中新中心點(diǎn)及對應(yīng)的前一中心點(diǎn)計(jì)算 誤差;
[0107] 迭代誤差計(jì)算子模塊,用于按照聚類空間標(biāo)識(shí)分別聚合對應(yīng)的誤差,形成K個(gè)分 別歸屬于對應(yīng)K個(gè)聚類空間的迭代誤差;若所述迭代誤差小于第三預(yù)設(shè)閾值,則調(diào)用完成 標(biāo)識(shí)子模塊;若否,則調(diào)用未完成標(biāo)識(shí)子模塊;
[0108] 完成標(biāo)識(shí)子模塊,用于標(biāo)識(shí)對應(yīng)的聚類空間完成收斂;
[0109] 未完成標(biāo)識(shí)子模塊,用于標(biāo)識(shí)對應(yīng)的聚類空間未完成收斂。
[0110] 優(yōu)選地,所述特征維度提取模塊包括:
[0111] 第六子集合形成子模塊,用于在多個(gè)聚類空間中,按主鍵分別聚合對應(yīng)的用戶行 為數(shù)據(jù)點(diǎn),形成一個(gè)或多個(gè)分別歸屬于不同主鍵的用戶行為數(shù)據(jù)點(diǎn)的子集合;其中,所述主 鍵為維度標(biāo)識(shí)或維度標(biāo)識(shí)的組合;
[0112] 頻繁集提取子模塊,用于分別提取所述子集合中公共維度占比超過第四預(yù)設(shè)閾 值的一個(gè)或多個(gè)維度的頻繁集;其中,所述公共維度為大部分本類中都有其中一個(gè)值的維 度;
[0113] 特征維度生成子模塊,用于找出所述子集合中最長的頻繁集對應(yīng)的維度,并依據(jù) 所述維度生成對應(yīng)的聚類空間的特征維度。
[0114] 本申請實(shí)施例公開了一種基于用戶行為的個(gè)性化推薦的系統(tǒng),包括:
[0115] 用戶行為信息獲取模塊,用于獲取用戶的行為信息,所述用戶的行為信息包括用 戶標(biāo)識(shí);
[0116] 聚類空間確定模塊,用于根據(jù)所述用戶標(biāo)識(shí)確定當(dāng)前用戶所屬的一個(gè)或多個(gè)聚類 空間;
[0117] 聚類空間特征維度提取模塊,用于提取所述一個(gè)或多個(gè)聚類空間對應(yīng)的聚類空間 特征維度;
[0118] 推薦模塊,用于采用所述聚類空間特征向當(dāng)前用戶進(jìn)行推薦;
[0119] 其中,所述聚類空間特征維度提取模塊包括:
[0120] 用戶行為數(shù)據(jù)點(diǎn)生成模塊,用于收集用戶的原始行為信息,依據(jù)所述用戶的原始 行為信息生成用戶行為數(shù)據(jù)點(diǎn);所述用戶行為數(shù)據(jù)點(diǎn)包括用戶標(biāo)識(shí)、維度標(biāo)識(shí)及對應(yīng)的維 度分值;
[0121] 聚類空間形成模塊,用于按照所述維度標(biāo)識(shí)采用維度分值對所述用戶行為數(shù)據(jù)點(diǎn) 進(jìn)行聚類,形成多個(gè)聚類空間;
[0122] 二值化模塊,用于分別針對所述多個(gè)聚類空間中用戶行為數(shù)據(jù)點(diǎn)的維度分值進(jìn)行 二值化;
[0123] 特征維度提取模塊,用于依據(jù)二值化的結(jié)果提取滿足預(yù)設(shè)要求的一個(gè)或多個(gè)維度 標(biāo)識(shí)作為聚類空間的特征維度。
[0124] 與【背景技術(shù)】相比,本申請實(shí)施例包括以下優(yōu)點(diǎn):
[0125] 本申請實(shí)施例采用了分布式計(jì)算,總體運(yùn)算時(shí)間大幅減少。針對海量數(shù)據(jù)輸入的 條目超多和條目維度超多的問題,采用對數(shù)據(jù)分塊計(jì)算的方法,對中間結(jié)果分塊表達(dá),解決 了I/O過大問題。比如,在計(jì)算中心點(diǎn)時(shí),將每個(gè)維度分開計(jì)算,不需要維持一個(gè)全局文件。 所有維度分開計(jì)算,并且應(yīng)用了二次排序技術(shù),不需要將數(shù)據(jù)存在基于哈希表的Map接口 中;沒有了全局文件的限制,運(yùn)行算法時(shí)I/O負(fù)載的瓶頸就不存在了。本申請實(shí)施例實(shí)現(xiàn)了 海量數(shù)據(jù)的處理,系統(tǒng)多次迭代,自頂向下的達(dá)到最終聚類。
[0126] 本申請實(shí)施例采用最大差異化的方法,去除公共特征,提取差異特征集中的最大 頻繁集,從而有效的提取出可以區(qū)分用戶群組的特征集。本申請實(shí)施例可以分布式并行計(jì) 算,使運(yùn)算時(shí)間大大縮短。由于對維度使用二值化,〇值可以不用存儲(chǔ),節(jié)省了很多存儲(chǔ)空 間。
[0127] 本申請實(shí)施例將個(gè)性化推薦信息事先配置到用戶信息中,當(dāng)用戶進(jìn)行訪問的時(shí) 候,獲取用戶標(biāo)識(shí)后可以直接獲取用戶對應(yīng)的推薦信息,而不用再根據(jù)其用戶行為信息進(jìn) 行聚類和特征提取,節(jié)省了系統(tǒng)資源和提高了個(gè)性化推薦的效率。

【專利附圖】

【附圖說明】
[0128] 圖1示出了本申請實(shí)施例提供的一種基于用戶行為的特征提取的方法實(shí)施例的 步驟流程圖;
[0129] 圖2示出了本申請實(shí)施例的一種數(shù)據(jù)輸入的優(yōu)選示例的示例圖;
[0130] 圖3示出了本申請實(shí)施例提供的一種基于用戶行為的個(gè)性化推薦的方法實(shí)施例 的步驟流程圖;
[0131] 圖4示出了本申請實(shí)施例提供的一種基于用戶行為的特征提取的系統(tǒng)實(shí)施的結(jié) 構(gòu)框圖;
[0132] 圖5示出了本申請實(shí)施例提供的一種基于用戶行為的個(gè)性化推薦的系統(tǒng)實(shí)施的 結(jié)構(gòu)框圖。

【具體實(shí)施方式】
[0133] 為使本申請實(shí)施例的上述目的、特征和優(yōu)點(diǎn)能夠更加明顯易懂,下面結(jié)合附圖和

【具體實(shí)施方式】對本申請實(shí)施例作進(jìn)一步詳細(xì)的說明。
[0134] 本申請實(shí)施例的核心構(gòu)思之一在于,對海量數(shù)據(jù)采取分布式計(jì)算和分塊的計(jì)算思 想,基于用戶行為進(jìn)行群組的聚類,采用最大差異化的方法特征提取群組的特征,實(shí)現(xiàn)海量 數(shù)據(jù)的高效聚合和特征提取,以及實(shí)現(xiàn)對用戶的高效個(gè)性化推薦。
[0135] 參照圖1,示出了本申請實(shí)施例一種基于用戶行為的特征提取方法實(shí)施例的步驟 流程圖,具體可以包括如下步驟:
[0136] 步驟101 :收集用戶的原始行為信息,依據(jù)所述用戶的原始行為信息生成用戶行 為數(shù)據(jù)點(diǎn);所述用戶行為數(shù)據(jù)點(diǎn)包括用戶標(biāo)識(shí)、維度標(biāo)識(shí)及對應(yīng)的維度分值;
[0137] 需要說明的是,本申請實(shí)施例可以通過網(wǎng)站日志收集用戶的原始行為信息。一般 的網(wǎng)站日志可以記錄用戶電腦的IP地址是什么、在什么時(shí)間、用什么操作系統(tǒng)、什么瀏覽 器、什么顯示器的情況下訪問了網(wǎng)站的哪個(gè)頁面,是否訪問成功。但是對于特征提取和個(gè)性 化推薦的需求而言,需要的不是用戶電腦的IP地址、操作系統(tǒng)、瀏覽器等機(jī)器人數(shù)據(jù),而是 用戶瀏覽了什么信息、對其喜愛程度的表現(xiàn)行為等可以表征用戶興趣愛好的行為信息。
[0138] 當(dāng)然,上述收集用戶的原始行為信息的方式只是作為示例,在實(shí)施本申請實(shí)施例 時(shí),可以根據(jù)實(shí)際情況設(shè)置其他收集用戶的原始行為信息的方式,本申請實(shí)施例對此不加 以限制。另外,除了上述收集用戶的原始行為信息的方式外,本領(lǐng)域技術(shù)人員還可以根據(jù)實(shí) 際需要采用其他收集用戶的原始行為信息的方式,本申請實(shí)施例對此也不加以限制。
[0139] 在本申請的一個(gè)優(yōu)選實(shí)施例中,可以提取用戶原始行為信息中的具體用戶、用戶 訪問過的具體信息,以及對應(yīng)的訪問該信息的方式。在具體實(shí)現(xiàn)中,可以使用用戶標(biāo)識(shí)表征 不同的用戶;可以使用維度標(biāo)識(shí)表征不同的維度,所述維度可以表征所述不同的具體信息, 例如不同資訊的關(guān)鍵詞、不同的商品等;可以使用維度分值表征用戶對對應(yīng)訪問的信息的 喜好程度。
[0140] 在本實(shí)施例的一個(gè)優(yōu)選示例中,所述維度分值可以根據(jù)用戶訪問維度的方式配置 相應(yīng)的權(quán)重生成。例如,用戶B瀏覽了商品AlO次,對每次的瀏覽行為配置值為1的權(quán)重, 則此時(shí)用戶B對于商品A的維度分值為1*10=10 ;假如用戶B在瀏覽了商品A15次之后購 買了商品A,對用戶B的購買行為配置值為10的權(quán)重,則此時(shí)用戶B對于商品A的維度分值 為 1*15+10*1=25。
[0141] 當(dāng)然,上述生成維度分值的方式只是作為示例,在實(shí)施本申請實(shí)施例時(shí),可以根據(jù) 實(shí)際情況設(shè)置其他生成維度分值的方式,本申請實(shí)施例對此不加以限制。另外,除了上述 生成維度分值的方式外,本領(lǐng)域技術(shù)人員還可以根據(jù)實(shí)際需要采用其他生成維度分值的方 式,本申請實(shí)施例對此也不加以限制。
[0142] 在本申請實(shí)施例中,用戶行為數(shù)據(jù)點(diǎn)具體可以包括用戶標(biāo)識(shí)、維度標(biāo)識(shí)及對應(yīng)的 維度分值。可以理解,用戶行為數(shù)據(jù)點(diǎn)是多維空間的向量點(diǎn),包括用戶標(biāo)識(shí)、維度標(biāo)識(shí)及對 應(yīng)的維度分值三個(gè)向量元素。
[0143] 在具體實(shí)現(xiàn)中,本申請實(shí)施例可以在進(jìn)行聚類之前對用戶原始行為信息進(jìn)行預(yù)處 理。
[0144] 例如,針對產(chǎn)品聚類,預(yù)處理可以包括去除臟詞和高頻詞。
[0145] 例如,針對用戶聚類,預(yù)處理可以包括去除機(jī)器人數(shù)據(jù)。此外,為了提高統(tǒng)計(jì)分析 的準(zhǔn)確性,預(yù)處理還可以包括去除噪音,即訪問信息特別少的數(shù)據(jù)或者隨機(jī)行為。
[0146] 當(dāng)然,上述預(yù)處理的方式只是作為示例,在實(shí)施本申請實(shí)施例時(shí),可以根據(jù)實(shí)際情 況設(shè)置其他預(yù)處理的方式,本申請實(shí)施例對此不加以限制。另外,除了上述預(yù)處理的方式 夕卜,本領(lǐng)域技術(shù)人員還可以根據(jù)實(shí)際需要采用其他預(yù)處理的方式,本申請實(shí)施例對此也不 加以限制。
[0147] 步驟102 :按照所述維度標(biāo)識(shí)采用維度分值對所述用戶行為數(shù)據(jù)點(diǎn)進(jìn)行聚類,形 成多個(gè)聚類空間;
[0148] 需要說明的是,進(jìn)行聚類的用戶行為數(shù)據(jù)點(diǎn),可以是收集的用戶原始行為信息的 全部信息提取出來的,也可以是部分信息提取出來的,本申請實(shí)施例對此不加以限制。
[0149] 可以理解,一個(gè)用戶行為數(shù)據(jù)點(diǎn)可以包括一個(gè)或多個(gè)維度標(biāo)識(shí)及對應(yīng)的維度分 值,聚類空間實(shí)質(zhì)上可以是按照不同的用戶行為將用戶劃分形成的群組,群組里的用戶具 有一個(gè)或多個(gè)相同或相近的行為愛好。一個(gè)用戶的原始行為信息可以對應(yīng)生成一個(gè)或多個(gè) 用戶行為數(shù)據(jù)點(diǎn),也就可以得到一個(gè)或多個(gè)聚類空間,即一個(gè)用戶可以按照用戶行為劃分 到一個(gè)或多個(gè)群組。
[0150] 在具體實(shí)現(xiàn)中,本申請實(shí)施例采用對用戶行為數(shù)據(jù)點(diǎn)進(jìn)行分塊計(jì)算的思想,對中 間結(jié)果分塊表達(dá),解決了I/O過大問題,進(jìn)而可以應(yīng)用于分布式計(jì)算,大大加快了聚類和特 征提取的速度。
[0151] 為使本領(lǐng)域技術(shù)人員更好地理解本申請實(shí)施例,在本說明書中,將分布式系統(tǒng)基 礎(chǔ)架構(gòu)hadoop作為分布式計(jì)算的一種示例進(jìn)行說明。
[0152] Hadoop的分布式主要包括兩部分,一是分布式文件系統(tǒng)HDFS,另外是分布式計(jì)算 框架,即MapReduce。MapReduce任務(wù)過程被分為兩個(gè)處理階段:Map階段和Reduce階段。 每個(gè)階段都以鍵(key)\值(¥&11^)對作為輸入(Input)和輸出(Output),并由用戶選擇它 們的類型。用戶還需具體定義兩個(gè)函數(shù):映射函數(shù)(map)和規(guī)約函數(shù)(reduce)。Map把用 戶輸入的數(shù)據(jù)(key,value)通過用戶自定義的映射過程轉(zhuǎn)變?yōu)橐唤M中間鍵值對的集合。而 Reduce則會(huì)對生成的臨時(shí)中間鍵值對進(jìn)行規(guī)約處理。這個(gè)規(guī)約的規(guī)則也是用戶自定義的, 通過制定的Reduce來實(shí)現(xiàn),最后Reduce會(huì)輸出最終結(jié)果。map函數(shù)的輸出經(jīng)由MapReduce 框架處理后,最后分發(fā)到reduce函數(shù)。
[0153] 在具體實(shí)現(xiàn)中,可以采用如下方式表達(dá)聚類過程中的數(shù)據(jù):
[0154] user:用戶 userid:用戶標(biāo)識(shí)
[0155] offer:維度 offerld:維度標(biāo)識(shí) clustei:聚類空間 clusterld:聚類空間標(biāo)識(shí) center:中心點(diǎn) centerld:中心點(diǎn)標(biāo)識(shí) score:值 distance:距離 usercount:用戶數(shù)量 judge:判斷標(biāo)識(shí)
[0156] 當(dāng)然,上述用戶行為信息的數(shù)據(jù)表示方法只是作為示例,在實(shí)施本申請實(shí)施例時(shí), 可以根據(jù)實(shí)際情況設(shè)置其他用戶行為信息的數(shù)據(jù)表示方法,本申請實(shí)施例對此不加以限 制。另外,除了上述用戶行為信息的數(shù)據(jù)表示方法外,本領(lǐng)域技術(shù)人員還可以根據(jù)實(shí)際需要 采用其它用戶行為信息的數(shù)據(jù)表示方法,本申請實(shí)施例對此也不加以限制。
[0157] 在本申請的一個(gè)優(yōu)選實(shí)施例中,步驟102具體可以包括如下子步驟:
[0158] 子步驟S11,將所述用戶行為數(shù)據(jù)點(diǎn)分配至K個(gè)簇中,并按照維度標(biāo)識(shí)分別計(jì)算K 個(gè)簇中對應(yīng)的初始的K個(gè)中心點(diǎn),并依據(jù)所述用戶行為數(shù)據(jù)點(diǎn)及對應(yīng)的K個(gè)中心點(diǎn),形成初 始的K個(gè)聚類空間;其中,所述K為正整數(shù);
[0159] 在本申請的一個(gè)優(yōu)選實(shí)施例中,子步驟Sll進(jìn)一步可以包括:
[0160] 子步驟S11-1,將所述用戶行為數(shù)據(jù)點(diǎn)隨機(jī)分配至K個(gè)簇中,依據(jù)用戶標(biāo)識(shí)統(tǒng)計(jì)各 個(gè)聚類空間中的用戶數(shù)量;
[0161] 子步驟S11-2,在K個(gè)簇中,按維度標(biāo)識(shí)分別聚合對應(yīng)的用戶行為數(shù)據(jù)點(diǎn),形成一 個(gè)或多個(gè)分別歸屬于不同維度的用戶行為數(shù)據(jù)點(diǎn)子集合;
[0162] 子步驟S11-3,分別對所述子集合中的維度分值進(jìn)行求和,再分別除以對應(yīng)的聚類 空間中的用戶數(shù)量,獲得作為K個(gè)聚類空間初始的中心點(diǎn)的計(jì)算結(jié)果;
[0163] 子步驟S11-4,依據(jù)所述K個(gè)中心點(diǎn)及對應(yīng)的用戶行為數(shù)據(jù)點(diǎn),形成初始的K個(gè)聚 類空間。
[0164] 在具體實(shí)現(xiàn)中,將用戶行為數(shù)據(jù)點(diǎn)(userid,offerld,score)隨機(jī)的分配到K個(gè)聚 類空間(cluster)中,并計(jì)算出每個(gè)cluster中的用戶數(shù)量(usercount),避免求平均時(shí)出 現(xiàn)錯(cuò)誤,求出所有的usercount后將每個(gè)cluster中的用戶行為數(shù)據(jù)點(diǎn)(userid,offerld, score)按offerld為key分發(fā)到reduce中,對每個(gè)cluster中各個(gè)offer對應(yīng)的用戶行 為數(shù)據(jù)點(diǎn)中的score求和,求和后除以每個(gè)cluster中的usercount,得出作為每個(gè)中心點(diǎn) (center)在每個(gè)維度(offer)上初始的score的結(jié)果。
[0165] 可以理解,每個(gè)中心點(diǎn)在每個(gè)維度上都存在一個(gè)值。若聚類空間中不存在某個(gè)維 度的用戶行為數(shù)據(jù)點(diǎn),則該聚類空間的中心點(diǎn)在該維度的值可以為0。
[0166]在本申請實(shí)施例中,子步驟Sll的Output為,key:centerld,value:offerId, score。
[0167] 子步驟S12,按照維度標(biāo)識(shí)分別計(jì)算各用戶行為數(shù)據(jù)點(diǎn)與K個(gè)中心點(diǎn)的距離;
[0168] 可以理解,本申請實(shí)施例從這里開始聚類的循環(huán)迭代。
[0169] 在本申請的一個(gè)優(yōu)選實(shí)施例中,子步驟S12進(jìn)一步可以包括:
[0170] 子步驟S12-1,按照維度標(biāo)識(shí)分別聚合對應(yīng)的中心點(diǎn)和用戶行為數(shù)據(jù)點(diǎn),形成一個(gè) 或多個(gè)分別歸屬于不同維度的中心點(diǎn)及對應(yīng)的用戶行為數(shù)據(jù)點(diǎn)的子集合;
[0171] 子步驟S12-2,分別計(jì)算所述子集合中各用戶行為數(shù)據(jù)點(diǎn)中與K個(gè)中心點(diǎn)的距離。
[0172] 在具體實(shí)現(xiàn)中,將初始的用戶行為數(shù)據(jù)點(diǎn)(userid,offerld,score)和子步驟Sll 的結(jié)果(key:centerld,value:offerId,score)讀入,利用hadoop的二次排序技術(shù),即在 map后重新排序,按offerld為key將讀入后的數(shù)據(jù)發(fā)出,將中心點(diǎn)排在初始的用戶行為數(shù) 據(jù)點(diǎn)的前面,在reduce中計(jì)算出用戶行為數(shù)據(jù)點(diǎn)在其所屬的維度上與中心點(diǎn)的距離。需要 說明的是,本申請實(shí)施例的距離包括但不限于歐氏距離。
[0173] 在本實(shí)施例的一個(gè)優(yōu)選示例中,所述子集各用戶行為數(shù)據(jù)點(diǎn)與K個(gè)中心點(diǎn)的距離 具體可以通過以下公式獲得
[0174] distance=l_2*score;
[0175]其中,distance為用戶行為數(shù)據(jù)點(diǎn)與中心點(diǎn)在所述維度上的距離,score為中心 點(diǎn)在所述維度上的值。
[0176] 參見圖2,示出了本申請實(shí)施例的一種數(shù)據(jù)輸入的優(yōu)選示例的示例圖。"C"代表中 心點(diǎn),代表各個(gè)維度,"U"代表用戶,"#"代表用戶訪問過的數(shù)據(jù)。
[0177] 在輸入用戶行為數(shù)據(jù)點(diǎn)時(shí),可以只保存用戶訪問過的數(shù)據(jù),用戶沒有訪問過的數(shù) 據(jù)可以不保存。
[0178] 相對應(yīng)的,offer的權(quán)重可以設(shè)置為0或1,0可以代表不存在歸屬所述維度的用 戶行為數(shù)據(jù)點(diǎn)(即用戶沒有訪問過該維度上的數(shù)據(jù)),1可以代表存在歸屬所述維度的用戶 行為數(shù)據(jù)點(diǎn)(即用戶訪問過該維度上的數(shù)據(jù))。
[0179] 若在本實(shí)施例使用歐氏距離,則每個(gè)用戶行為數(shù)據(jù)點(diǎn)在某個(gè)維度上與某個(gè)中心點(diǎn) 的距離就有(offer-center) 2。
[0180] 可以發(fā)現(xiàn),當(dāng)offer的權(quán)重為0時(shí),該維度仍然與中心點(diǎn)存在一個(gè)固定距離 (center2);當(dāng)offer的權(quán)重為1時(shí),將計(jì)算得到的距離(即l_2*center+center2)再減去當(dāng) offer的權(quán)重為0時(shí)計(jì)算的距離(center2),得到用戶行為數(shù)據(jù)點(diǎn)在該維度上與中心點(diǎn)的真 實(shí)距離(l_2*center)。
[0181] 而上述center則是中心點(diǎn)在該維度上的值(score)。
[0182]在本申請實(shí)施例中,子步驟S12的Output為,key:userld,value:distance。
[0183] 子步驟S13,依據(jù)所述用戶行為數(shù)據(jù)點(diǎn)與K個(gè)中心點(diǎn)的距離,重新確定所述用戶行 為數(shù)據(jù)點(diǎn)歸屬的K個(gè)聚類空間;
[0184] 在本申請的一個(gè)優(yōu)選實(shí)施例中,子步驟S13進(jìn)一步可以包括:
[0185] 子步驟S13-1,按用戶標(biāo)識(shí)分別聚合對應(yīng)的用戶行為數(shù)據(jù)點(diǎn)與K個(gè)中心點(diǎn)在所有 維度上的距離,形成一個(gè)或多個(gè)分別歸屬于不同用戶的距離子集合;
[0186] 子步驟S13-2,在所述子集合中,提取與用戶行為數(shù)據(jù)點(diǎn)距離最近的中心點(diǎn)對應(yīng)的 聚類空間作為用戶行為數(shù)據(jù)點(diǎn)歸屬的聚類空間。
[0187] 在本申請實(shí)施例中,可以采用用戶行為數(shù)據(jù)點(diǎn)在所有維度上(包括該用戶行為數(shù) 據(jù)點(diǎn)沒有在所述維度上的數(shù)據(jù))與中心點(diǎn)的距離,生成該用戶行為數(shù)據(jù)點(diǎn)與該個(gè)中心點(diǎn)的 距離。
[0188] 由于在輸入用戶行為數(shù)據(jù)點(diǎn)時(shí),可以只保存用戶訪問過的數(shù)據(jù)(即維度的權(quán)重為 1),而用戶沒有訪問過的數(shù)據(jù)可以不保存(即維度的權(quán)重為〇)。那么用戶行為數(shù)據(jù)點(diǎn)與中心 點(diǎn)的距離可以通過以下公式計(jì)算:
[0189]true=E(Centerld[il][jl]-〇)2+E(1-Centerld[i2] [j2])2
[0190] 在子步驟S12,通過按照維度計(jì)算用戶行為數(shù)據(jù)點(diǎn)與各個(gè)中心點(diǎn)的距離可以得 到:
[0191]now:E(1-Centerld[i2] [j2])2
[0192]即now:E(l-2*CenterId[i2] [j2])
[0193] 可以發(fā)現(xiàn):
[0194]true=ECenterld[i] [j]2+E(l-2*CenterId[i2] [j2])
[0195] 其中,i代表不同的維度,j代表不同的中心點(diǎn),即Centerld[i] [j]代表不同中心 點(diǎn)在不同維度上的值。可以理解,計(jì)算每個(gè)用戶行為數(shù)據(jù)點(diǎn)與每個(gè)中心點(diǎn)的距離時(shí),只缺少 了維度權(quán)重為〇時(shí)與所有中心點(diǎn)的差異。
[0196] 在計(jì)算每個(gè)用戶行為數(shù)據(jù)點(diǎn)與每個(gè)中心點(diǎn)的距離時(shí)可以讀入事先計(jì)算的 ECenterId[i][j]2,再加上子步驟S12的結(jié)果E (l_2*CenterId[i2][j2])即可。
[0197] 在具體實(shí)現(xiàn)中,可以將每個(gè)用戶與每個(gè)中心點(diǎn)在所有維度上的距離 ECenterld[i] [j]2+E(l_2*CenterId[i2] [j2])-起讀入,然后按userid為key分發(fā)到 reduce中聚合,取與用戶行為數(shù)據(jù)點(diǎn)距離最小的中心點(diǎn)將用戶行為數(shù)據(jù)點(diǎn)歸屬,即表示將 用戶行為數(shù)據(jù)點(diǎn)重新分配至所述中心點(diǎn)對應(yīng)的聚類空間中。
[0198]在本申請實(shí)施例中,子步驟S13 的Output為,key:userld,value:clusterld。
[0199] 在具體實(shí)現(xiàn)中,為防止聚類空間在用戶行為數(shù)據(jù)點(diǎn)重新分配后數(shù)量減少,可以在 子步驟S13之后,統(tǒng)計(jì)當(dāng)前聚類空間的數(shù)量。若聚類空間的數(shù)量小于K,則可以進(jìn)行補(bǔ)全。 在具體實(shí)現(xiàn)中,可以將一個(gè)或多個(gè)最大的聚類空間進(jìn)行拆分,隨機(jī)分配到空的聚類空間中 進(jìn)行補(bǔ)全。否則,可以直接執(zhí)行子步驟S14。
[0200] 子步驟S14,判斷當(dāng)前K個(gè)聚類空間是否滿足預(yù)設(shè)條件;若是,則執(zhí)行子步驟S15; 若否,則執(zhí)行子步驟S16;
[0201] 子步驟S15,獲得最終的K個(gè)聚類空間;
[0202] 子步驟S16,在執(zhí)行子步驟S17按照維度標(biāo)識(shí)分別計(jì)算當(dāng)前K個(gè)聚類空間的新的中 心點(diǎn)后,返回子步驟S12。
[0203] 可以理解,本申請實(shí)施例可以在這里完成聚類的循環(huán)迭代。
[0204] 在本申請的一個(gè)優(yōu)選實(shí)施例中,子步驟S17具體可以包括:
[0205] 子步驟S17-1,在K個(gè)聚類空間中,按維度標(biāo)識(shí)分別聚合對應(yīng)的用戶行為數(shù)據(jù)點(diǎn), 形成一個(gè)或多個(gè)分別歸屬于不同維度的用戶行為數(shù)據(jù)點(diǎn)子集合;
[0206] 子步驟S17-2,依據(jù)用戶標(biāo)識(shí)統(tǒng)計(jì)各個(gè)聚類空間中的用戶數(shù)量;
[0207] 子步驟S17-3,分別對所述子集合中的維度分值進(jìn)行求和,再分別除以所述K個(gè)聚 類空間中的用戶數(shù)量,獲得作為K個(gè)聚類空間新的中心點(diǎn)的計(jì)算結(jié)果。
[0208] 可以理解,新的中心點(diǎn)是相對于聚類空間中的前一中心點(diǎn)而言的。
[0209] 在具體實(shí)現(xiàn)中,將子步驟S13輸出的結(jié)果(key:userld, value:clusterld)與用 戶行為數(shù)據(jù)點(diǎn)(userid, offerld,score)拼接在一起(key:clusterld, value:ofTerId, score),通過reduce發(fā)出。
[0210] 按offerld為key分別計(jì)算分配到每個(gè)cluster中的用戶行為數(shù)據(jù)點(diǎn)中score的 和,結(jié)果按(1^7:(31118七61'1(1,¥31116:116¥,〇€€61'1(1,8(30代)發(fā)出,其中,116¥可以用于標(biāo)識(shí)輸 出的數(shù)據(jù)為新一次計(jì)算的結(jié)果,可以用于區(qū)分與上一次的計(jì)算。讀入下一個(gè)map中。在此 map中,按clusterId為key將上述結(jié)果(key:clusterId,value:new,offerld,score)分 發(fā)到reduce中,除以對應(yīng)的cluster中的usercount,即得出新的中心點(diǎn)的值。
[0211] 在本申請實(shí)施例中,子步驟S17 的Output為,key:clusterld,value:new, offerld,score。
[0212] 在本申請的一個(gè)優(yōu)選實(shí)施例中,所述預(yù)設(shè)條件包括聚類的迭代次數(shù)超過第一預(yù)設(shè) 閾值,子步驟S14進(jìn)一步可以包括:
[0213] 子步驟C1,統(tǒng)計(jì)當(dāng)前聚類的迭代次數(shù);
[0214] 子步驟C2,判斷所述迭代次數(shù)是否超過第一預(yù)設(shè)閾值。
[0215] 在本申請實(shí)施例的一個(gè)優(yōu)選示例中,所述第一預(yù)設(shè)閾值為70。
[0216] 在本申請的一個(gè)優(yōu)選實(shí)施例中,所述預(yù)設(shè)條件還包括完成收斂的聚類空間的占比 超過第二預(yù)設(shè)閾值,子步驟S14進(jìn)一步還可以包括:
[0217] 子步驟D1,分別判斷K個(gè)聚類空間是否完成收斂;
[0218] 子步驟D2,統(tǒng)計(jì)完成收斂的聚類空間的占比;
[0219] 子步驟D3,判斷所述占比是否超過第二預(yù)設(shè)閾值。
[0220] 需要說明的是,所述占比為完成收斂的聚類空間的數(shù)量占K個(gè)聚類空間的數(shù)量的 比例。
[0221] 在本申請實(shí)施例的一個(gè)優(yōu)選示例中,所述第二預(yù)設(shè)閾值為80%。
[0222] 在本申請實(shí)施例的一個(gè)優(yōu)選示例中,子步驟Dl具體可以包括:
[0223] 子步驟D1-1,按維度標(biāo)識(shí)分別聚合K個(gè)聚類空間中的新的中心點(diǎn)和前一中心點(diǎn), 形成一個(gè)或多個(gè)分別歸屬于不同維度的中心點(diǎn)子集合;
[0224] 子步驟D1-2,分別依據(jù)所述子集合中新中心點(diǎn)及對應(yīng)的前一中心點(diǎn)計(jì)算誤差;
[0225] 子步驟D1-3,按照聚類空間標(biāo)識(shí)分別聚合對應(yīng)的誤差,形成K個(gè)分別歸屬于對應(yīng)K 個(gè)聚類空間的迭代誤差;若所述迭代誤差小于第三預(yù)設(shè)閾值,則執(zhí)行子步驟D1-4 ;若否,則 執(zhí)行子步驟D1-5;
[0226] 子步驟D1-4,標(biāo)識(shí)對應(yīng)的聚類空間完成收斂;
[0227] 子步驟D1-5,標(biāo)識(shí)對應(yīng)的聚類空間未完成收斂。
[0228] 在具體實(shí)現(xiàn)中,將新的中心點(diǎn)及對應(yīng)的前一中心點(diǎn)以offerld為key通過map分 發(fā)到reduce中,在reduce中計(jì)算每個(gè)clusterld中兩個(gè)中心點(diǎn)的誤差(所述誤差包括但不 限于兩個(gè)中心點(diǎn)值的差的平方),將結(jié)果作為下一個(gè)map的輸入。在此map中,按clusterld 將算出的誤差聚合計(jì)算迭代誤差,給定第三預(yù)設(shè)閾值stop,判斷對應(yīng)的聚類空間是否完成 收斂。
[0229] 在本實(shí)施例的一個(gè)優(yōu)選示例中,所述第三預(yù)設(shè)閾值為0. 001。
[0230] 在本申請實(shí)施例中,子步驟Dl的Output為,key:clusterld,value:judge。(其 中,judge取值可以為true或者false,代表收斂完成或者未完成。)
[0231] 在具體實(shí)現(xiàn)中,可以在腳本執(zhí)行迭代次數(shù)、完成收斂的聚類空間的占比的統(tǒng)計(jì)和 是否滿足預(yù)設(shè)條件的判斷。若不滿足,則可以移動(dòng)數(shù)據(jù),為下一次迭代作準(zhǔn)備。具體而言,可 以分別將K個(gè)聚類空間的新的中心點(diǎn)替代前一中心點(diǎn),進(jìn)行下一次迭代(子步驟S12-S14)。 若滿足,則依據(jù)當(dāng)前聚類的循環(huán)迭代中子步驟S13的輸出結(jié)果,獲得最終的K個(gè)聚類空間。
[0232] 運(yùn)行分布式計(jì)算的每個(gè)數(shù)據(jù)塊計(jì)算的結(jié)果都是一個(gè)文件,最后會(huì)拼接成一個(gè)文件 進(jìn)行表示。最后的結(jié)果是一個(gè)文件,每行的形式為(clusterld,userld),文件中每一條都是 上述格式,表示用戶歸屬于聚類空間。
[0233] 步驟103,分別針對所述多個(gè)聚類空間中用戶行為數(shù)據(jù)點(diǎn)的維度分值進(jìn)行二值 化;
[0234] 在具體實(shí)現(xiàn)中,可以直接將維度分值處理為0值、1值,可以對0值的維度不予保 留。這樣,維度的數(shù)據(jù)表達(dá),可以只保留維度標(biāo)識(shí),使數(shù)據(jù)量大大減少。直接進(jìn)行二值化的 方法,可以包括但不限于閾值分割法。
[0235] 對于不能直接二值化的維度分值,可以通過增加維度分值進(jìn)行二值化;在本實(shí)施 例中,增加維度分值的方法可以包括但不限于離散化方法。
[0236] 對二值化后的用戶行為數(shù)據(jù)點(diǎn)的表達(dá),可以包括但不限于使用稀疏矩陣進(jìn)行表 達(dá)。
[0237] 例如,一個(gè)用戶行為數(shù)據(jù)點(diǎn)表示為〈1,2, 3>,行標(biāo)識(shí)(rowld,表征userid)為1,列 標(biāo)識(shí)為(〇〇111111111(1,表征〇€€61'1(1)2,值(維度分值,8〇(^6)為3。
[0238] 其中,二值化后值為0的點(diǎn)為〈rowld,columnld,0>,不存儲(chǔ);值為1的點(diǎn)為 〈rowed,columnId,l>,不存儲(chǔ)值,表達(dá)為〈rowld,columnld〉。
[0239] 當(dāng)然,上述二值化后用戶行為數(shù)據(jù)點(diǎn)的表示方式只是作為示例,在實(shí)施本申請實(shí) 施例時(shí),可以根據(jù)實(shí)際情況設(shè)置其他用戶行為數(shù)據(jù)點(diǎn)的表示方式,本申請實(shí)施例對此不加 以限制。另外,除了上述用戶行為數(shù)據(jù)點(diǎn)的表示方式外,本領(lǐng)域技術(shù)人員還可以根據(jù)實(shí)際需 要采用其它用戶行為數(shù)據(jù)點(diǎn)的表示方式,本申請實(shí)施例對此也不加以限制。
[0240] 步驟104,依據(jù)二值化的結(jié)果提取滿足預(yù)設(shè)要求的一個(gè)或多個(gè)維度標(biāo)識(shí)作為聚類 空間的特征。
[0241] 在本申請的一個(gè)優(yōu)選實(shí)施例中,步驟104具體可以包括如下子步驟:
[0242] 子步驟S21,在多個(gè)聚類空間中,按主鍵分別聚合對應(yīng)的用戶行為數(shù)據(jù)點(diǎn),形成一 個(gè)或多個(gè)分別歸屬于不同主鍵的用戶行為數(shù)據(jù)點(diǎn)的子集合;其中,所述主鍵為維度標(biāo)識(shí)或 維度標(biāo)識(shí)的組合;
[0243] 在具體實(shí)現(xiàn)中,對于二值化的用戶行為數(shù)據(jù)點(diǎn),由于數(shù)據(jù)量大大減少和按照分塊 計(jì)算的思想,也可以應(yīng)用在云平臺(tái)上,公共維度會(huì)根據(jù)主鍵可以聚集在同一個(gè)運(yùn)算節(jié)點(diǎn)(即 reduce的節(jié)點(diǎn))上,便于下面的運(yùn)算。
[0244] 子步驟S22,分別提取所述子集合中公共維度占比超過第四預(yù)設(shè)閾值的一個(gè)或多 個(gè)維度的頻繁集;其中,所述公共維度為二值化后的維度分值為指定值的用戶行為數(shù)據(jù)點(diǎn) 的占比超過第五預(yù)設(shè)閾值的維度;
[0245] 需要說明的是,頻繁集又稱頻繁項(xiàng)集,是指滿足最小支持度的項(xiàng)目集合。在具體實(shí) 現(xiàn)中,可以包括但不限于使用頻繁集挖掘算法提取頻繁集,而對于本領(lǐng)域技術(shù)人員而言,利 用頻繁集挖掘算法進(jìn)行數(shù)據(jù)挖掘,屬于公知技術(shù),本申請實(shí)施例在此不作詳細(xì)說明。在本申 請實(shí)施例中,公共維度可以是具有代表意義的維度,即大部分用戶行為數(shù)據(jù)點(diǎn)在這些維度 上都有指定的值。在具體實(shí)現(xiàn)中,在某個(gè)維度上的用戶行為數(shù)據(jù)點(diǎn)二值化后的1值多的可 以是公共維度。
[0246] 在本申請實(shí)施例的一個(gè)優(yōu)選示例中,第四預(yù)設(shè)閾值為70%_90%中的任一值。
[0247] 子步驟S23,找出所述子集合中最長的頻繁集對應(yīng)的維度,并依據(jù)所述維度生成對 應(yīng)的聚類空間的特征維度。
[0248] 采用所述維度生成對應(yīng)的聚類空間的特征的方式可由本領(lǐng)域技術(shù)人員根據(jù)實(shí)際 情況進(jìn)行設(shè)定,可以是一個(gè)字符串,也可以用二進(jìn)制文件的方式存儲(chǔ),本申請實(shí)施例對此不 加以限制。
[0249] 圖3示出了本申請實(shí)施例提供的一種基于用戶行為的個(gè)性化推薦的方法實(shí)施例 的步驟流程圖,具體可以包括如下步驟:
[0250] 步驟201,獲取用戶的行為信息,所述用戶的行為信息包括用戶標(biāo)識(shí);
[0251] 步驟202,根據(jù)所述用戶標(biāo)識(shí)確定當(dāng)前用戶所屬的一個(gè)或多個(gè)聚類空間;
[0252] 步驟203,提取所述一個(gè)或多個(gè)聚類空間對應(yīng)的聚類空間特征維度;
[0253] 步驟204,采用所述聚類空間特征向當(dāng)前用戶進(jìn)行推薦;
[0254] 其中,所述步驟203具體可以包括如下子步驟:
[0255] 子步驟S31,收集用戶的原始行為信息,依據(jù)所述用戶的原始行為信息生成用戶行 為數(shù)據(jù)點(diǎn);所述用戶行為數(shù)據(jù)點(diǎn)包括用戶標(biāo)識(shí)、維度標(biāo)識(shí)及對應(yīng)的維度分值;
[0256] 子步驟S32,按照所述維度標(biāo)識(shí)采用維度分值對所述用戶行為數(shù)據(jù)點(diǎn)進(jìn)行聚類,形 成多個(gè)聚類空間;
[0257] 子步驟S33,分別針對所述多個(gè)聚類空間中用戶行為數(shù)據(jù)點(diǎn)的維度分值進(jìn)行二值 化;
[0258] 子步驟S34,依據(jù)二值化的結(jié)果提取滿足預(yù)設(shè)要求的一個(gè)或多個(gè)維度標(biāo)識(shí)作為聚 類空間的特征維度。
[0259] 在具體實(shí)現(xiàn)中,可以事先將用戶按行為愛好劃分的一個(gè)或多個(gè)即聚類空間及提取 對應(yīng)聚類空間的特征維度,再將所述聚類空間的標(biāo)識(shí)及對應(yīng)的特征維度配置到對應(yīng)的用戶 標(biāo)識(shí)上。當(dāng)用戶進(jìn)行訪問的時(shí)候,獲取用戶標(biāo)識(shí)后可以直接獲取用戶對應(yīng)的推薦信息(即聚 類空間的特征維度),而不用再根據(jù)其用戶行為信息進(jìn)行聚類和特征提取,節(jié)省了系統(tǒng)資源 和高了個(gè)性化推薦的效率。
[0260] 在具體實(shí)現(xiàn)中,本申請實(shí)施例還可以依據(jù)預(yù)設(shè)的時(shí)間規(guī)則對收集到的用戶行為信 息進(jìn)行聚類和特征提取,再將結(jié)果配置到相應(yīng)的用戶標(biāo)識(shí)上。
[0261] 其中,所述時(shí)間規(guī)則可由本領(lǐng)域技術(shù)人員根據(jù)實(shí)際情況進(jìn)行設(shè)定,例如,可以是定 期或不定期對全部或部分用戶行為信息進(jìn)行聚類和特征提取,部分用戶行為信息可以是一 段或多段時(shí)間內(nèi)收集的用戶行為信息,本申請實(shí)施例對此不加以限制。
[0262] 對于本申請實(shí)施例而言,由于提取聚類空間特征維度的方法實(shí)施例與基于用戶行 為的特征提取的方法實(shí)施例基本相似,本申請實(shí)施例在此不再詳述,相關(guān)之處參見同基于 用戶行為的特征提取的方法實(shí)施例的部分說明即可。
[0263] 可以理解,對于方法實(shí)施例,為了簡單描述,故將其都表述為一系列的動(dòng)作組合, 但是本領(lǐng)域技術(shù)人員應(yīng)該知悉,本申請實(shí)施例并不受所描述的動(dòng)作順序的限制,因?yàn)橐罁?jù) 本申請實(shí)施例,某些步驟可以采用其他順序或者同時(shí)進(jìn)行。其次,本領(lǐng)域技術(shù)人員也應(yīng)該知 悉,說明書中所描述的實(shí)施例均屬于優(yōu)選實(shí)施例,所涉及的動(dòng)作和模塊并不一定是本申請 實(shí)施例所必須的。
[0264] 參見圖4,示出了本申請實(shí)施例提供的一種基于用戶行為的特征提取的系統(tǒng)實(shí)施 的結(jié)構(gòu)框圖,具體可以包括如下模塊:
[0265] 用戶行為數(shù)據(jù)點(diǎn)生成模塊301,用于收集用戶的原始行為信息,依據(jù)所述用戶的原 始行為信息生成用戶行為數(shù)據(jù)點(diǎn);所述用戶行為數(shù)據(jù)點(diǎn)包括用戶標(biāo)識(shí)、維度標(biāo)識(shí)及對應(yīng)的 維度分值;
[0266] 聚類空間形成模塊302,用于按照所述維度標(biāo)識(shí)采用維度分值對所述用戶行為數(shù) 據(jù)點(diǎn)進(jìn)行聚類,形成多個(gè)聚類空間;
[0267] 二值化模塊303,用于分別針對所述多個(gè)聚類空間中用戶行為數(shù)據(jù)點(diǎn)的維度分值 進(jìn)行二值化;
[0268] 特征維度提取模塊304,用于依據(jù)二值化的結(jié)果提取滿足預(yù)設(shè)要求的一個(gè)或多個(gè) 維度標(biāo)識(shí)作為聚類空間的特征維度。
[0269] 在本申請的一種優(yōu)選實(shí)施例中,所述聚類空間形成模塊包括:
[0270] 初始中心點(diǎn)計(jì)算子模塊,用于將所述用戶行為數(shù)據(jù)點(diǎn)分配至K個(gè)簇中,并按照維 度標(biāo)識(shí)分別計(jì)算K個(gè)簇中對應(yīng)的初始的K個(gè)中心點(diǎn),并依據(jù)所述K個(gè)中心點(diǎn)及對應(yīng)的用戶 行為數(shù)據(jù)點(diǎn),形成初始的K個(gè)聚類空間;其中,所述K為正整數(shù);
[0271] 維度距離計(jì)算子模塊,用于按照維度標(biāo)識(shí)分別計(jì)算各用戶行為數(shù)據(jù)點(diǎn)與K個(gè)中心 點(diǎn)的距離;
[0272] 聚類空間重新歸屬子模塊,用于依據(jù)所述用戶行為數(shù)據(jù)點(diǎn)與K個(gè)中心點(diǎn)的距離, 重新確定所述用戶行為數(shù)據(jù)點(diǎn)歸屬的聚類空間;
[0273] 預(yù)設(shè)條件判斷子模塊,用于判斷當(dāng)前K個(gè)聚類空間是否滿足預(yù)設(shè)條件;若是,則調(diào) 用最終聚類空間獲得子模塊;若否,則調(diào)用返回子模塊;
[0274] 最終聚類空間獲得子模塊,用于獲得最終的K個(gè)聚類空間;
[0275] 返回子模塊,用于在調(diào)用按照維度標(biāo)識(shí)分別計(jì)算當(dāng)前K個(gè)聚類空間的新的中心點(diǎn) 的子模塊后,返回距離計(jì)算子模塊。
[0276] 在本申請的一種優(yōu)選實(shí)施例中,所述初始聚類空間形成子模塊包括:
[0277] 隨機(jī)分配子模塊,用于將所述用戶行為數(shù)據(jù)點(diǎn)隨機(jī)分配至K個(gè)簇中,依據(jù)用戶標(biāo) 識(shí)統(tǒng)計(jì)各個(gè)聚類空間中的用戶數(shù)量;
[0278] 第一子集合形成子模塊,用于在K個(gè)簇中,按維度標(biāo)識(shí)分別聚合對應(yīng)的用戶行為 數(shù)據(jù)點(diǎn),形成一個(gè)或多個(gè)分別歸屬于不同維度的用戶行為數(shù)據(jù)點(diǎn)子集合;
[0279] 初始中心點(diǎn)獲得子模塊,用于分別對所述子集合中的維度分值進(jìn)行求和,再分別 除以對應(yīng)的聚類空間中的用戶數(shù)量,獲得作為K個(gè)聚類空間初始的中心點(diǎn)的計(jì)算結(jié)果;
[0280] 初始形成子模塊,用于依據(jù)所述K個(gè)中心點(diǎn)及對應(yīng)的用戶行為數(shù)據(jù)點(diǎn),形成初始 的K個(gè)聚類空間。
[0281] 在本申請的一種優(yōu)選實(shí)施例中,所述維度距離計(jì)算子模塊包括:
[0282] 第二子集合形成子模塊,用于按照維度標(biāo)識(shí)分別聚合對應(yīng)的中心點(diǎn)和用戶行為數(shù) 據(jù)點(diǎn),形成一個(gè)或多個(gè)分別歸屬于不同維度的中心點(diǎn)及對應(yīng)的用戶行為數(shù)據(jù)點(diǎn)的子集合;
[0283] 子集合距離計(jì)算子模塊,用于分別計(jì)算所述子集合中各用戶行為數(shù)據(jù)點(diǎn)與K個(gè)中 心點(diǎn)的距離。
[0284] 在本申請的一種優(yōu)選實(shí)施例中,所述子集合中各用戶行為數(shù)據(jù)點(diǎn)與K個(gè)中心點(diǎn)的 距離通過以下公式獲得:
[0285] distance=l_2*score;
[0286] 其中,distance為用戶行為數(shù)據(jù)點(diǎn)與中心點(diǎn)在所述維度上的距離,score為中心 點(diǎn)在所述維度上的值。
[0287] 在本申請的一種優(yōu)選實(shí)施例中,所述聚類空間歸屬子模塊包括:
[0288] 第三子集合形成子模塊,用于按用戶標(biāo)識(shí)分別聚合對應(yīng)的用戶行為數(shù)據(jù)點(diǎn)與K個(gè) 中心點(diǎn)在所有維度上的距離,形成一個(gè)或多個(gè)分別歸屬于不同用戶的距離子集合;
[0289] 子集合歸屬子模塊,用于在所述子集合中,提取與用戶行為數(shù)據(jù)點(diǎn)距離最近的中 心點(diǎn)對應(yīng)的聚類空間作為用戶行為數(shù)據(jù)點(diǎn)歸屬的聚類空間。
[0290] 在本申請的一種優(yōu)選實(shí)施例中,所述按照維度標(biāo)識(shí)分別計(jì)算當(dāng)前K個(gè)聚類空間的 新的中心點(diǎn)的子模塊包括:
[0291] 第四子集合形成子模塊,用于在K個(gè)聚類空間中,按維度標(biāo)識(shí)分別聚合對應(yīng)的用 戶行為數(shù)據(jù)點(diǎn),形成一個(gè)或多個(gè)分別歸屬于不同維度的用戶行為數(shù)據(jù)點(diǎn)子集合;
[0292] 用戶數(shù)量統(tǒng)計(jì)子模塊,用于依據(jù)用戶標(biāo)識(shí)統(tǒng)計(jì)各個(gè)聚類空間中的用戶數(shù)量;
[0293] 新中心點(diǎn)計(jì)算子模塊,用于分別對所述子集合中的維度分值進(jìn)行求和,再分別除 以所述K個(gè)聚類空間中的用戶數(shù)量,獲得作為K個(gè)聚類空間新的中心點(diǎn)的計(jì)算結(jié)果。
[0294] 在本申請的一種優(yōu)選實(shí)施例中,所述預(yù)設(shè)條件包括聚類的迭代次數(shù)超過第一預(yù)設(shè) 閾值,所述預(yù)設(shè)條件判斷子模塊包括:
[0295] 迭代次數(shù)統(tǒng)計(jì)子模塊,用于統(tǒng)計(jì)當(dāng)前聚類的迭代次數(shù);
[0296] 第一預(yù)設(shè)閾值判斷子模塊,用于判斷所述迭代次數(shù)是否超過第一預(yù)設(shè)閾值。
[0297] 在本申請的一種優(yōu)選實(shí)施例中,所述預(yù)設(shè)條件還包括完成收斂的聚類空間的占比 超過第二預(yù)設(shè)閾值,所述預(yù)設(shè)條件判斷子模塊包括:
[0298] 聚類空間收斂判斷子模塊,用于分別判斷K個(gè)聚類空間是否完成收斂;
[0299] 占比統(tǒng)計(jì)子模塊,用于統(tǒng)計(jì)完成收斂的聚類空間的占比;
[0300] 第二預(yù)設(shè)閾值判斷子模塊,用于判斷所述占比是否超過第二預(yù)設(shè)閾值。
[0301] 在本申請的一種優(yōu)選實(shí)施例中,所述聚類空間收斂判斷子模塊包括:
[0302] 第五子集合形成子模塊,用于按維度標(biāo)識(shí)分別聚合K個(gè)聚類空間中的新的中心點(diǎn) 和前一中心點(diǎn),形成一個(gè)或多個(gè)分別歸屬于不同維度的中心點(diǎn)子集合;
[0303] 誤差計(jì)算子模塊,用于分別依據(jù)所述子集合中新中心點(diǎn)及對應(yīng)的前一中心點(diǎn)計(jì)算 誤差;
[0304] 迭代誤差計(jì)算子模塊,用于按照聚類空間標(biāo)識(shí)分別聚合對應(yīng)的誤差,形成K個(gè)分 別歸屬于對應(yīng)K個(gè)聚類空間的迭代誤差;若所述迭代誤差小于第三預(yù)設(shè)閾值,則調(diào)用完成 標(biāo)識(shí)子模塊;若否,則調(diào)用未完成標(biāo)識(shí)子模塊;
[0305] 完成標(biāo)識(shí)子模塊,用于標(biāo)識(shí)對應(yīng)的聚類空間完成收斂;
[0306] 未完成標(biāo)識(shí)子模塊,用于標(biāo)識(shí)對應(yīng)的聚類空間未完成收斂。
[0307] 在本申請的一種優(yōu)選實(shí)施例中,所述特征維度提取模塊包括:
[0308] 第六子集合形成子模塊,用于在多個(gè)聚類空間中,按主鍵分別聚合對應(yīng)的用戶行 為數(shù)據(jù)點(diǎn),形成一個(gè)或多個(gè)分別歸屬于不同主鍵的用戶行為數(shù)據(jù)點(diǎn)的子集合;其中,所述主 鍵為維度標(biāo)識(shí)或維度標(biāo)識(shí)的組合;
[0309] 頻繁集提取子模塊,用于分別提取所述子集合中公共維度占比超過第四預(yù)設(shè)閾 值的一個(gè)或多個(gè)維度的頻繁集;其中,所述公共維度為大部分本類中都有其中一個(gè)值的維 度;
[0310] 特征維度生成子模塊,用于找出所述子集合中最長的頻繁集對應(yīng)的維度,并依據(jù) 所述維度生成對應(yīng)的聚類空間的特征維度。
[0311] 對于基于用戶行為的特征提取的系統(tǒng)實(shí)施例而言,由于其與基于用戶行為的特征 提取的方法實(shí)施例基本相似,所以描述的比較簡單,相關(guān)之處參見基于用戶行為的特征提 取的方法實(shí)施例的部分說明即可。
[0312] 參見圖5,示出了本申請實(shí)施例提供的一種基于用戶行為的個(gè)性化推薦的系統(tǒng)實(shí) 施的結(jié)構(gòu)框圖,具體可以包括如下模塊:
[0313] 用戶行為信息獲取模塊401,用于獲取用戶的行為信息,所述用戶的行為信息包括 用戶標(biāo)識(shí);
[0314] 聚類空間確定模塊402,用于根據(jù)所述用戶標(biāo)識(shí)確定當(dāng)前用戶所屬的一個(gè)或多個(gè) 聚類空間;
[0315] 聚類空間特征維度提取模塊403,用于提取所述一個(gè)或多個(gè)聚類空間對應(yīng)的聚類 空間特征維度;
[0316] 推薦模塊404,用于采用所述聚類空間特征向當(dāng)前用戶進(jìn)行推薦;
[0317] 其中,所述聚類空間特征維度提取模塊包括:
[0318] 用戶行為數(shù)據(jù)點(diǎn)生成模塊,用于收集用戶的原始行為信息,依據(jù)所述用戶的原始 行為信息生成用戶行為數(shù)據(jù)點(diǎn);所述用戶行為數(shù)據(jù)點(diǎn)包括用戶標(biāo)識(shí)、維度標(biāo)識(shí)及對應(yīng)的維 度分值;
[0319] 聚類空間形成模塊,用于按照所述維度標(biāo)識(shí)采用維度分值對所述用戶行為數(shù)據(jù)點(diǎn) 進(jìn)行聚類,形成多個(gè)聚類空間;
[0320] 二值化模塊,用于分別針對所述多個(gè)聚類空間中用戶行為數(shù)據(jù)點(diǎn)的維度分值進(jìn)行 二值化;
[0321] 特征維度提取模塊,用于依據(jù)二值化的結(jié)果提取滿足預(yù)設(shè)要求的一個(gè)或多個(gè)維度 標(biāo)識(shí)作為聚類空間的特征維度。
[0322] 對于基于用戶行為的個(gè)性化推薦的系統(tǒng)實(shí)施例而言,由于其與基于用戶行為的個(gè) 性化推薦的方法實(shí)施例基本相似,所以描述的比較簡單,相關(guān)之處參見基于用戶行為的個(gè) 性化推薦的方法實(shí)施例的部分說明即可。
[0323] 本說明書中的各個(gè)實(shí)施例均采用遞進(jìn)的方式描述,每個(gè)實(shí)施例重點(diǎn)說明的都是與 其他實(shí)施例的不同之處,各個(gè)實(shí)施例之間相同相似的部分互相參見即可。
[0324] 本領(lǐng)域內(nèi)的技術(shù)人員應(yīng)明白,本申請實(shí)施例的實(shí)施例可提供為方法、系統(tǒng)、或計(jì)算 機(jī)程序產(chǎn)品。因此,本申請實(shí)施例可采用完全硬件實(shí)施例、完全軟件實(shí)施例、或結(jié)合軟件和 硬件方面的實(shí)施例的形式。而且,本申請實(shí)施例可采用在一個(gè)或多個(gè)其中包含有計(jì)算機(jī)可 用程序代碼的計(jì)算機(jī)可用存儲(chǔ)介質(zhì)(包括但不限于磁盤存儲(chǔ)器、CD-ROM、光學(xué)存儲(chǔ)器等)上 實(shí)施的計(jì)算機(jī)程序產(chǎn)品的形式。
[0325] 在一個(gè)典型的配置中,所述計(jì)算機(jī)設(shè)備包括一個(gè)或多個(gè)處理器(CPU)、輸入/輸出 接口、網(wǎng)絡(luò)接口和內(nèi)存。內(nèi)存可能包括計(jì)算機(jī)可讀介質(zhì)中的非永久性存儲(chǔ)器,隨機(jī)存取存儲(chǔ) 器(RAM)和/或非易失性內(nèi)存等形式,如只讀存儲(chǔ)器(ROM)或閃存(flashRAM)。內(nèi)存是 計(jì)算機(jī)可讀介質(zhì)的示例。計(jì)算機(jī)可讀介質(zhì)包括永久性和非永久性、可移動(dòng)和非可移動(dòng)媒體 可以由任何方法或技術(shù)來實(shí)現(xiàn)信息存儲(chǔ)。信息可以是計(jì)算機(jī)可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序的模 塊或其他數(shù)據(jù)。計(jì)算機(jī)的存儲(chǔ)介質(zhì)的例子包括,但不限于相變內(nèi)存(PRAM)、靜態(tài)隨機(jī)存取 存儲(chǔ)器(SRAM)、動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器(DRAM)、其他類型的隨機(jī)存取存儲(chǔ)器(RAM)、只讀存儲(chǔ) 器(ROM)、電可擦除可編程只讀存儲(chǔ)器(EEPROM)、快閃記憶體或其他內(nèi)存技術(shù)、只讀光盤只 讀存儲(chǔ)器(CD-ROM)、數(shù)字多功能光盤(DVD)或其他光學(xué)存儲(chǔ)、磁盒式磁帶,磁帶磁磁盤存儲(chǔ) 或其他磁性存儲(chǔ)設(shè)備或任何其他非傳輸介質(zhì),可用于存儲(chǔ)可以被計(jì)算設(shè)備訪問的信息。按 照本文中的界定,計(jì)算機(jī)可讀介質(zhì)不包括非持續(xù)性的電腦可讀媒體(transitorymedia), 如調(diào)制的數(shù)據(jù)信號(hào)和載波。
[0326] 本申請實(shí)施例是參照根據(jù)本申請實(shí)施例的方法、終端設(shè)備(系統(tǒng))、和計(jì)算機(jī)程序 產(chǎn)品的流程圖和/或方框圖來描述的。應(yīng)理解可由計(jì)算機(jī)程序指令實(shí)現(xiàn)流程圖和/或方框 圖中的每一流程和/或方框、以及流程圖和/或方框圖中的流程和/或方框的結(jié)合??商?供這些計(jì)算機(jī)程序指令到通用計(jì)算機(jī)、專用計(jì)算機(jī)、嵌入式處理機(jī)或其他可編程數(shù)據(jù)處理 終端設(shè)備的處理器以產(chǎn)生一個(gè)機(jī)器,使得通過計(jì)算機(jī)或其他可編程數(shù)據(jù)處理終端設(shè)備的處 理器執(zhí)行的指令產(chǎn)生用于實(shí)現(xiàn)在流程圖一個(gè)流程或多個(gè)流程和/或方框圖一個(gè)方框或多 個(gè)方框中指定的功能的裝置。
[0327] 這些計(jì)算機(jī)程序指令也可存儲(chǔ)在能引導(dǎo)計(jì)算機(jī)或其他可編程數(shù)據(jù)處理終端設(shè)備 以特定方式工作的計(jì)算機(jī)可讀存儲(chǔ)器中,使得存儲(chǔ)在該計(jì)算機(jī)可讀存儲(chǔ)器中的指令產(chǎn)生包 括指令裝置的制造品,該指令裝置實(shí)現(xiàn)在流程圖一個(gè)流程或多個(gè)流程和/或方框圖一個(gè)方 框或多個(gè)方框中指定的功能。
[0328] 這些計(jì)算機(jī)程序指令也可裝載到計(jì)算機(jī)或其他可編程數(shù)據(jù)處理終端設(shè)備上,使得 在計(jì)算機(jī)或其他可編程終端設(shè)備上執(zhí)行一系列操作步驟以產(chǎn)生計(jì)算機(jī)實(shí)現(xiàn)的處理,從而在 計(jì)算機(jī)或其他可編程終端設(shè)備上執(zhí)行的指令提供用于實(shí)現(xiàn)在流程圖一個(gè)流程或多個(gè)流程 和/或方框圖一個(gè)方框或多個(gè)方框中指定的功能的步驟。
[0329] 盡管已描述了本申請實(shí)施例的優(yōu)選實(shí)施例,但本領(lǐng)域內(nèi)的技術(shù)人員一旦得知了基 本創(chuàng)造性概念,則可對這些實(shí)施例做出另外的變更和修改。所以,所附權(quán)利要求意欲解釋為 包括優(yōu)選實(shí)施例以及落入本申請實(shí)施例范圍的所有變更和修改。
[0330] 最后,還需要說明的是,在本文中,諸如第一和第二等之類的關(guān)系術(shù)語僅僅用來將 一個(gè)實(shí)體或者操作與另一個(gè)實(shí)體或操作區(qū)分開來,而不一定要求或者暗示這些實(shí)體或操作 之間存在任何這種實(shí)際的關(guān)系或者順序。而且,術(shù)語"包括"、"包含"或者其任何其他變體 意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、物品或者終端設(shè)備不僅 包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、物 品或者終端設(shè)備所固有的要素。在沒有更多限制的情況下,由語句"包括一個(gè)......"限定 的要素,并不排除在包括所述要素的過程、方法、物品或者終端設(shè)備中還存在另外的相同要 素。
[0331] 以上對本申請實(shí)施例所提供的一種基于用戶行為的特征提取方法、一種基于用戶 行為的特征提取系統(tǒng)、一種基于用戶行為的個(gè)性化推薦方法以及一種基于用戶行為的個(gè)性 化推薦系統(tǒng),進(jìn)行了詳細(xì)介紹,本文中應(yīng)用了具體個(gè)例對本申請實(shí)施例的原理及實(shí)施方式 進(jìn)行了闡述,以上實(shí)施例的說明只是用于幫助理解本申請實(shí)施例的方法及其核心思想;同 時(shí),對于本領(lǐng)域的一般技術(shù)人員,依據(jù)本申請實(shí)施例的思想,在【具體實(shí)施方式】及應(yīng)用范圍上 均會(huì)有改變之處,綜上所述,本說明書內(nèi)容不應(yīng)理解為對本申請實(shí)施例的限制。
【權(quán)利要求】
1. 一種基于用戶行為的特征提取方法,其特征在于,包括: 收集用戶的原始行為信息,依據(jù)所述用戶的原始行為信息生成用戶行為數(shù)據(jù)點(diǎn);所述 用戶行為數(shù)據(jù)點(diǎn)包括用戶標(biāo)識(shí)、維度標(biāo)識(shí)及對應(yīng)的維度分值; 按照所述維度標(biāo)識(shí)采用維度分值對所述用戶行為數(shù)據(jù)點(diǎn)進(jìn)行聚類,形成多個(gè)聚類空 間; 分別針對所述多個(gè)聚類空間中用戶行為數(shù)據(jù)點(diǎn)的維度分值進(jìn)行二值化; 依據(jù)二值化的結(jié)果提取滿足預(yù)設(shè)要求的一個(gè)或多個(gè)維度標(biāo)識(shí)作為聚類空間的特征維 度。
2. 根據(jù)權(quán)利要求1所述的方法,其特征在于,所述按照維度標(biāo)識(shí)采用維度分值對所述 用戶行為數(shù)據(jù)點(diǎn)進(jìn)行聚類,形成多個(gè)聚類空間的步驟包括: 將所述用戶行為數(shù)據(jù)點(diǎn)分配至K個(gè)簇中,并按照維度標(biāo)識(shí)分別計(jì)算K個(gè)簇中對應(yīng)的初 始的K個(gè)中心點(diǎn),并依據(jù)所述K個(gè)中心點(diǎn)及對應(yīng)的用戶行為數(shù)據(jù)點(diǎn),形成初始的K個(gè)聚類空 間;其中,所述K為正整數(shù); 按照維度標(biāo)識(shí)分別計(jì)算各用戶行為數(shù)據(jù)點(diǎn)與K個(gè)中心點(diǎn)的距離; 依據(jù)所述用戶行為數(shù)據(jù)點(diǎn)與K個(gè)中心點(diǎn)的距離,重新確定所述用戶行為數(shù)據(jù)點(diǎn)歸屬的 聚類空間; 判斷當(dāng)前K個(gè)聚類空間是否滿足預(yù)設(shè)條件; 若是,則獲得最終的K個(gè)聚類空間; 若否,則在執(zhí)行按照維度標(biāo)識(shí)分別計(jì)算當(dāng)前K個(gè)聚類空間的新的中心點(diǎn)的子步驟后, 返回所述按照維度標(biāo)識(shí)分別計(jì)算各用戶行為數(shù)據(jù)點(diǎn)與K個(gè)中心點(diǎn)的距離的子步驟。
3. 根據(jù)權(quán)利要求2所述的方法,其特征在于,所述將用戶行為數(shù)據(jù)點(diǎn)分配至K個(gè)簇中, 并按照維度標(biāo)識(shí)分別計(jì)算K個(gè)簇中對應(yīng)的初始的K個(gè)中心點(diǎn),并依據(jù)所述用戶行為數(shù)據(jù)點(diǎn) 及對應(yīng)的K個(gè)中心點(diǎn),形成初始的K個(gè)聚類空間的步驟包括: 將所述用戶行為數(shù)據(jù)點(diǎn)隨機(jī)分配至K個(gè)簇中,依據(jù)用戶標(biāo)識(shí)統(tǒng)計(jì)各個(gè)聚類空間中的用 戶數(shù)量; 在K個(gè)簇中,按維度標(biāo)識(shí)分別聚合對應(yīng)的用戶行為數(shù)據(jù)點(diǎn),形成一個(gè)或多個(gè)分別歸屬 于不同維度的用戶行為數(shù)據(jù)點(diǎn)子集合; 分別對所述子集合中的維度分值進(jìn)行求和,再分別除以對應(yīng)的聚類空間中的用戶數(shù) 量,獲得作為K個(gè)聚類空間初始的中心點(diǎn)的計(jì)算結(jié)果; 依據(jù)所述K個(gè)中心點(diǎn)及對應(yīng)的用戶行為數(shù)據(jù)點(diǎn),形成初始的K個(gè)聚類空間。
4. 根據(jù)權(quán)利要求2所述的方法,其特征在于,所述按照維度標(biāo)識(shí)分別計(jì)算各用戶行為 數(shù)據(jù)點(diǎn)與K個(gè)中心點(diǎn)的距離的步驟包括: 按照維度標(biāo)識(shí)分別聚合對應(yīng)的中心點(diǎn)和用戶行為數(shù)據(jù)點(diǎn),形成一個(gè)或多個(gè)分別歸屬于 不同維度的中心點(diǎn)及對應(yīng)的用戶行為數(shù)據(jù)點(diǎn)的子集合; 分別計(jì)算所述子集合中各用戶行為數(shù)據(jù)點(diǎn)與K個(gè)中心點(diǎn)的距離。
5. 根據(jù)權(quán)利要求4所述的方法,其特征在于,所述子集合中各用戶行為數(shù)據(jù)點(diǎn)與K個(gè)中 心點(diǎn)的距離通過以下公式獲得: distance=l_2氺score ; 其中,distance為用戶行為數(shù)據(jù)點(diǎn)與中心點(diǎn)在所述維度上的距離,score為中心點(diǎn)在 所述維度上的值。
6. 根據(jù)權(quán)利要求2所述的方法,其特征在于,所述依據(jù)用戶行為數(shù)據(jù)點(diǎn)與K個(gè)中心點(diǎn)的 距離,重新確定所述用戶行為數(shù)據(jù)點(diǎn)歸屬的聚類空間的步驟包括: 按用戶標(biāo)識(shí)分別聚合對應(yīng)的用戶行為數(shù)據(jù)點(diǎn)與K個(gè)中心點(diǎn)在所有維度上的距離,形成 一個(gè)或多個(gè)分別歸屬于不同用戶的距離子集合; 在所述子集合中,提取與用戶行為數(shù)據(jù)點(diǎn)距離最近的中心點(diǎn)對應(yīng)的聚類空間作為用戶 行為數(shù)據(jù)點(diǎn)歸屬的聚類空間。
7. 根據(jù)權(quán)利要求2所述的方法,其特征在于,所述按照維度標(biāo)識(shí)分別計(jì)算當(dāng)前K個(gè)聚類 空間的新的中心點(diǎn)的步驟包括: 在K個(gè)聚類空間中,按維度標(biāo)識(shí)分別聚合對應(yīng)的用戶行為數(shù)據(jù)點(diǎn),形成一個(gè)或多個(gè)分 別歸屬于不同維度的用戶行為數(shù)據(jù)點(diǎn)子集合; 依據(jù)用戶標(biāo)識(shí)統(tǒng)計(jì)各個(gè)聚類空間中的用戶數(shù)量; 分別對所述子集合中的維度分值進(jìn)行求和,再分別除以所述K個(gè)聚類空間中的用戶數(shù) 量,獲得作為K個(gè)聚類空間新的中心點(diǎn)的計(jì)算結(jié)果。
8. 根據(jù)權(quán)利要求2所述的方法,其特征在于,所述預(yù)設(shè)條件包括聚類的迭代次數(shù)超過 第一預(yù)設(shè)閾值,所述判斷當(dāng)前K個(gè)聚類空間是否滿足預(yù)設(shè)條件的步驟包括: 統(tǒng)計(jì)當(dāng)前聚類的迭代次數(shù); 判斷所述迭代次數(shù)是否超過第一預(yù)設(shè)閾值。
9. 根據(jù)權(quán)利要求2所述的方法,其特征在于,所述預(yù)設(shè)條件還包括完成收斂的聚類空 間的占比超過第二預(yù)設(shè)閾值,所述判斷當(dāng)前K個(gè)聚類空間是否滿足預(yù)設(shè)條件的步驟還包 括: 分別判斷K個(gè)聚類空間是否完成收斂; 統(tǒng)計(jì)完成收斂的聚類空間的占比; 判斷所述占比是否超過第二預(yù)設(shè)閾值。
10. 根據(jù)權(quán)利要求9所述的方法,其特征在于,所述分別判斷K個(gè)聚類空間是否完成收 斂的步驟包括: 按維度標(biāo)識(shí)分別聚合K個(gè)聚類空間中的新的中心點(diǎn)和前一中心點(diǎn),形成一個(gè)或多個(gè)分 別歸屬于不同維度的中心點(diǎn)子集合; 分別依據(jù)所述子集合中新中心點(diǎn)及對應(yīng)的前一中心點(diǎn)計(jì)算誤差; 按照聚類空間標(biāo)識(shí)分別聚合對應(yīng)的誤差,形成K個(gè)分別歸屬于對應(yīng)K個(gè)聚類空間的迭 代誤差; 若所述迭代誤差小于第三預(yù)設(shè)閾值,則標(biāo)識(shí)對應(yīng)的聚類空間完成收斂;若否,則標(biāo)識(shí)對 應(yīng)的聚類空間未完成收斂。
11. 根據(jù)權(quán)利要求1所述的方法,其特征在于,所述依據(jù)二值化的結(jié)果提取滿足預(yù)設(shè)要 求的一個(gè)或多個(gè)維度標(biāo)識(shí)作為聚類空間的特征維度的步驟包括: 在多個(gè)聚類空間中,按主鍵分別聚合對應(yīng)的用戶行為數(shù)據(jù)點(diǎn),形成一個(gè)或多個(gè)分別歸 屬于不同主鍵的用戶行為數(shù)據(jù)點(diǎn)的子集合;其中,所述主鍵為維度標(biāo)識(shí)或維度標(biāo)識(shí)的組 合; 分別提取所述子集合中公共維度占比超過第四預(yù)設(shè)閾值的一個(gè)或多個(gè)維度的頻繁集; 其中,所述公共維度為二值化后的維度分值為指定值的用戶行為數(shù)據(jù)點(diǎn)的占比超過第五預(yù) 設(shè)閾值的維度; 找出所述子集合中最長的頻繁集對應(yīng)的維度,并依據(jù)所述維度生成對應(yīng)的聚類空間的 特征維度。
12. -種基于用戶行為的個(gè)性化推薦的方法,其特征在于,包括: 獲取用戶的行為信息,所述用戶的行為信息包括用戶標(biāo)識(shí); 根據(jù)所述用戶標(biāo)識(shí)確定當(dāng)前用戶所屬的一個(gè)或多個(gè)聚類空間; 提取所述一個(gè)或多個(gè)聚類空間對應(yīng)的聚類空間特征維度; 采用所述聚類空間特征向當(dāng)前用戶進(jìn)行推薦; 其中,所述聚類空間特征維度通過如下方式生成: 收集用戶的原始行為信息,依據(jù)所述用戶的原始行為信息生成用戶行為數(shù)據(jù)點(diǎn);所述 用戶行為數(shù)據(jù)點(diǎn)包括用戶標(biāo)識(shí)、維度標(biāo)識(shí)及對應(yīng)的維度分值; 按照所述維度標(biāo)識(shí)采用維度分值對所述用戶行為數(shù)據(jù)點(diǎn)進(jìn)行聚類,形成多個(gè)聚類空 間; 分別針對所述多個(gè)聚類空間中用戶行為數(shù)據(jù)點(diǎn)的維度分值進(jìn)行二值化; 依據(jù)二值化的結(jié)果提取滿足預(yù)設(shè)要求的一個(gè)或多個(gè)維度標(biāo)識(shí)作為聚類空間的特征維 度。
13. -種基于用戶行為的特征提取系統(tǒng),其特征在于,包括: 用戶行為數(shù)據(jù)點(diǎn)生成模塊,用于收集用戶的原始行為信息,依據(jù)所述用戶的原始行為 信息生成用戶行為數(shù)據(jù)點(diǎn);所述用戶行為數(shù)據(jù)點(diǎn)包括用戶標(biāo)識(shí)、維度標(biāo)識(shí)及對應(yīng)的維度分 值; 聚類空間形成模塊,用于按照所述維度標(biāo)識(shí)采用維度分值對所述用戶行為數(shù)據(jù)點(diǎn)進(jìn)行 聚類,形成多個(gè)聚類空間; 二值化模塊,用于分別針對所述多個(gè)聚類空間中用戶行為數(shù)據(jù)點(diǎn)的維度分值進(jìn)行二值 化; 特征維度提取模塊,用于依據(jù)二值化的結(jié)果提取滿足預(yù)設(shè)要求的一個(gè)或多個(gè)維度標(biāo)識(shí) 作為聚類空間的特征維度。
14. 根據(jù)權(quán)利要求13所述的系統(tǒng),其特征在于,所述聚類空間形成模塊包括: 初始聚類空間形成子模塊,用于將所述用戶行為數(shù)據(jù)點(diǎn)分配至K個(gè)簇中,并按照維度 標(biāo)識(shí)分別計(jì)算K個(gè)簇中對應(yīng)的初始的K個(gè)中心點(diǎn),并依據(jù)所述K個(gè)中心點(diǎn)及對應(yīng)的用戶行 為數(shù)據(jù)點(diǎn),形成初始的K個(gè)聚類空間;其中,所述K為正整數(shù); 維度距離計(jì)算子模塊,用于按照維度標(biāo)識(shí)分別計(jì)算各用戶行為數(shù)據(jù)點(diǎn)與K個(gè)中心點(diǎn)的 距離; 聚類空間重新歸屬子模塊,用于依據(jù)所述用戶行為數(shù)據(jù)點(diǎn)與K個(gè)中心點(diǎn)的距離,重新 確定所述用戶行為數(shù)據(jù)點(diǎn)歸屬的聚類空間; 預(yù)設(shè)條件判斷子模塊,用于判斷當(dāng)前K個(gè)聚類空間是否滿足預(yù)設(shè)條件;若是,則調(diào)用最 終聚類空間獲得子模塊;若否,則調(diào)用返回子模塊; 最終聚類空間獲得子模塊,用于獲得最終的K個(gè)聚類空間; 返回子模塊,用于在調(diào)用按照維度標(biāo)識(shí)分別計(jì)算當(dāng)前K個(gè)聚類空間的新的中心點(diǎn)的子 模塊后,返回距離計(jì)算子模塊。
15. 根據(jù)權(quán)利要求14所述的系統(tǒng),其特征在于,所述初始聚類空間形成子模塊包括: 隨機(jī)分配子模塊,用于將所述用戶行為數(shù)據(jù)點(diǎn)隨機(jī)分配至K個(gè)簇中,依據(jù)用戶標(biāo)識(shí)統(tǒng) 計(jì)各個(gè)聚類空間中的用戶數(shù)量; 第一子集合形成子模塊,用于在K個(gè)簇中,按維度標(biāo)識(shí)分別聚合對應(yīng)的用戶行為數(shù)據(jù) 點(diǎn),形成一個(gè)或多個(gè)分別歸屬于不同維度的用戶行為數(shù)據(jù)點(diǎn)子集合; 初始中心點(diǎn)獲得子模塊,用于分別對所述子集合中的維度分值進(jìn)行求和,再分別除以 對應(yīng)的聚類空間中的用戶數(shù)量,獲得作為K個(gè)聚類空間初始的中心點(diǎn)的計(jì)算結(jié)果; 初始形成子模塊,用于依據(jù)所述K個(gè)中心點(diǎn)及對應(yīng)的用戶行為數(shù)據(jù)點(diǎn),形成初始的K個(gè) 聚類空間。
16. 根據(jù)權(quán)利要求14所述的系統(tǒng),其特征在于,所述維度距離計(jì)算子模塊包括: 第二子集合形成子模塊,用于按照維度標(biāo)識(shí)分別聚合對應(yīng)的中心點(diǎn)和用戶行為數(shù)據(jù) 點(diǎn),形成一個(gè)或多個(gè)分別歸屬于不同維度的中心點(diǎn)及對應(yīng)的用戶行為數(shù)據(jù)點(diǎn)的子集合; 子集合距離計(jì)算子模塊,用于分別計(jì)算所述子集合中各用戶行為數(shù)據(jù)點(diǎn)與K個(gè)中心點(diǎn) 的距離。
17. 根據(jù)權(quán)利要求16所述的系統(tǒng),其特征在于,所述子集合中各用戶行為數(shù)據(jù)點(diǎn)與K個(gè) 中心點(diǎn)的距離通過以下公式獲得: distance=l_2氺score ; 其中,distance為用戶行為數(shù)據(jù)點(diǎn)與中心點(diǎn)在所述維度上的距離,score為中心點(diǎn)在 所述維度上的值。
18. 根據(jù)權(quán)利要求14所述的系統(tǒng),其特征在于,所述聚類空間歸屬子模塊包括: 第三子集合形成子模塊,用于按用戶標(biāo)識(shí)分別聚合對應(yīng)的用戶行為數(shù)據(jù)點(diǎn)與K個(gè)中心 點(diǎn)在所有維度上的距離,形成一個(gè)或多個(gè)分別歸屬于不同用戶的距離子集合; 子集合歸屬子模塊,用于在所述子集合中,提取與用戶行為數(shù)據(jù)點(diǎn)距離最近的中心點(diǎn) 對應(yīng)的聚類空間作為用戶行為數(shù)據(jù)點(diǎn)歸屬的聚類空間。
19. 根據(jù)權(quán)利要求14所述的系統(tǒng),其特征在于,所述按照維度標(biāo)識(shí)分別計(jì)算當(dāng)前K個(gè)聚 類空間的新的中心點(diǎn)的子模塊包括: 第四子集合形成子模塊,用于在K個(gè)聚類空間中,按維度標(biāo)識(shí)分別聚合對應(yīng)的用戶行 為數(shù)據(jù)點(diǎn),形成一個(gè)或多個(gè)分別歸屬于不同維度的用戶行為數(shù)據(jù)點(diǎn)子集合; 用戶數(shù)量統(tǒng)計(jì)子模塊,用于依據(jù)用戶標(biāo)識(shí)統(tǒng)計(jì)各個(gè)聚類空間中的用戶數(shù)量; 新中心點(diǎn)計(jì)算子模塊,用于分別對所述子集合中的維度分值進(jìn)行求和,再分別除以所 述K個(gè)聚類空間中的用戶數(shù)量,獲得作為K個(gè)聚類空間新的中心點(diǎn)的計(jì)算結(jié)果。
20. 根據(jù)權(quán)利要求14所述的系統(tǒng),其特征在于,所述預(yù)設(shè)條件包括聚類的迭代次數(shù)超 過第一預(yù)設(shè)閾值,所述預(yù)設(shè)條件判斷子模塊包括: 迭代次數(shù)統(tǒng)計(jì)子模塊,用于統(tǒng)計(jì)當(dāng)前聚類的迭代次數(shù); 第一預(yù)設(shè)閾值判斷子模塊,用于判斷所述迭代次數(shù)是否超過第一預(yù)設(shè)閾值。
21. 根據(jù)權(quán)利要求14所述的系統(tǒng),其特征在于,所述預(yù)設(shè)條件還包括完成收斂的聚類 空間的占比超過第二預(yù)設(shè)閾值,所述預(yù)設(shè)條件判斷子模塊包括: 聚類空間收斂判斷子模塊,用于分別判斷K個(gè)聚類空間是否完成收斂; 占比統(tǒng)計(jì)子模塊,用于統(tǒng)計(jì)完成收斂的聚類空間的占比; 第二預(yù)設(shè)閾值判斷子模塊,用于判斷所述占比是否超過第二預(yù)設(shè)閾值。
22. 根據(jù)權(quán)利要求21所述的系統(tǒng),其特征在于,所述聚類空間收斂判斷子模塊包括: 第五子集合形成子模塊,用于按維度標(biāo)識(shí)分別聚合K個(gè)聚類空間中的新的中心點(diǎn)和前 一中心點(diǎn),形成一個(gè)或多個(gè)分別歸屬于不同維度的中心點(diǎn)子集合; 誤差計(jì)算子模塊,用于分別依據(jù)所述子集合中新中心點(diǎn)及對應(yīng)的前一中心點(diǎn)計(jì)算誤 差; 迭代誤差計(jì)算子模塊,用于按照聚類空間標(biāo)識(shí)分別聚合對應(yīng)的誤差,形成K個(gè)分別歸 屬于對應(yīng)K個(gè)聚類空間的迭代誤差;若所述迭代誤差小于第三預(yù)設(shè)閾值,則調(diào)用完成標(biāo)識(shí) 子模塊;若否,則調(diào)用未完成標(biāo)識(shí)子模塊; 完成標(biāo)識(shí)子模塊,用于標(biāo)識(shí)對應(yīng)的聚類空間完成收斂; 未完成標(biāo)識(shí)子模塊,用于標(biāo)識(shí)對應(yīng)的聚類空間未完成收斂。
23. 根據(jù)權(quán)利要求13所述的系統(tǒng),其特征在于,所述特征維度提取模塊包括: 第六子集合形成子模塊,用于在多個(gè)聚類空間中,按主鍵分別聚合對應(yīng)的用戶行為數(shù) 據(jù)點(diǎn),形成一個(gè)或多個(gè)分別歸屬于不同主鍵的用戶行為數(shù)據(jù)點(diǎn)的子集合;其中,所述主鍵為 維度標(biāo)識(shí)或維度標(biāo)識(shí)的組合; 頻繁集提取子模塊,用于分別提取所述子集合中公共維度占比超過第四預(yù)設(shè)閾值的一 個(gè)或多個(gè)維度的頻繁集;其中,所述公共維度為大部分本類中都有其中一個(gè)值的維度; 特征維度生成子模塊,用于找出所述子集合中最長的頻繁集對應(yīng)的維度,并依據(jù)所述 維度生成對應(yīng)的聚類空間的特征維度。
24. -種基于用戶行為的個(gè)性化推薦的系統(tǒng),其特征在于,包括: 用戶行為信息獲取模塊,用于獲取用戶的行為信息,所述用戶的行為信息包括用戶標(biāo) 識(shí); 聚類空間確定模塊,用于根據(jù)所述用戶標(biāo)識(shí)確定當(dāng)前用戶所屬的一個(gè)或多個(gè)聚類空 間; 聚類空間特征維度提取模塊,用于提取所述一個(gè)或多個(gè)聚類空間對應(yīng)的聚類空間特征 維度; 推薦模塊,用于采用所述聚類空間特征向當(dāng)前用戶進(jìn)行推薦; 其中,所述聚類空間特征維度提取模塊包括: 用戶行為數(shù)據(jù)點(diǎn)生成模塊,用于收集用戶的原始行為信息,依據(jù)所述用戶的原始行為 信息生成用戶行為數(shù)據(jù)點(diǎn);所述用戶行為數(shù)據(jù)點(diǎn)包括用戶標(biāo)識(shí)、維度標(biāo)識(shí)及對應(yīng)的維度分 值; 聚類空間形成模塊,用于按照所述維度標(biāo)識(shí)采用維度分值對所述用戶行為數(shù)據(jù)點(diǎn)進(jìn)行 聚類,形成多個(gè)聚類空間; 二值化模塊,用于分別針對所述多個(gè)聚類空間中用戶行為數(shù)據(jù)點(diǎn)的維度分值進(jìn)行二值 化; 特征維度提取模塊,用于依據(jù)二值化的結(jié)果提取滿足預(yù)設(shè)要求的一個(gè)或多個(gè)維度標(biāo)識(shí) 作為聚類空間的特征維度。
【文檔編號(hào)】G06F17/30GK104239324SQ201310239508
【公開日】2014年12月24日 申請日期:2013年6月17日 優(yōu)先權(quán)日:2013年6月17日
【發(fā)明者】張旭, 楊志雄, 李波, 蘇煜 申請人:阿里巴巴集團(tuán)控股有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會(huì)獲得點(diǎn)贊!
1