專利名稱:用于處理高維數據的系統和方法
技術領域:
本發明涉及處理高維數據。
背景技術:
在很多應用中,數據都是高維的。如何為各種應用(如個性化推薦和概括)同時分析全部的維度(dimension)成為挑戰性的問題。
成對關系(pairwise relationship)存在于很多應用中,且動態數據分析已經被不同的研究者廣泛研究。例如,眾所周知的潛在語義索引(LSI)專注于由詞語-文檔(term-document)對組成的動態數據。但是,在很多應用中,數據是多態的(polyadic),也就是說,它們有更高的維度。網絡數據就是這樣的例子在研究論文集(如CiteSeer)中,作家,在關于特定主題的文章中,引用了參考文獻。在這個例子中,數據記錄是作者-主題-參考文獻三元組(triple),也就是說,該數據記錄維度為三。
協作標記數據(Collaboratively tagging data)是另一例子在協作標記系統(如Del.icio.us)中,用戶將一組標簽分配給給定的url(其對應于Web頁面)。其中數據記錄是用戶-標簽-url三元組。將數據的所有方面組合到數據分析中是挑戰性的議題,并且已經提出各種方法以便將信息融合(fuse)到單一框架中。大多數現有的研究工作只是分析在不同維度之間的成對關系,以及然后隨后組合分析結果。這樣的方法失去了在數據的各種維度之間的高階(higher order)(高于成對)依賴性(dependency)。
一些研究使用了一組概念(concept)以用于同時捕獲所有的成對關系。因為這些方法將相同的概念用于表示在各種維度之間的所有成對關系,相比于那些獨立地考慮成對關系的方法,它們提供了更好的性能。該第二個方法通常有更好的性能,因為它使用了更準確的模型來描述實際數據。但是,這種方法通常使用線性組合來融合所有的成對關系。這種線性組合有些特別(ad hoc)——難以在系數之后找到很好的直觀性(intuition)以及原理性的方法來設置系數值。
發明內容
一方面,公開了這樣的系統和方法通過同時捕獲用于所有數據維度的因子以及它們在因子模型中的相關性(correlation)來對高維數據進行因子分解(factorize);以及生成相應的損失函數來評估所述因子模型。
另一方面,公開了這樣的系統和方法通過同時捕獲用于所有數據維度的因子以及它們在因子模型中的相關性來對高維數據進行因子分解,其中因子模型提供了所述數據的簡要描述;以及生成相應的損失函數來評估所述因子模型。
在優選的實施例中,所述因子模型同時確定因子及其相關性,以提供更簡要的數據描述和提供關于數據的自知力。最小化相關聯的損失可以得出相應意味著因子分解(factorization)結果的模型參數。
優選實施例的優點可以包括下面中的一個或多個。該系統能夠比那些只考慮成對關系的系統產生更高質量的因子。這些因子及其相關性可用于個性化推薦、聚類(clustering)、概括(summarization)等等。因子模型潛在的應用包括提取和監測人和主題的相干組(coherent group),排列(rank)和推薦重要的人和文檔,或者對數據進行概括和可視化。
尤其在結合附圖一起閱讀時從其示范性實施例的以下詳細描述中將容易地理解本系統,其中貫穿幾個視圖相同部件具有相同標號。
圖1顯示了示例性過程,用以將高維數據因子分解為每個維度中的因子以及在不同維度中的因子之間的相關性。
圖2顯示了對數據張量(data tensor)進行因子分解的示例性過程。
具體實施例方式 圖1顯示了示例性過程,用以將高維數據因子分解為每個維度中的因子以及在不同維度中的因子之間的相關性。該過程通過同時對所有的維度進行因子分解來求解問題。結果,不同維度之間的高階相關性被保存。另外,不同維度中的因子之間的相關性被明確地捕獲。該方法使用生成模型(generative model)來生成數據,并將生成模型轉換成非負張量因子分解的問題,其目的是最小化觀察數據和生成模型所預測的數據之間的特定損失。這樣的損失包括Kullback-Leibler散度(divergence)和Frobenius張量范數(norm)。我們為這兩種損失度量(metric)提供解(solution)。該最小化過程產生表示數據的不同維度中的因子的一組矩陣。該最小化過程還產生張量,該張量表示數據的不同維度中的因子之間的相關性。
現在轉至圖1,該方法的輸入是高維數據(101)。該系統隨后從該輸入數據構造數據張量(102)。數據張量用A表示,A的每一個模(mode)都對應于輸入數據的一個維度。維度的索引(index)可以是無序的,如,該維度對應于文檔中的詞語;也可以是有序的,如,在該維度對應于文檔的生成時間時。A的每一個條目(entry)表示具有維度中的固定索引集的輸入數據中的特定數據的出現次數(the number of occurrences of a certain datum in the input data with a fixedset of indices in the dimensions)。系統對數據張量應用因子分解算法(103)。該過程在圖2中被詳細描述。
接下來,數據的不同維度中的因子以及因子之間的相關性(104)。這些是通過使用因子分解算法(103)而獲得的輸出。因子可以被解釋為對于給定維度而言用于給定概念的概率分布(probabilistic distribution)。相關性捕獲所有維度中的不同概念之間的關系。該系統可以應用利用了因子及其相關性的推薦算法(105)。可以生成推薦結果(108)。利用了因子及其相關性的聚類算法也可以被應用(106),并生成聚類結果(109)。系統還可以執行利用了因子及其相關性的概括算法(107)并生成概括結果(110)。
現在參考圖2,顯示了對數據張量進行因子分解的過程。該過程的輸入是102中的數據張量A,以及用戶想要的因子數,用戶選擇的損失函數(lossfunction)和光滑函數(smoothing function)(201)。該過程公式化(formulate)模型C×1X1×2X2…×NXN,其中X1,…,XN是在第一、第二、...和第N維度中的因子,C是捕獲因子X1,…,XN之間相關性的核心張量(202)。X1,…,XN的條目是非負的。X1,…,XN中的每一列的和(sum)是1。Xi的大小取決于A的第i維度的大小以及在第i維度中用戶想要的因子數。條目C也是非負的。C的大小取決于在所有維度中用戶想要的因子數。A和C×1X1×2X2…×NXN之間的損失可以是Kullback-Leibler散度,或者Frobenius張量范數。接下來,該過程更新C以減少損失(203)。關于更新公式的更多細節將在下面討論。然后該過程更新X1,…,XN以減少損失,如下面所詳細討論的(204)。接下來,在205中,過程重復203和204直到損失收斂(converge)。該過程返回核心張量C和因子X1,…,XN作為該過程的輸出(206)。
在一個實現中,用于分析多態數據的簡單因子模型被用于在所有維度中同時捕獲因子。另外,不同維度中的因子之間的關系也被捕獲。該模型是Hofmann提出的因子模型到更高維情況的延伸。此外,當KL-散度被使用時,所提出的因子模型相當于張量因子分解中的Tucker模型的非負版本。EM式迭代算法(EM-style iterative algorithm)可以被用于求解非負張量因子分解(NTF)問題。基于因子模型的概率解釋,差別(discriminative)版本和包含對結果稀疏性(sparseness)的正則化(regularization)的版本將會被描述。基于因子模型的NTF解釋,利用Frobenius范數而不是KL-散度的版本將被用于測量誤差。算法的有效實現利用了數據的稀疏性并且具有在數據集中的數據記錄的數目上可證明的線性時間復雜度(每次迭代)。
因子模型的潛在應用包括 ●提取和監測人和主題的相干(coherent)組 ●排列和推薦重要的人和文檔 ●對數據進行概括和可視化 因子模型已經被應用于個性化推薦的問題。該模型被應用于協作標記數據集(Delicious)和論文引用數據集(CiteSeer)以證明其有效性。為便于討論,使用三維數據,但是所提出模型適用于任意維度的數據。
在CiteSeer數據中,每一個數據記錄是作者-主題-參考文獻三元組。總之,在數據集中有I個作者、J個主題和K個參考文獻。存在L個潛在的作者組(因子)。也就是說,作者以不同的概率屬于這L個組。隨機變量C′表示L個潛在的作者組。類似地,存在M個潛在的主題因子和N個潛在的參考文獻因子,隨機變量C″和C″′被用于表示它們。值得注意的是,C′、C″和C″′的基數(cardinality)不必是相同的。在隨后的討論中,i,j和k分別表示作者、主題和參考文獻的索引。并且l,m,n分別表示作者、主題和參考文獻的因子的索引。采用所定義的這些因子,每一個數據記錄(即每一個作者-主題-參考文獻三元組aijk)通過下面的方法生成用于作者的因子c′l,用于主題的因子c″m,用于參考文獻的因子c″′n,具有概率P(c′l,c″m,c″′n);作者i具有概率P(i|c′l),主題j具有概率P(j|c″m),而參考文獻k具有概率P(k|c″′n)。為進一步簡化記法,P(c′l,c″m,c″′n)寫為P(clmn),而P(i|c′l)、P(j|c″m)和P(k|c″′n)分別寫為P(i|l)、P(j|m)和P(k|n)。
然后根據生成模型,觀察數據記錄aijk的似然(likelihood)是 為獲得最終的模型,為參數P(clmn)、P(i|l)、P(j|m)和P(k|n)確定最大似然估計。P(i|l)可以被寫為IxL矩陣X,P(j|m)寫為JxM的矩陣Y,并且P(k|n)寫為KxN的矩陣Z。同樣如果P(clmn)寫為Clmn,則基于多項式模型,MLE問題變為 先前部分中的概率生成模型隨后與Tucker張量因子分解的非負版本相關聯。為此,以稍微不同的方式來解釋該生成模型。假定以L維向量來對每一個作者i進行編碼,其中R+表示所有非負實數,通過對每一個主題j編碼并且通過對每一個參考文獻k進行編碼。另外,通過屬于函數族F的函數
對aijk進行近似(approximate)。確定最佳編碼(按照
和f),其最小化以下誤差 下一步,系統確定從中選擇哪個函數族F以及距離函數是什么。對于第一個問題,線性函數族(即,其中<·,·>表示向量內積)被使用。對于第二個問題,使用aijk和
之間的KL-散度,其中 以張量術語(terminology)重寫上面的公式。數據被置入數據張量中,其中(A)ijk=aijk。向量
串聯(concatenate)為矩陣其中X中的每一行是
的轉置。類似地,
和
串聯成矩陣和此外,
被折疊(fold))進張量其中C為核心張量。在串聯和折疊之后,最佳編碼的問題成為根據X、Y、Z和C尋找最佳近似(best approximation),其最小化以下誤差 errorKL=KL(A||C×1X×2Y×3Z),(3) 其中×1、×2和×3分別是張量C與矩陣X、Y、Z的模-1、模-2和模-3乘積(×1,×2,and×3 are the mode-1,mode-2,and mode-3 multiplication ofthe tensor Cby the matrices X,Y,and Z,respectively)。請參考[?]了解詳情。
因為對于任意的正交矩陣QX、QY和QZ有為了使問題適定(well posed),增加了X、Y、Z中的每一列必須求和為1的附加限制。在這些限制下,等式(3)中的最小化誤差的問題相當于等式(1)所描述的MLE問題。這可以通過將等式(1)中的MLE問題重寫為最大化對數似然(log likelihood)的問題而看出, 之后,展開(expand)等式(3)中的KL-散度。為避免記法混亂,D=C×1X×2Y×3Z用以得出 可以從上面的等式中獲得幾個觀測值(observation)。最小化errorKL的解D的必要條件是∑i,j,kaijk=∑i,j,kdijk。這也意味著,因為對X、Y和Z的限制,對于最佳解而言必要條件是∑i,j,kaijk=∑l,m,nclmn。第二,A可以被縮放(scale)使得∑i,j,kaijk=1,而不改變優化問題。類似地,因為等式(4)可以乘以常數而不影響MLE問題,不失一般性,∑i,j,kaijk=1。結果,最小化errorKL相當于最大化∑i,j,kaijk log dijk。
由于MLE問題和NTF問題之間的等價性,可以求解(solve)NTF問題,以便獲得對MLE問題的解。一種迭代更新算法可用于求解NTF問題。該問題定義如下。對于給定張量C×1X×2Y×3Z可用來對A進行近似,其中并且并且X、Y和Z中的列都求和為1,使得在等式(3)中定義的誤差被最小化。
對于給定的另一張量B被定義為 Bijk=Aijk/(C×1X×2Y×3Z)ijk,(5) 隨后,確保下面的更新規則以收斂到在等式(3)中定義的目標函數的最佳解(optimal solution)。
Clmn←Clmn(B×1XT×2YT×3ZT)lmn,(6) 并且將X、Y和Z中的s.t.列的和歸一化為1(normalize s.t.columns of X,Y,Z sum to ones)。
許多應用需要處理特定的條件概率。例如,假定作者和主題都是已知的,推薦參考文獻的任務需要處理對于待推薦的參考文獻的條件概率。可以為待捕獲的條件概率建立差別模型。也就是說,MLE問題由以下給出 其中,
是經驗邊緣分布(empirical marginal distribution)而且與待估計的參數不相關。可以看出,這樣的差別框架可以通過以某些小的修改使用原算法來求解 Bijk=Aijk(C×1X×2Y×3Z)ijk, (11) Clmn←Clmn(B×1XT×2YT×3ZT)lmn,(12) 并且將X中的s.t.行的和歸一化為1,以及將Y、Z中的列的和歸一化為1。
在另一實施例中,系統考慮用于基本概率模型的最大后驗(maximum aposteriori,MAP)估計。例如,Dirichlet分布可以用作參數的先驗分布(priordistribution)。
對于所有事件而言X中的每一行的先驗是具有超參數(hyper-parameter)αX>0的Dirichlet分布。先驗概率的對數是 其中cX是與X不相關的值。
類似地,Y、Z和C的先驗被假定為分別具有超參數αY、αZ和αC的Dirichlet分布。先驗概率的對數是 MAP估計的對數損失是MLE加上先驗概率的對數。因此, errorMAP=errorKL-ln P(X)-ln P(Z)-ln P(C) 確保下面的更新規則以收斂到目標函數的最佳解。
并且將X、Y和Z中的s.t.列的和歸一化為1。
當α大于1時,相應的變量趨向于是非零的,而當α小于1時,相應的變量趨向于是稀疏的(sparse)。
在某些情況下,特定的先驗知識是可以獲得的,并且因子可以是先驗知識的凸組合(對該先驗知識進行編碼的向量被稱為基向量)。例如,如果維度表示時間線并且時間因子(temporal factor)需要是光滑的,則結合(incorporate)這種先驗知識的一種方式是將時間因子限制于一些光滑樣條(spline)的凸組合。假定和作為基向量,其中這些基向量中的每一列求和為1。然后該問題變為最小化 errorKL=KL(A||C×1(XBX)×2(YBY)×3(ZBZ)), (16) 其中并且可以看出,下面的更新算法求解了這個問題。
Bijk←Aijk/(C×1(XBX)×2(YBY)×3(ZBZ))ijk, (17) Clmn←Glmn(B×1(XBX)T×2(YBY)T×3(ZBZ)T)lmn,(18) 并且將X、Y和Z中的s.t.列的和歸一化為1。
根據對模型的NTF解釋,代替KL-散度,矩陣(張量)范數可用來測量誤差。例如,如果使用Frobenius范數,則問題定義為如下。對于給定的張量C×1X×2Y×3Z用以對A進行近似,其中并且并且X、Y和Z中的列都求和為1,使得下面的誤差被最小化 其中對于張量A 對于給定的則確保下面的更新規則以收斂到在等式(22)中定義的目標函數的最佳解。
并且將X、Y和Z中的s.t.列的和歸一化為1。
下面的討論中,不失一般性,假定L≥M≥N,且I≥J≥K。另外,在數據集中有nz條數據記錄,這意味著在數據張量A中有nz個非零條目。
更新算法的自然的實現將擴展C×1X×2Y×3Z,其結果是R1I×J×K中的密集張量(dense tensor)。因為這樣的密集張量包含IJK個條目,進行這樣的明顯的擴展是不切合實際的(例如,考慮具有10K個作者,10K個關鍵詞,和10K個參考文獻的數據集,其中IJK=1萬億(trillion))。圖1的實現利用了數據集的稀疏性,并且具有在nz(在原始數據張量中非零條目的數目)中是線性的時間復雜度(每次迭代)。假設數據按<key1,key2,key3,value>的格式存儲,其中key1、key2、key3分別是在第一、第二和第三維度中數據記錄的索引;value是數據記錄的值,其可以是,例如,作者針對一主題引用一參考文獻的次數。在算法的第一個步驟中,數據按照作為主鍵(major key)的key1以及隨后作為輔助鍵(minor key)的key2和key3而排序(sort)。因為這些鍵是具有已知界限(bound)的整數并且因而可以應用線性排序(例如桶排序),所以這種排序取得了在nz中的時間線性。此外,為簡化討論,假定<key1,key2,key3>作為數據記錄的主(唯一)鍵。
作為實例,接下來討論在等式(5)中計算B的過程。其它的計算可以按照同樣的方式進行。第一,該實現是惰性(lazy)的,其中只執行絕對必要的計算。在這樣一種惰性的方式中,該實現利用了數據的稀疏性。該實現的第二個關鍵思想是該計算在某種程度上是精心排好的,以便重復計算被最小化。
在這個算法中,D是M×N的矩陣,而
是長度為N的向量。注意,fold(·)是將向量折疊進矩陣的函數。其在此只是用于說明目的,并不是必要的。該實現的一個附加的良好性質是由于數據記錄被順序地訪問,算法可以容易地被并行化(parallelize)。
因子模型的一個應用是進行個性化推薦。但是,對這種應用的一請求是快速推薦,因為通常推薦是實時作出的,并且其中長時間的延遲是無法接受的。
在一個實施例中,采用Fagin算法用于快速推薦,該算法利用了數據的偏斜(skewness)。當AC×1X×2Y×3Z,以及關鍵詞j,給定的作者k時,對參考文獻的評分(score)為
系統不需要計算
中的所有的元素以便作出前K個(top-K)正確的推薦。
對于單調函數而言,Fagin算法可用于計算前K個答案,而不計算所有的評分。如果則函數f(x,y,z,...)單調。這種情況下,是單調函數,因為每一個都是非負的。
隨著即時技術采用先驗知識作為因子分解的基礎,先驗知識可以用作用于概括的一些侯選(candidate)。然后通過選擇與在核心張量中的最大值相對應的侯選,系統可以同時獲取用于所有維度的概括。
使用因子分解方法獲取的因子可以直接用于數據分析。例如,在博客圈(Blogosphere)中,博主在不同的時間對各種主題相互引用。因此在博客數據集中的數據記錄可以是“在時間D關于主題C博客A鏈接到博客B”,也就是,可自乘的(quadrable)<A,B,C,D>。對于這樣的數據集,核心張量中的較大值和不同維度中的相應因子可以一起表示“某組博主在特定時間關于特定主題形成具有特定結構的社區”的事件。
使用因子分解的方法獲取的因子還可以用于個性化推薦。例如,假如數據集包括作者-主題-參考文獻三元組,則對于給定作者和給定主題,系統可以推薦與該主題和該作者的偏好相關的參考文獻。
使用因子分解方法獲取的因子自然地形成聚類。該方法的優點是除了在各維度中由相應維度中的因子所表示的聚類之外,方法還給出了由核心張量表示的聚類之間的相關性。結果,除了總的聚類,系統可以有效地挖掘(drill down)特定于特定子組的聚類。例如,系統可以通過選擇核心張量的相應子集,獲得特定于作者社區或者特定于時間段的聚類。
對于概括應用,先驗知識可以被設定為用于概括的侯選。通過選取與核心張量中的最大值相對應的侯選,系統可以同時獲取用于所有維度的概括。
本發明可以在硬件、固件或者軟件,或者三者的結合中實現。優選地,本發明在可編程計算機上執行的計算機程序中實現,該可編程計算機具有處理器、數據存儲系統、易失和非易失存儲器和/或存儲元件、至少一個輸入設備和至少一個輸出設備。
作為例子,下面討論支持該系統的計算機的框圖。計算機優選包括通過CPU總線耦合的處理器、隨機存取存儲器(RAM)、程序存儲器(優選為可寫只讀存儲器(ROM),如閃存ROM)和輸入/輸出(I/O)控制器。計算機可選地包括耦合到硬盤和CPU總線的硬盤驅動控制器。硬盤可用于存儲應用程序,如本發明和數據。可選地,應用程序可以存儲在RAM或ROM中。I/O控制器通過I/O總線耦合至I/O接口。I/O接口在通信鏈路(如串行鏈路、局域網、無線鏈路和并行鏈路)上以模擬或數字形式接收和發送數據。可選地,顯示器、鍵盤和指針設備(鼠標)也可以連接到I/O總線。可替換地,單獨的連接(單獨的總線)可用于I/O接口、顯示器、鍵盤和指針設備。可編程處理系統可以被預編程或通過從另一源(例如,軟盤、CD-ROM,或者另一計算機)下載程序而被編程(和重新編程)。
每一個計算機程序都切實地存儲在機器可讀存儲介質或者由通用或專用可編程計算機可讀的設備(例如程序存儲器或磁盤)中,用來在計算機讀取存儲介質或設備以執行在此所描述的程序時設置和控制計算機的操作。本發明的系統還可以被認為包含在計算機可讀存儲介質中,配置有計算機程序,其中存儲介質如此設置使得計算機按特定或預定的方式操作以執行在此描述的功能。
本發明在這里已經作了相當詳細的描述,以便符合專利法規,且為本領域普通技術人員提供應用該新方法所需要的信息并且以便構建和使用這種所需的專門組件。但是,可以理解本發明可以由明顯不同的裝置和設備實施,并且關于裝置的細節和操作程序的各種變形可以在不脫離本發明本身的范圍的情況下實現。
雖然本發明的具體實施例已經在附圖中被舉例說明并且在先前的詳細說明中被描述,但是應當理解本發明并不限制于這里所描述的特定實施例,而是可以在不脫離本發明范圍的情況下進行多種重新布置、修改和替換。下面的權利要求試圖包含所有這些修改。
權利要求
1、一種用于對高維數據進行因子分解的方法,包括
同時捕獲用于所有數據維度的因子以及它們在因子模型中的相關性;以及
生成相應的損失函數來評估所述因子模型。
2、如權利要求1所述的方法,包括從高維輸入數據生成數據張量。
3、如權利要求1所述的方法,包括使用因子分解算法生成一個或多個因子以及因子關系。
4、如權利要求1所述的方法,包括將因子及其關系應用于推薦應用。
5、如權利要求1所述的方法,包括將因子及其關系應用于聚類應用。
6、如權利要求1所述的方法,包括將因子及其關系應用于概括應用。
7、如權利要求1所述的方法,包括在張量因子分解中應用Kullback-Leibler散度來測量誤差。
8、如權利要求1所述的方法,包括應用替代算法來學習所述模型的參數。
9、如權利要求1所述的方法,包括在張量因子分解中應用Frobenius張量范數來測量誤差。
10、如權利要求1所述的方法,包括應用EM式迭代算法用于求解非負張量因子分解(NTF)。
11、如權利要求1所述的方法,包括得出概率因子模型。
12、如權利要求11所述的方法,其中所述概率因子模型用于生成差別版本和包含對結果稀疏性的正則化的版本。
13、如權利要求1所述的方法,包括使用非負張量因子分解對所述數據進行近似。
14、如權利要求1所述的方法,包括最小化誤差。
15、如權利要求14所述的方法,包括生成表示所述數據的不同維度中的所述因子的一組矩陣。
16、如權利要求14所述的方法,包括生成表示在數據的不同維度中的所述因子之間的相關性的張量。
17、一種用于對高維觀察數據進行因子分解的方法,包括
a.得出生成模型,該生成模型同時捕獲用于所有數據維度的因子及其相關性;
b.生成預測數據,并將所述生成模型映射為非負張量因子分解;以及
c.最小化所述觀察數據和所述預測數據之間的預定損失,以及生成表示在數據的不同維度中的所述因子之間的相關性的張量。
18、如權利要求17所述的方法,包括生成表示所述數據的不同維度中的所述因子的一組矩陣。
19、如權利要求17所述的方法,包括生成表示在數據的不同維度中的所述因子之間的相關性的張量。
20、如權利要求17所述的方法,包括應用EM式迭代算法用于求解非負張量因子分解(NTF)。
全文摘要
本發明涉及用于處理高維數據的系統和方法。本發明公開了這樣的系統和方法通過同時捕獲用于所有數據維度的因子以及它們在因子模型中的相關性來對高維數據進行因子分解,其中因子模型提供了所述數據的簡要描述;以及生成相應的損失函數來評估所述因子模型。
文檔編號G06F17/30GK101593214SQ20091014977
公開日2009年12月2日 申請日期2009年5月27日 優先權日2008年5月28日
發明者Y·赤, Y·龔, S·朱 申請人:美國日本電氣實驗室公司