TWI391859B - 分割高維度向量以用於巨大索引樹之方法及裝置 - Google Patents
分割高維度向量以用於巨大索引樹之方法及裝置 Download PDFInfo
- Publication number
- TWI391859B TWI391859B TW098125141A TW98125141A TWI391859B TW I391859 B TWI391859 B TW I391859B TW 098125141 A TW098125141 A TW 098125141A TW 98125141 A TW98125141 A TW 98125141A TW I391859 B TWI391859 B TW I391859B
- Authority
- TW
- Taiwan
- Prior art keywords
- result
- vector
- graphical representation
- computer
- hardware
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Mathematical Physics (AREA)
- Databases & Information Systems (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Computational Mathematics (AREA)
- Pure & Applied Mathematics (AREA)
- Algebra (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Complex Calculations (AREA)
- Separation By Low-Temperature Treatments (AREA)
Description
本發明係關於資料集。更特定言之,本發明係關於一種分割高維度向量以用於巨大索引樹之方法及裝置。
本專利申請案主張2008年7月24日,由與此申請案相同發明者申請之名為「分割高維度向量以用於巨大索引樹之方法及裝置(Method And Apparatus For Partitioning High-Dimension Vectors For Use In A Massive Index Tree)」的美國臨時申請案序號第61/083404號之優先權,其以引用的方式併入本文中。本申請案主張2009年7月22日由與本申請案相同發明者申請之名為「分割高維度向量以用於巨大索引樹之方法及裝置(Method And Apparatus For Partitioning High-Dimension Vectors For Use In A Massive Index Tree)」的美國臨時申請案序號第12/507271號之優先權,其以引用的方式併入本文中。
當計算項目的相似性不能方便地藉由一全序(諸如編號或字母串)表示時,出現高維度向量。此提出一個問題。舉例言之,在一方法中,影像的相似性可使用自頻譜技術獲得的高維度向量導出之「簽章」而被計算,諸如FFT及DCT[Celentano 1997(@inproceedings{celentano97fftbased,author=「Augusto Celentano and Vincenzo Di Lecce」,title=「{FFT}-Based Technique for Image-Signature Generation」,booktitle=「Storage and Retrieval for Image and Video Databases({SPIE})」,pages=「457-466」,year=「1997」,url=「citeseer.ist.psu.edu/597114.html」})]。一歌曲或片段內樂譜(訊框)的簡短部分之間的匹配可藉由梅爾(Mel)倒頻譜係數(MFCC)[Logan 2001(@misc{logan01contentbased,author=「B. Logan and A. Salomon」,title=「A content-based music similarity function」,text=「B. Logan and A. Salomon. A content-based music similarity function. Technical report,Compaq Cambridge Research Laboratory,June 2001.」,year="「2001」,url=「citeseer.ist.psu.edu/logan01contentbased.html」})]而計算,其係自一離散餘弦轉換(DCT)導出。儲存於一基因資料庫中染色體之間的相似性可由將核苷酸序列表示為自一馬克夫(Markov)轉換模式[Nakano 2004(2004年8月19日由Russell Nakano申請之美國專利申請案第20040162827之名為「用於符記序列之基本作業之方法及裝置:計算相似性、擷取項值及有效地搜索」(Method and apparatus for fundamental operations on token sequences:computing similarity,extracting term values, and searching efficiently))]導出之高維度稀疏向量而計算。
本發明係經由實例繪示且不限於附圖的圖式。
2004年8月19日由Russell Nakano申請之美國專利申請案第20040162827號之名為「用於符記序列之基本作業之方法及裝置:計算相似性、擷取項值及有效地搜索(Method and apparatus for fundamental operations on token sequences:computing similarity,extracting term values,and searching efficiently)」,其全部揭示內容以引用的方式併入本文中。本文稱作Nakano 2004。
2006年8月24日由Russell Nakano申請之美國專利申請案第20060190465號之名為「用於無結構內容之有效索引儲存之方法及裝置(Method and apparatus for efficient indexed storage for unstructured content)」,其全部揭示內容以引用的方式併入本文中。本文稱作Nakano 2006。
平衡的、樹狀組織的資料結構(亦稱作索引樹)因為其等係相對易於建立並提供快速查詢,其等係有用於電腦實施中。特定言之,吾人把注意力集中在用於有效儲存及查找大量高維度項目之平衡二元樹上,諸如在[Nakano 2006(2006年8月24日由Russell Nakano申請之美國專利申請案第20060190465號名為「用於無結構內容之有效索引儲存之方法及裝置」(Method and apparatus for efficient indexed storage for unstructured content))]中。在此內容中,所有內容項目係表示為一高維度內積空間中的向量。
符號
<x,y>意味向量x及y的內積
v.i意謂一集合的第i個向量v.i
sum(i=1,..,m;v.i)意謂從1至m的下標值範圍內該向量v.i的總和
因為我們希望建立基於一大量項目相似性的一索引,我們使用一平衡二元樹。參考圖3。一樹具有一單個根節點。每個節點為一內節點或者為一葉子節點。在圖3中,該內節點302為一根節點,內節點包含由一分裂向量vsplit及一標量p.div組成的一分裂器。該分裂器容許該節點發送任何向量至包含內容項目之較高或較低孩子及葉子節點。我們配置每個葉子節點以固持不多於G個項目。一葉子節點包含不同項目,及我們配置每個葉子節點以包含不多於一預定項目數量G(G通常係選擇為一小值諸如8,因為在該葉子節點的運算數目增長為G^2,且我們應該在該等葉子處保持運算數目的一限度)。一內節點具有一較低孩子節點及一較高孩子節點,其中該等孩子或者全為內節點或者全為葉子節點(儘管更習知將該等孩子節點稱作為左孩子及右孩子,用於命名其等「較低」及「較高」的原因將即刻變得顯而易見),參看[Wikipedia Binary_tree 2008(「Binarytree,」http://en.wikipedia.org/wiki/Binary_search_trees,July 23,2008)]。
我們使用一階層式分解,其中每個節點將經指派至其之所有該等項目分割為較低孩子或較高孩子。此程序自該根節點開始,該根節點係集合中經指派的所有N個項目。使用一分裂程序,該等較低及較高孩子節點係經指派的N/2個項目,遞歸地直到我們具有少於K個項目。
在我們針對一平衡二元樹之方法中一重要成分係該分裂程序,其中該等輸入及輸出係在下文被指定。
輸入:
與一內積空間S不同且非零向量v.i的一集合C。
輸出:
a)一向量v.split,稱作「分裂向量」。
b)一標量值p.div,稱作「分裂值」。
c)向量e.i=v.i-(<v.i,v.split>/<v.split,v.split>)*v.split的一輸出集合。
d)集合C的一子集L,其中e.i為意謂用於其對應向量v.i,<v.i,v.split>^2<=p.div之一L的元素,子集L稱作「較低集」。
e)集合C的一子集U,其中e.i為意謂用於其對應向量v.i,<v.i,v.split>^2>p.div之一U的元素,子集U稱作「較高集」。
該分裂程序將被調用以指派該較低集至該較低孩子節點,並指派該較高集至該較高孩子節點(參看如圖3)。舉例言之,假設我們具有一百萬個向量。該根節點將施加該分裂程序以將該等向量分裂成該等較低及較高集。如果其產生一簡單定義之可接受分割,則所形成之該較低集之五十萬向量將被指派至該較低孩子,及該較高集之剩餘五十萬向量將被指派至該較高孩子。遞歸地施加此程序以產生一平衡二元樹。
該分裂程序需要產生如下定義之該輸入集合之一可接受分割。我們定義q為經指派至該較低集L之該等輸入向量的小部分。理想上我們確切地希望該等輸入向量之半數將被指派至該較低集,且另一半數被指派至該較高集。實際上,針對一些在[0,0.5]中選擇的r,如果q係在[0.5-r,0.5+r]範圍內,則我們判定該分裂程序產生一可接受結果。舉例言之,假定我們設定r=0.2。因此,我們認為產生至少該較低集中輸入集合之30%,至多該較低集中該輸入之70%的任何分割為一可接受分割。
我們做出三個觀察。
第一,與[Nakano 2006]的早期公式相比,我們使用內積的平方<v.i,v.split>^2代替單獨的內積。當將與該分裂向量v.split強烈對準的向量v.i組在一起時,當前公式具有所需屬性而忽視該內積的正負號。舉例言之,我們可具有轉換成為向量之取樣的音樂波形,其等係由透過一DCT計算的頻率分量組成。具有相似頻率分量但係僅異相的兩個樣本將具有異號但為大多數目的應該被組合在一起的點積。取內積平方係達成此效應之一選用步驟。
第二,該等輸出向量e.i係該等輸入向量v.i,除了係已減去該分裂向量的基值。該等輸出向量e.i係隨後用作為至樹中之該等孩子節點的輸入。在建立該樹的過程中此具有誘人屬性,我們繼續計算用於向量之原始輸入集合之一基於特徵向量的基礎。因此,當我們進入樹中較深處時,該「殘餘」輸出向量在量值上移動更接近於零。該等輸出向量係在該基礎分解中的誤差值。
第三,我們觀察到:根據本文描述程序,該等較低及較高孩子節點將計算輸出向量之較低及較高集合上的特徵向量。當該等較低及較高特徵向量最後為充分不相似時,其確實有利於導入孩子節點。但當該等較低及較高特徵向量v.lower及v.upper係充分相似時,例如S=<v.lower,v.upper>^2/(<v.lower,v.lower>*<v.upper,v.upper>)>S.threshold,接著如果我們抑制較低及較高孩子節點的導入,則我們獲得一更有效基礎,並取而代之簡單地導入一單個孩子節點。例如,我們已發現S.threshold=0.7的值給出良好結果。
在[Nakano 2006]中,分裂向量及分裂值係定義為:
a.該分裂向量v.split係包含在C中之該等向量的形心(質心),
v.split=(1/m)*sum(i=1,..,m;v.i) (1)
b.計算偏差值,
d.i=<v.i,v.split>. (2)
c.該標量分裂值p.div是偏差平方值的中間值。
因為該分裂程序必須在本文提出技術的一電腦實施例項中重複地執行,故小型瑕疵變得放大。一故障模式係該分裂向量最後為零或很接近零。當此發生時,所形成之分割未達成可接受條件,及因此我們需要從不產生一零分裂向量的一分裂程序。基於此考慮,我們瞭解當該形心位於或接近該向量空間中原點時,例如在[Nakano 2006]中計算該形心可為成問題。當該分裂向量為零時,由於該等偏差值d.i變為零且達成一可接受分裂變為不可能,故此毀滅所有後來計算。
隨附一零分裂向量之困難點可藉由重算如下分裂程序而瞭解。配置該等向量v.i作為一矩陣A中的m行,
A=[v.1,...,v.m]
導入該單位m-向量u=(1/sqrt(m))*(1,...,1),我們瞭解在等式(1)中,d.i可被寫為,
d.i=sqrt(m)*x.i.transpose*A*u, (3)
至於i=1,...,m
將自(3)的m個表達式堆疊成為一單個矩陣運算式,並將該度量常數平方根(M)組合成為向量d。
令d=(1/sqrt(M)*(d.1,...,d.M). (4)
因此
d=A.transpose*A*u (5)
上述表達式可被視為用於發現對稱矩陣A.transpose*A的主要特徵值及主要特徵向量(有時稱為支配特徵向量)之冪次方法的初始步驟。參看[Golub 1983(Gene Golub and Charles Van Loan,Matrix Computations,The Johns Hopkins University Press,Third ed.,Baltimore,1983,pp. 330-2.)]。如果我們寫下估計為u.k之特徵向量序列,且自初始猜想u.0=(1/sqrt(m))*(1,...,1)開始,此處lambda.k係該主要特徵值,該結構變得更清楚。
d.k=A.transpose*A*u.k-1 (6)
u.k=d.k/sqrt(<d.k,d.k>) (7)
lambda.k=u.k.transose*A.transpose*A*u.k (8)
對於k=1、2、3,直到收斂。
以藉由此公式提供的傳統透視圖,我們觀察該分裂向量變成零的問題不意謂該技術係根本瑕疵的,而是僅意謂u.0的初始選擇發生在A的空空間中。換句話說,由於u.0的不湊巧選擇,乘積A*u.0映射為零,並毀滅該計算。此分析給出我們一路標(roadmap)至最後導致該主要特徵向量的一迭代程序。此外,其告訴我們除初始條件的不合宜選擇以外,任何其他合理選擇收斂(以某一速度)至相同目的地。其亦告訴我們,我們可藉由決定執行多少迭代而決定吾人有多接近到達主要特徵向量。此為有用基本資訊,因為為了分裂值的更好品質,我們可以意謂更多計算循環及較低性能的更多迭代換取。我們係既不陷於以昂貴演算法精確地計算特徵向量,甚至亦不計算僅多於我們所需之一個。
在[Nakano 2006]之先前描述技術中,該分裂向量大致上係該主要特徵向量的一第一近似值,該主要特徵向量將該技術放置在一嚴格理論基礎上。
使該程序在該限制中產生該主要特徵向量u係一非常有用的屬性。我們可運行該程序至收斂之任何所需接近。該等分裂值係該主要特徵向量u的分量。u的分量擔任自該矩陣A挑選該向量集合之支配特徵的角色。提出另一方式,乘積A*u係可被視為由A表示之全體的實質特徵之單個最好表示之向量。此強調為什麼該分裂程序工作良好。
具有此知識,我們描述用於挑選用於該主要特徵向量u.0之初始猜想的一改良技術,其保證該近似值外的第一分裂向量輸出將不為零。
實際上,我們已發現一側的Jacobi旋轉,亦稱作Hestenes轉換[Strumpen 2003(8. @misc{strumpen-stream,author=「Volker Strumpen and Henry Hoffmann and Anant Agarwal」,title=「A Stream Algorithm for the SVD」,date=「October 22,2003」id=「MIT-LCS-TM-641」url=「citeseer.ist.psu.edu/strumpen03stream.html」})],假定我們具有兩個向量x及y,該Jacobi旋轉在幫助我們計算一合理初始猜想時係非常有效的。該一側的Jacobi旋轉產生兩個向量u及v,其定義為:
u=c*x-s*y
v=s*x+c*y
其中
g=<x,y>
a=<x,x>
b=<y,y>
w=(b-a)/(2*g)
t=sign(q)/(abs(q)+sqrt(1+w^2))
c=1/sqrt(t^2+1)
s=c*t
其次,我們定義一輔助函式,其佔用兩個向量並將其映射至一結果向量。
majorize(x,y)=
1. 如上描述,對x、y執行一個一側Jacobi旋轉以計算u,v。
2. 若(((b-a)*((s*s)-(c*c)))-4*c*s*g>0),則返回u.(當<u,u>係大於<v,v>時,此邏輯條件為真。)
3. 否則返回v。
我們使用關於成對向量的該Jacobi旋轉以繼續組合其等值,直到我們具有表示該整個集的分裂向量。
InitialGuess(向量集合S)=
若(S為空),則返回空
否則若(S包含一個向量),則返回S的唯一元素
否則若(S包含兩個向量),則返回majorize(S的第一向量,S的第二向量)
否則返回majorize(initialGuess(S的半數元素),initialGuess(S的另外半數元素))。
我們瞭解若一向量集合S包含至少一個非零向量,則initialGuess(S)不為零。驗證如下進行。若S是一個單獨非零向量,則initialGuess(S)返回非零單個。若S是一對向量且其等之至少一個非零,則因為a)該Jacobi作業透過由餘弦-正弦對(c,s)定義的一角度而執行一旋轉,及b)Jacobi的結論選擇該等轉換的向量u及v之較大者,接著返回一非零向量。最後,在該遞歸情形中,相反地假定返回一零向量。在此情形中,其將已由majorize返回,該majorize暗示兩個參數均為零。此暗示除了任何單元素集合情況外,majorize的所有其他參數對亦為零。此暗示該集合中所有該等向量係為零,其為一矛盾。此判定只要該輸入集合包含至少一個非零向量,該initialGuess函式即返回一非零向量。
總而言之,我們使用下列程序:
程序:splitVector
1. 我們係被給定一m個不同且非零向量v.i的集合S。
2. 調用關於集合S的initialGuess(S)。令u.0為結果。
3. 定義矩陣A=[v.1,...,v.m],其中行i係自S的第i個向量。
4. 初始化k=0。
5.計算該等分裂值向量d=A.transpose*A*u.k。
6. 確認該等分裂值d是否給出我們該等向量v.i的一可接受分割。
7. 若是,則我們係完成。
8. 否則,計算u.k+1=d/sqrt(<d,d>)。
9. 增加k<-k+1。
10.轉到步驟6。
請注意k(例如6及9)係一迭代計數。
因此我們已顯示:
1. 我們具有計算一用於該分裂向量之初始猜想的一方法(參看分裂向量程序)。
2. 我們具有繼續改良分裂值及分裂向量之一方法。
3. 我們具有繼續改良將不同且非零向量的一集合分割成為一較低集及一較高集之一方法。
圖4繪示大致上位於400處,具有兩個向量的一輸入及一個向量的一輸出之一「majorize」輔助函式的一實施例。在402處,輸入向量x及y。在404處決定:x及y兩者是否都為零?如果在404處,結果為Yes(是),則進入406(返回該零向量作為該結果),及接著進入408(完成)。如果在404處結果為No(不是),則進入410。在410處決定:x是否為零?如果在410處結果為Yes,則進入412(返回向量y),及接著進入408(完成)。如果在410處結果為No,則進入414。在414處決定:y是否為零?如果在414處結果為Yes,則進入416(返回向量x),及接著進入408(完成)。如果在414處,結果為No,則進入418。在418處計算一側Jacobi轉換:
u=c*x-s*y
v=s*x+c*y
其中
g=<x,y>
a=<x,x>
b=<y,y>
w=(b-a)/(2*g)
t=sign(q)/(abs(q)+sqrt(1+w^2))
c=1/sqrt(t^2+1)
s=c*t
接著進入420。在420處決定:是否((b-a)*((s*s)-(c*c)))-4*c*s*g>0?如果在420處結果為Yes,則進入424(返回向量u),及接著進入426(完成)。如果在420處結果為No,則進入422(返回向量v)及接著進入426(完成)。
圖5繪示大致上位於500處,顯示作為一向量集合之一輸入及作為一分裂向量猜想之一輸出的一「initialGuess」方法的一實施例。在502處輸入向量集合S。在504處決定:S是否為空?如果在504處結果為Yes,則進入506(返回空),及接著進入508(完成)。如果在504處結果為No,則進入510。在510處決定:S包含一個向量?如果在510處結果為Yes,則進入512(返回S中單個向量)及接著進入508(完成)。如果在510處結果為No,則進入514。在514處決定:S包含兩個向量?如果在514處結果為Yes,則進入516(呼叫關於S中兩個向量的majorize並返回結果)(例如,如圖4中繪示)及接著進入508(完成)。如果在514處結果為No,則進入518。在518處將S中向量任意分割成兩半H1及H2。在520處調用關於H1的「initialGuess」並呼叫結果r1。在522處調用關於H2的「initialGuess」並呼叫結果r2(舉例言之,如圖5中繪示在520及522處分別使用最終產生結果r1及r2之H1及H2的輸入集合,遞歸或迭代地調用另一「initialGuess」(亦即可能需要「initialGuess」的多個調用))。在524處呼叫關於r1及r2的majorize(例如,如圖4中繪示)。返回該結果並接著進入508(完成)。
圖6繪示大致上位於600處,具有向量的一輸入及一分裂向量的一輸出之一計算分裂向量方法的一實施例。在602處輸入m個不同且非零向量。呼叫該集合S。在604處呼叫關於該集合S的initialGuess(例如如圖5中繪示的initialGuess)。讓u.0為該結果。在606處定義矩陣A,其中行i係來自S的第i個向量。在608處初始化k=0。在610處計算該等分裂值d=A.transpose*A*u.k。在612處決定:該等分裂值d給出S的一可接受分割嗎?如果在612處結果為Yes,則進入614(完成)。如果在612處結果為No,則進入616。在616處計算u.k+1=d/sqrt(<d,d>)。在618處增加k。接著進入610。請注意k(例如在608及618)係一迭代計數。
圖4中426處(完成)及圖5中508處(完成)及圖6中614處(完成)表示一經返回的值。此一值可被儲存在一電腦上硬體中並被轉換成為一圖形表示,該圖形表示可被顯示至該電腦的一使用者。舉例言之,在一實施例中,該經返回的值可被儲存為一快閃記憶體裝置之一捕獲閘極上的一組實體電子。舉例言之,此等實體電子接著可藉由扭曲一液晶顯示器的分子而被轉換成為一圖形表示,致使可調變一載體信號及在一人類使用者的一桿狀及錐形受體接收時產生一分子變化以產生實體電子,因此產生一切實有用結果及相依於一特定機器的轉換(諸如特定設計具有一64位桶式移位暫存器及一展望進行算術邏輯單元的一電腦)。舉例言之,在一實施例中,該經返回的值可被儲存為可藉由觸感而由一人閱讀之一紙帶上的一列孔(例如來自一KSR-33電傳打字機的輸出)。如揭示之申請者主張此等結果係依賴於一特定機器或裝置及/或將一特定物件轉換成為一不同狀態或事態,而且此等細節及/或事情並非微不足道且因而滿足在此請求日期時的Bilski。如果Bilski被撤銷,則申請者表達保留修正此申請案的權利,且基於被撤銷之Bilski的此等修正將為無禁反言(prosecution estoppel)。
因此,已描述分割高維度向量以用於巨大索引樹之方法及裝置。
返回參考圖1,圖1繪示一網路環境100,其中可施加所描述的技術。該網路環境100具有一透過104-S連接S伺服器104-1及透過108-C連接C用戶端108-1之網路102。如顯示,以透過104-S之S伺服器104-1及透過108-C之C用戶端108-1的形式之幾個電腦系統係經由一網路102被連接至彼此,舉例言之該網路可為一基於公司的網路。注意另一選擇為,該網路102可為或包含下列之一個或更多個:網際網路、一區域網路(LAN)、廣域網路(WAN)、衛星鏈結、光纖網路、纜線網路或此等及/或其他的一組合。舉例言之,該等伺服器可表示單獨的磁碟儲存器系統或儲存器及計算資源。再者該等用戶端可具有計算、儲存及觀看能力。本文描述的該等方法及裝置可被施加至大致上為區域或遠端(諸如一LAN、一WAN、一系統匯流排等)之任何類型的通信構件或裝置。
返回參考圖2,圖2繪示以方塊圖形式的一電腦系統200,該電腦系統200可代表圖1中顯示的任何該等用戶端及/或該等伺服器。該方塊圖係一高階概念表示且可以多種方法及藉由多種架構而被實施。匯流排系統202互連一中央處理器(CPU)204、唯讀記憶體(ROM)206、隨機存取記憶體(RAM)208、儲存器210、顯示器220、音訊222、鍵盤224、指標226、多種輸入/輸出(I/O)裝置228、通信230及通信鏈結232。舉例言之,該匯流排系統202可係作為一系統匯流排之此等匯流排之一個或更多、周邊元件互連(PCI)、加速影像處理埠(AGP)、小型電腦系統介面(SCSI)、電機電子工程師協會(IEEE)標準編號1394(傳輸壓縮影像檔的標準(FireWire))、通用串列匯流排(USB)等。該CPU 204可為一單個、多個以至一分佈式計算資源。儲存器210可為小型磁碟(CD)、數位光碟(DVD)、硬碟(HD)、光碟、磁帶、快閃、記憶條、視訊記錄器等。舉例言,顯示器220可為一陰極射線管(CRT)、液晶顯示器(LCD)、一投影系統、電視(TV)等等。注意根據一電腦系統的實際實施,該電腦系統可包含該方塊圖中元件之一些、全部、更多或元件的一重新配置。舉例言之,一薄用戶端可由舉例言之缺少一傳統鍵盤之一無線手持裝置組成。因此,關於圖2之系統的多種變動係可能。
為了論述及理解本發明之目的,應瞭解多種用語係由熟悉此項技術者使用於描述技術及方法。此外,在描述中,為了說明目的,許多特定細節被闡明以便提供對本發明的一徹底瞭解。然而,對一般技術者顯然的是本發明可在無此等特定細節下被實踐。在一些實例中,吾人所熟知的結構及裝置係以方塊圖的形式而非詳細地被顯示,以避免模糊本發明。此等實施例係以充分細節被描述以使得一般技術者得以實踐本發明,及應瞭解可使用其他實施例且在不脫離本發明的範疇下可做出邏輯、機械、電機及其他改變。
可按照關於例如一電腦記憶體內的資料位元作業的演算法及符號表示而提出該描述的一些部分。此等演算法描述及表示係藉由資料處理技術中的一般技術者使用的方法,以最有效地將其等工作的要點傳達至其他一般技術者。此處及大致上一演算法被設想為導致一所需結果之動作的一自相容序列。該等動作係需求實體量之實際操作的動作。通常,儘管不一定,此等量採取能夠被儲存、轉移、組合、比較等等操作的電磁信號形式。主要因為共同使用,其已證明有時方便的表示此等信號為位元、值、元件、符號、字元、用語、編號或類似物。
然而,應記住所有此等及類似用語係與適當的實體量關聯且係純粹施加於此等量之方便標記。除非可見於論述之特定另有說明,應瞭解在全部描述中,利用諸如「處理」或「計算」或「運算」或「測定」或「顯示」或類似物之用語之論述可表示一電腦系統的動作及處理程序,或類似電子計算裝置,其將表示為該等電腦系統暫存器及記憶體內實體(電子)量之資料,處理並轉換成為類似地表示為該等電腦系統記憶體或暫存器,或其他此等資訊儲存器、傳輸或顯示裝置內實體量之其他資料。
一種用於執行本文之作業之裝置可實施本發明。此裝置可為所需目的而被特定地構造,或其可包括由儲存於該電腦中一電腦程序選用啟動或重新組態之一通用目的電腦。此一電腦程序可被儲存於一電腦可讀儲存器媒體中,諸如(但不限於)任何磁碟類型,其包含軟碟、硬碟、光碟、唯讀光碟記憶體(CD-ROM)及磁性光碟、唯讀記憶體(ROM)、隨機存取記憶體(RAM)、電可程式唯讀記憶體(EPROM)、電可抹除可程式唯讀記憶體(EEPROM)、快閃記憶體、磁或光卡等,或適合於儲存本端至該電腦或遠端至該電腦之電子指令的任何媒體類型。
本文提出之該等演算法及顯示係不固有地關於任何特定電腦或其他裝置。多種通用目的系統可根據本文教示而與程式併用,或其可證明方便構建更多特定裝置以執行所需方法。舉例言之,根據本發明之該等方法之任一個可藉由程式化一通用目的處理器或藉由硬體及軟體的任何組合而被實施於硬接線電路中。一般技術者將立即瞭解可以除此等描述之外的電腦系統組態來實踐本發明,該等電腦系統組態包含手持裝置、微處理器系統、基於微處理器或可程式消費者電子裝置、數位信號處理(DSP)裝置、機上盒、網路PC、迷你電腦、主機電腦等等。亦可在分佈式計算環境中實踐本發明,其中任務係由透過一通信網路鏈結的遠端處理裝置執行。
本發明的方法可使用電腦軟體來實施。如果寫入之一程式語言符合一識別標準,則經設計以實施該等方法之指令序列可經編譯用於在多種硬體平台上執行或用於介接於多種作業系統。另外,本發明係不參考任何特定程式語言描述。應瞭解,多種程式語言可被用於實施本文描述之本發明的教示。此外,此項技術中共同的是以一形式或另一形式(例如程式、程序、應用程式、驅動程式......)談到軟體,例如採取一動作或引起一結果。此等術語僅係談論由一電腦之該軟體之執行之一簡略表達方式,意指該軟體之執行引起該電腦之處理器執行一動作或產生一結果。
應理解熟悉此項技術者使用多種運算式及技術以描述通信、協定、應用程式、實施例項、機構等等。一此技術係按照一演算法或數學運算式之一技術之一實施例項的描述。亦即,舉例言之,當該技術可被實施為執行一電腦上的程序碼時,此技術的表達式可作為一式、演算法或數學運算式而被更適當及簡便地傳達及傳送。因此,一般技術者將識別一分程序表示A+B=C為一加成性函數,其在硬體及/或軟體中的實施將接受兩個輸入(A及B)並產生一總和輸出(C)。因此,使用公式、演算法或數學運算式作為描述將被理解為具有在至少硬體及/或軟體中之一實體實施例(諸如一電腦系統,其中本發明之該等技術可被實踐及被實施為一實施例)。
一機器可讀媒體被理解為包含任何用於儲存或傳輸以一由一機器(例如一電腦)可讀形式之資訊的機構。舉例言之,一機器可讀媒體包含唯讀記憶體(ROM)、隨機存取記憶體(RAM)、磁碟儲存媒體、光儲存媒體、快閃記憶體裝置、在接受時引起物質(例如電子、原子等)中運動之電、光、聲或其他形式之傳播信號(例如載波、紅外線信號、數位信號等)等等。
如用於此描述中,「一個實施例」或「一實施例」或類似片語意謂被描述的該(等)特徵係包含在本發明之至少一個實施例中。此描述中對「一個實施例」之參考不一定表示相同實施例,然而,兩者都不是互斥的此等實施例。「一個實施例」不意謂僅限於本發明的一單個實施例。舉例言之,描述在「一個實施例」中的一特徵、結構、動作等亦可被包含在其他實施例中。因此,本發明可包含本文描述之該等實施例的多種組合及/或整合。
因此已描述分割高維度向量以用於巨大索引樹之方法及裝置。
100...網路環境
102...網路
200...電腦系統
202...匯流排系統
204...中央處理器
206...唯讀記憶體
208...隨機存取記憶體
210...儲存器
220...顯示器
222...音訊
224...鍵盤
226...指標
228...多種輸入/輸出(I/O)裝置
230...通信
232...通信鏈結
302...內節點
圖1繪示一網路環境,其中可實施本發明的方法及裝置;
圖2是一電腦系統的一方塊圖,其中可實施本發明的一些實施例及此處可使用本發明的一些實施例。
圖3繪示本發明的一實施例,以顯示用於一平衡二元樹的命名。
圖4繪示一「majorize」輔助函式的一實施例,其具有兩個向量的一輸入及一個向量的一輸出。
圖5繪示一「initialGuess」方法的一實施例,以顯示作為一向量集合的一輸入及作為一分裂向量猜想的一輸出;及
圖6繪示一計算分裂向量方法的一實施例,其具有向量的一輸入及一分裂向量的一輸出。
(無元件符號說明)
Claims (3)
- 一種電腦實施方法,其包括:(a)輸入向量x;(b)輸入向量y;(c)測定是否該向量x=0及該向量y=0;及(d)若是,則(d1)返回一零向量作為一結果;(d2)在該電腦之硬體中儲存該結果;(d3)將該儲存的結果轉換至一圖形表示;及(d4)為一使用者顯示該圖形表示。(e)若否,則(f)測定是否該向量x=0;及(g)若是,則(g1)返回向量y作為一結果;(g2)在該電腦之硬體中儲存該結果;(g3)將該儲存的結果轉換至一圖形表示;及(g4)為一使用者顯示該圖形表示。(h)若否,則(i)測定是否該向量y=0;及(j)若是,則(j1)返回向量x作為一結果;(j2)在該電腦之硬體中儲存該結果;(j3)將該儲存的結果轉換至一圖形表示;及(j4)為一使用者顯示該圖形表示。(k)若否,則(l)計算一單側Jacobi轉換:(l1)u=c*x-s*y(l2)v=s*x+c*y其中g=<x,y>a=<x,x>b=<y,y>w=(b-a)/(2*g)t=sign(q)/(abs(q)+sqrt(1+w^2))c=1/sqrt(t^2+1)s=c*t(m)測定是否((b-a)*((s*s)-(c*c)))-4*c*s*g>0;及(n)若是,則(n1)返回向量u作為一結果;(n2)在該電腦之硬體中儲存該結果;(n3)將該儲存的結果轉換至一圖形表示;及(n4)為一使用者顯示該圖形表示。(o)若否,則(o1)返回向量v作為一結果;(o2)在該電腦之硬體中儲存該結果;(o3)將該儲存的結果轉換至一圖形表示;及(o4)為一使用者顯示該圖形表示。
- 一種表示為「initialGuess」之電腦實施方法,其包括:(a)輸入表示為S之一向量集合;(b)測定是否該S為空;及(c)若是,則(c1)返回一空作為一結果;(c2)在該電腦之硬體中儲存該結果;(c3)將該儲存的結果轉換至一圖形表示;及(c4)為一使用者顯示該圖形表示。(d)若否,則(e)測定是否該S包含一個向量;及(f)若是,則(f1)返回該一個向量作為一結果;(f2)在該電腦之硬體中儲存該結果;(f3)將該儲存的結果轉換至一圖形表示;及(f4)為一使用者顯示該圖形表示。(g)若否,則(h)測定是否該S包含兩個向量;及(i)若是,則(i1)將該等兩個向量轉換成為一majorize結果;(i2)在該電腦之硬體中儲存該結果;(i3)將該儲存的結果轉換至一圖形表示;及(i4)為一使用者顯示該圖形表示。(j)若否,則(k)將S中該等向量任意地分割成兩半,一H1及一H2。(l)使用該H1作為輸入向量S而調用另一「initialGuess」實例並返回一結果r1;(m)使用該H2作為輸入向量S而調用另一「initialGuess」實例並返回一結果r2;(n)將該結果r1及該結果r2轉換成為一majorize結果;及(o)在該電腦之硬體中儲存該結果;(p)將該儲存的結果轉換至一圖形表示;及(q)為一使用者顯示該圖形表示。
- 一種電腦實施方法,其包括:(a)輸入m個不同的非零向量,其表示為稱作S之一集合;(b)呼叫關於該集合S之一initialGuess常式,並將一返回的結果表示為u.0;(c)定義一矩陣A,其中一行i係來自該S之一第i個向量,(d)初始化表示為k之一迭代計數器至一值0;(e)計算表示為d之分裂值,其中d=A.transpose*A*u.k。(f)測定是否該等分裂值d給出S之一可接受分割;及(g)若是,則(g1)在該電腦之硬體中儲存該等分裂值d;(g2)將該等儲存的分裂值d轉換至一個或更多圖形表示;及(g3)為一使用者顯示該一個或多個圖形表示。(h)若否,則(h1)計算u.k+1=d/sqrt(<d,d>);(h2)該k值增加一;及(h3)轉到(e)。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US8340408P | 2008-07-24 | 2008-07-24 | |
US12/507,271 US8185531B2 (en) | 2008-07-24 | 2009-07-22 | Method and apparatus for partitioning high-dimension vectors for use in a massive index tree |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201108110A TW201108110A (en) | 2011-03-01 |
TWI391859B true TWI391859B (zh) | 2013-04-01 |
Family
ID=41570862
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW098125141A TWI391859B (zh) | 2008-07-24 | 2009-07-24 | 分割高維度向量以用於巨大索引樹之方法及裝置 |
Country Status (6)
Country | Link |
---|---|
US (1) | US8185531B2 (zh) |
EP (1) | EP2324422B1 (zh) |
CN (1) | CN102160034B (zh) |
CA (1) | CA2734569A1 (zh) |
TW (1) | TWI391859B (zh) |
WO (1) | WO2010011817A2 (zh) |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120321202A1 (en) * | 2011-06-20 | 2012-12-20 | Michael Benjamin Selkowe Fertik | Identifying information related to a particular entity from electronic sources, using dimensional reduction and quantum clustering |
US8886651B1 (en) | 2011-12-22 | 2014-11-11 | Reputation.Com, Inc. | Thematic clustering |
US10636041B1 (en) | 2012-03-05 | 2020-04-28 | Reputation.Com, Inc. | Enterprise reputation evaluation |
US9697490B1 (en) | 2012-03-05 | 2017-07-04 | Reputation.Com, Inc. | Industry review benchmarking |
US8918312B1 (en) | 2012-06-29 | 2014-12-23 | Reputation.Com, Inc. | Assigning sentiment to themes |
US9830385B2 (en) * | 2012-09-04 | 2017-11-28 | Salesforce.Com, Inc. | Methods and apparatus for partitioning data |
US8805699B1 (en) | 2012-12-21 | 2014-08-12 | Reputation.Com, Inc. | Reputation report with score |
US8744866B1 (en) | 2012-12-21 | 2014-06-03 | Reputation.Com, Inc. | Reputation report with recommendation |
US8925099B1 (en) | 2013-03-14 | 2014-12-30 | Reputation.Com, Inc. | Privacy scoring |
US20150100544A1 (en) * | 2013-10-04 | 2015-04-09 | Alcatel-Lucent Usa Inc. | Methods and systems for determining hierarchical community decomposition |
US10176175B2 (en) * | 2015-08-19 | 2019-01-08 | International Business Machines Corporation | System and method for identifying candidates for back-of-book index |
CN105573834B (zh) * | 2015-12-16 | 2018-12-11 | 复旦大学 | 一种基于异构平台的高维词汇树构建方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6084595A (en) * | 1998-02-24 | 2000-07-04 | Virage, Inc. | Indexing method for image search engine |
TW448386B (en) * | 1998-10-23 | 2001-08-01 | Matsushita Electric Ind Co Ltd | Method and apparatus for managing electronic data with variable length |
US6381605B1 (en) * | 1999-05-29 | 2002-04-30 | Oracle Corporation | Heirarchical indexing of multi-attribute data by sorting, dividing and storing subsets |
TW505868B (en) * | 1997-11-04 | 2002-10-11 | Ibm | On-line mining of quantitative association rules |
US7251637B1 (en) * | 1993-09-20 | 2007-07-31 | Fair Isaac Corporation | Context vector generation and retrieval |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6957191B1 (en) * | 1999-02-05 | 2005-10-18 | Babcock & Brown Lp | Automated financial scenario modeling and analysis tool having an intelligent graphical user interface |
KR100419575B1 (ko) * | 2000-12-05 | 2004-02-19 | 한국전자통신연구원 | 고차원 색인구조를 위한 벌크 로딩방법 |
US7966327B2 (en) * | 2004-11-08 | 2011-06-21 | The Trustees Of Princeton University | Similarity search system with compact data structures |
US7650320B2 (en) * | 2005-02-24 | 2010-01-19 | Nahava Inc. | Method and system for efficient indexed storage for unstructured content |
US8126870B2 (en) * | 2005-03-28 | 2012-02-28 | Sybase, Inc. | System and methodology for parallel query optimization using semantic-based partitioning |
US20070192316A1 (en) * | 2006-02-15 | 2007-08-16 | Matsushita Electric Industrial Co., Ltd. | High performance vector search engine based on dynamic multi-transformation coefficient traversal |
CN101211355B (zh) * | 2006-12-30 | 2010-05-19 | 中国科学院计算技术研究所 | 一种基于聚类的图像查询方法 |
-
2009
- 2009-07-22 US US12/507,271 patent/US8185531B2/en active Active
- 2009-07-23 CN CN200980136125.4A patent/CN102160034B/zh active Active
- 2009-07-23 EP EP09800994.7A patent/EP2324422B1/en active Active
- 2009-07-23 CA CA2734569A patent/CA2734569A1/en not_active Abandoned
- 2009-07-23 WO PCT/US2009/051502 patent/WO2010011817A2/en active Application Filing
- 2009-07-24 TW TW098125141A patent/TWI391859B/zh active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7251637B1 (en) * | 1993-09-20 | 2007-07-31 | Fair Isaac Corporation | Context vector generation and retrieval |
TW505868B (en) * | 1997-11-04 | 2002-10-11 | Ibm | On-line mining of quantitative association rules |
US6084595A (en) * | 1998-02-24 | 2000-07-04 | Virage, Inc. | Indexing method for image search engine |
TW448386B (en) * | 1998-10-23 | 2001-08-01 | Matsushita Electric Ind Co Ltd | Method and apparatus for managing electronic data with variable length |
US6381605B1 (en) * | 1999-05-29 | 2002-04-30 | Oracle Corporation | Heirarchical indexing of multi-attribute data by sorting, dividing and storing subsets |
Also Published As
Publication number | Publication date |
---|---|
WO2010011817A2 (en) | 2010-01-28 |
TW201108110A (en) | 2011-03-01 |
CN102160034B (zh) | 2014-08-27 |
US8185531B2 (en) | 2012-05-22 |
CN102160034A (zh) | 2011-08-17 |
WO2010011817A3 (en) | 2010-03-18 |
EP2324422A4 (en) | 2012-11-28 |
EP2324422B1 (en) | 2016-08-31 |
EP2324422A2 (en) | 2011-05-25 |
CA2734569A1 (en) | 2010-01-28 |
US20100057804A1 (en) | 2010-03-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI391859B (zh) | 分割高維度向量以用於巨大索引樹之方法及裝置 | |
Li et al. | Extended dynamic mode decomposition with dictionary learning: A data-driven adaptive spectral decomposition of the Koopman operator | |
Gorton et al. | Data-intensive computing in the 21st century | |
US8032476B2 (en) | Method and apparatus for efficient indexed storage for unstructured content | |
WO2021190115A1 (zh) | 检索目标的方法和装置 | |
WO2016062044A1 (zh) | 一种模型参数训练方法、装置及系统 | |
De Vocht et al. | Discovering meaningful connections between resources in the web of data | |
Bottou et al. | Geometrical insights for implicit generative modeling | |
CN109284414B (zh) | 基于语义保持的跨模态内容检索方法和系统 | |
CN113254716B (zh) | 视频片段检索方法、装置、电子设备和可读存储介质 | |
CN110457325B (zh) | 用于输出信息的方法和装置 | |
WO2024036662A1 (zh) | 一种基于数据采样的并行图规则挖掘方法及装置 | |
Zhang et al. | MULTIFORM: few-shot knowledge graph completion via multi-modal contexts | |
WO2024082827A1 (zh) | 文本相似性度量方法、装置、设备、存储介质和程序产品 | |
Tang et al. | CaseGNN: Graph Neural Networks for Legal Case Retrieval with Text-Attributed Graphs | |
US9542502B2 (en) | System and method for XML subdocument selection | |
JP4594992B2 (ja) | 文書データ分類装置、文書データ分類方法、そのプログラム及び記録媒体 | |
Zhang et al. | An iterative method for finding the spectral radius of an irreducible nonnegative tensor | |
Anguelov et al. | Forward invariant set preservation in discrete dynamical systems and numerical schemes for ODEs: application in biosciences | |
Laptev et al. | Weyl asymptotics for perturbed functional difference operators | |
Wu et al. | TENALIGN: Joint Tensor Alignment and Coupled Factorization | |
US9536193B1 (en) | Mining biological networks to explain and rank hypotheses | |
JP2014179906A (ja) | 映像要約装置、映像要約方法及び映像要約プログラム | |
KR102389555B1 (ko) | 가중 트리플 지식 그래프를 생성하는 장치, 방법 및 컴퓨터 프로그램 | |
Ghawi et al. | Characterizing movie genres using formal concept analysis |