TWI687820B - 隨機漫步、基於叢集的隨機漫步方法、裝置以及設備 - Google Patents
隨機漫步、基於叢集的隨機漫步方法、裝置以及設備 Download PDFInfo
- Publication number
- TWI687820B TWI687820B TW107128019A TW107128019A TWI687820B TW I687820 B TWI687820 B TW I687820B TW 107128019 A TW107128019 A TW 107128019A TW 107128019 A TW107128019 A TW 107128019A TW I687820 B TWI687820 B TW I687820B
- Authority
- TW
- Taiwan
- Prior art keywords
- node
- vector
- index
- cluster
- nodes
- Prior art date
Links
Images
Classifications
-
- 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
- G06F16/2228—Indexing structures
- G06F16/2237—Vectors, bitmaps or matrices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/382—Payment protocols; Details thereof insuring higher security of transaction
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/901—Indexing; Data structures therefor; Storage structures
- G06F16/9024—Graphs; Linked lists
-
- 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/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- 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/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/284—Relational databases
- G06F16/285—Clustering or classification
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/906—Clustering; Classification
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/951—Indexing; Web crawling techniques
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- Business, Economics & Management (AREA)
- Software Systems (AREA)
- Accounting & Taxation (AREA)
- Computing Systems (AREA)
- Computer Security & Cryptography (AREA)
- Finance (AREA)
- Strategic Management (AREA)
- General Business, Economics & Management (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本說明書實施例揭露了隨機漫步、基於叢集的隨機漫步方法、裝置以及設備,方案包括:獲取圖資料包含的各節點的資訊,根據各節點的資訊生成反映節點的度值的索引向量,並進一步地生成反映節點的相鄰節點的標識的元素向量,根據索引向量和元素向量生成隨機序列,實現在圖資料中的隨機漫步;該方案可以既適用於叢集也適用於單機。
Description
本說明書關於電腦軟體技術領域,尤其關於隨機漫步、基於叢集的隨機漫步方法、裝置以及設備。
隨著電腦和網際網路技術的迅速發展,很多業務都可以在網上進行,圖計算是處理社交方面的網上業務的一種常用手段。 例如,對於社交風險控制業務中的帳戶欺詐識別:每個用戶分別作為一個節點,若兩個用戶之間存在轉帳關係,則對應的兩個節點之間存在一條邊,邊可以是無向的,也可以是根據轉帳方向定義了方向的;以此類推,可以得到包含多個節點和多條邊的圖資料,進而基於圖資料進行圖計算以實現風險控制。 隨機漫步演算法是圖計算中比較基礎和重要的一環,其為上層複雜演算法提供支援。在現有技術中,一般採用這樣的隨機漫步演算法:在資料庫中隨機讀取圖資料包含的一個節點,再繼續在該資料庫中隨機讀取該節點的一個相鄰節點,以此類推,實現在圖資料中的隨機漫步。 基於現有技術,需要能夠應用於大規模圖資料的更為高效的隨機漫步方案。
本說明書實施例提供隨機漫步、基於叢集的隨機漫步方法、裝置以及設備,用以解決如下技術問題:需要能夠應用於大規模圖資料的更為高效的隨機漫步方案。 為解決上述技術問題,本說明書實施例是這樣實現的: 本說明書實施例提供的一種基於叢集的隨機漫步方法,包括: 所述叢集獲取圖資料包含的各節點的資訊; 根據所述各節點的資訊,生成索引向量,所述索引向量中的元素包括一個或者多個所述節點的度的累加值; 根據所述索引向量,生成元素向量,所述元素向量中的元素包括所述節點的相鄰節點的標識; 根據所述索引向量和所述元素向量,生成隨機序列,所述隨機序列反映在所述圖資料中的隨機漫步。 本說明書實施例提供的一種隨機漫步方法,包括: 獲取根據圖資料包含的各節點的資訊生成的索引向量,以及根據所述索引向量生成的元素向量; 根據所述索引向量和所述元素向量,生成隨機序列,所述隨機序列反映在所述圖資料中的隨機漫步; 其中,所述索引向量中的元素包括一個或者多個所述節點的度的累加值,所述元素向量中的元素包括所述節點的相鄰節點的標識。 本說明書實施例提供的一種基於叢集的隨機漫步裝置,所述裝置屬於所述叢集,包括: 獲取模組,獲取圖資料包含的各節點的資訊; 第一生成模組,根據所述各節點的資訊,生成索引向量,所述索引向量中的元素包括一個或者多個所述節點的度的累加值; 第二生成模組,根據所述索引向量,生成元素向量,所述元素向量中的元素包括所述節點的相鄰節點的標識; 第三生成模組,根據所述索引向量和所述元素向量,生成隨機序列,所述隨機序列反映在所述圖資料中的隨機漫步。 本說明書實施例提供的一種隨機漫步裝置,包括: 獲取模組,獲取根據圖資料包含的各節點的資訊生成的索引向量,以及根據所述索引向量生成的元素向量; 生成模組,根據所述索引向量和所述元素向量,生成隨機序列,所述隨機序列反映在所述圖資料中的隨機漫步; 其中,所述索引向量中的元素包括一個或者多個所述節點的度的累加值,所述元素向量中的元素包括所述節點的相鄰節點的標識。 本說明書實施例提供的一種基於叢集的隨機漫步設備,所述設備屬於所述叢集,包括: 至少一個處理器;以及, 與所述至少一個處理器通訊連接的記憶體;其中, 所述記憶體儲存有可被所述至少一個處理器執行的指令,所述指令被所述至少一個處理器執行,以使所述至少一個處理器能夠: 獲取圖資料包含的各節點的資訊; 根據所述各節點的資訊,生成索引向量,所述索引向量中的元素包括一個或者多個所述節點的度的累加值; 根據所述索引向量,生成元素向量,所述元素向量中的元素包括所述節點的相鄰節點的標識; 根據所述索引向量和所述元素向量,生成隨機序列,所述隨機序列反映在所述圖資料中的隨機漫步。 本說明書實施例提供的一種隨機漫步設備,包括: 至少一個處理器;以及, 與所述至少一個處理器通訊連接的記憶體;其中, 所述記憶體儲存有可被所述至少一個處理器執行的指令,所述指令被所述至少一個處理器執行,以使所述至少一個處理器能夠: 獲取根據圖資料包含的各節點的資訊生成的索引向量,以及根據所述索引向量生成的元素向量; 根據所述索引向量和所述元素向量,生成隨機序列,所述隨機序列反映在所述圖資料中的隨機漫步; 其中,所述索引向量中的元素包括一個或者多個所述節點的度的累加值,所述元素向量中的元素包括所述節點的相鄰節點的標識。 本說明書實施例採用的上述至少一個技術方案能夠達到以下有益效果:有利於減少對原始保存圖資料的資料庫的存取,索引向量和元素向量在生成後無需依賴該資料庫,通過索引向量和元素向量能夠快速索引節點的相鄰節點,該方案能夠適用於大規模圖資料且效率較高,在基於叢集實施該方案的情況下,還能夠進一步地提高效率。
本說明書實施例提供隨機漫步、基於叢集的隨機漫步方法、裝置以及設備。 為了使本技術領域的人員更好地理解本說明書中的技術方案,下面將結合本說明書實施例中的附圖,對本說明書實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發明一部分實施例,而不是全部的實施例。基於本說明書實施例,本領域普通技術人員在沒有作出進步性勞動前提下所獲得的所有其他實施例,都應當屬於本發明保護的範圍。 本說明書的方案既適用於叢集,也適用於單機。在叢集下對於大規模圖資料的處理效率更高,原因在於:可以拆分任務,進而由叢集中的多個機器並存執行被分配給自己的一部分任務。以下各實施例主要基於叢集場景進行說明。 方案關於的叢集可以有一個或者多個,以圖1為例,關於了兩個叢集。 圖1為本說明書的方案在一種實際應用場景下關於的一種整體架構示意圖。該整體架構中,主要關於三部分:伺服器叢集、工作機叢集、資料庫。資料庫保存有圖資料,供叢集讀取,伺服器叢集與工作機叢集相互配合,根據從資料庫讀取的資料,實現在圖資料中的隨機漫步。 圖1中的架構是示例性的,並非唯一。例如,方案可以關於一個叢集,該叢集中包含至少一個排程機和多個工作機;再例如,方案也可以關於一個工作機叢集和一個伺服器;等等;方案關於的機器相互配合,實現在圖資料中的隨機漫步。 下面對本說明書的方案進行詳細說明。 圖2為本說明書實施例提供的一種基於叢集的隨機漫步方法的流程示意圖。圖2中各步驟由叢集中的至少一個機器(或者機器上的程式)執行,不同步驟的執行主體可以不同。 圖2中的流程包括以下步驟: S202:所述叢集獲取圖資料包含的各節點的資訊。 在本說明書實施例中,節點的資訊具體指:節點的度值、節點的相鄰節點的標識等一種或者多種資訊。各節點的資訊可以是一次性獲取的,也可以是分多次獲取的,每次可以獲取不同種類的資訊;對於後一種方式,例如,可以先獲取各節點的度值並據此生成索引向量,再獲取各節點的相鄰節點的標識以生成元素向量。 一般地,原始的圖資料保存於資料庫中,在這種情況下,需要通過存取資料庫,讀取得到各節點的資訊。為了避免重複讀取資料增加資料庫的負擔,叢集中的多個機器可以分別讀取不重複的一部分節點的資訊,進一步地,多個機器可以並行讀取資料庫,以快速獲取節點的資訊。 例如,可以由工作機叢集中的各工作機並行地、分別從資料庫讀取一部分節點的資訊,工作機叢集讀取的各節點的資訊進一步地同步至伺服器叢集處理。 S204:根據所述各節點的資訊,生成索引向量,所述索引向量中的元素包括一個或者多個所述節點的度的累加值。 S206:根據所述索引向量,生成元素向量,所述元素向量中的元素包括所述節點的相鄰節點的標識。 在本說明書實施例中,每個節點分別對應於索引向量中的至少一個元素,以及對應於元素向量中的至少一個元素。 各節點依據其特定資訊,具有一定的順序,以特定資訊是節點的標識為例。具體地,以數位作為節點的標識,用各節點的標識大小定義各節點的順序,例如,假定節點的標識為非負整數,且從0開始計數,順序最先的節點的標識為0、順序第二的節點的標識為1,依次類推。以下各實施例基於該例中的定義進行說明。 在本說明書實施例中,索引向量根據各節點的度值生成,其中,節點的度值等於該節點的相鄰節點的個數。元素向量根據索引向量中的元素,在空向量中插入各節點的向量節點的標識得到。 根據索引向量,能夠快速索引到任意節點對應的度的累加值(該節點以及該節點之前的節點的度值之和),進而再根據元素向量,能夠快速索引到該任意節點的任意相鄰節點的標識,從而,有利於高效地在圖資料中隨機漫步。 在本說明書實施例中,所提到的各種向量一般基於陣列實現。為了更好地適應於圖資料後續的可能變化(例如,節點增減、邊增減等),所述陣列較佳地是動態陣列,從而能夠根據圖資料的變化,便利地調整向量中的元素數量,而無需全量地重新生成向量。 陣列是實現向量的一種資料結構示例,並非唯一,例如,利用鏈表等其他資料結構也可能實現上述向量。 S208:根據所述索引向量和所述元素向量,生成隨機序列,所述隨機序列反映在所述圖資料中的隨機漫步。 在本說明書實施例中,隨機序列為多個節點的標識構成的序列,各標識在該隨機序列中的順序即為隨機漫步順序,隨機序列的最大長度一般由預定的隨機漫步步數決定。 在得到索引向量和元素向量後,可以相互獨立地多次執行步驟S208,進而得到多個相互獨立的隨機序列。例如,各工作機分別根據索引向量和元素向量,生成一個或者多個隨機序列。 通過圖2的方法,有利於減少對原始保存圖資料的資料庫的存取,索引向量和元素向量在生成後無需依賴該資料庫,通過索引向量和元素向量能夠快速索引節點的相鄰節點,該方法能夠適用於大規模圖資料且效率較高,由於基於叢集實施該方法,因此,還能夠進一步地提高效率。 基於圖2的方法,本說明書實施例還提供了該方法的一些具體實施方案,以及擴展方案,下面以圖1中的架構為例,進行說明。 在本說明書的實施例中,所述叢集可以包括伺服器叢集和工作機叢集,對於步驟S202,所述叢集獲取圖資料包含的各節點的資訊,具體可以包括: 所述工作機叢集從資料庫讀取圖資料包含的各節點的度值,其中,每個工作機讀取一部分節點的度值;各所述工作機分別根據自己讀取度值的節點的標識,從資料庫讀取所述節點的相鄰節點的標識。 例如,假定有標識分別為0~4的5個節點,度值分別為1、2、3、2、2,保存於資料庫中。工作機叢集包括工作機0、工作機1、工作機2,每個工作機分別從資料庫讀取一部分節點的度值;例如,工作機0讀取節點0和節點1的度值,分別為1、2;工作機1讀取節點2和節點3的度值,分別為3、2;工作機2讀取節點4的度值,為2。 在本說明書實施例中,每個工作機都讀取到部分資料,而非全量的資料,需要伺服器叢集、或者排程機、或者單一伺服器等指定的設備對各工作機讀取到的資料進行整合處理,得到以預定格式(例如向量等)表示的全量的資料,從而便於後續計算。 假定由伺服器叢集整合,對於步驟S204,所述根據所述各節點的資訊,生成索引向量,具體可以包括: 所述工作機叢集將所述各節點的度值向所述伺服器叢集同步;所述伺服器叢集根據所述各節點的標識和度值,生成度向量,所述度向量中的元素包括所述節點的度值;所述伺服器叢集根據所述度向量,通過累加計算生成索引向量; 其中,所述索引向量中的元素等於:所述元素在所述度向量中的對應元素及該對應元素前全部元素之和。 進一步地,伺服器叢集可以將索引向量分別同步給各工作機,用於後續計算。 沿用上例,結合圖3進行說明。圖3為本說明書實施例提供的一種實際應用場景下,基於叢集的索引向量生成流程示意圖。 在圖3中,資料庫中的資料表以節點的標識作為主鍵,記錄了各節點的度值及其相鄰節點的標識,其中,節點0的相鄰節點為節點1,節點1的相鄰節點為節點0、節點2,節點2的相鄰節點為節點1、節點3、節點4,節點3的相鄰節點為節點2、節點4、節點4的相鄰節點為節點2、節點3。工作機0~2如前所述,較佳地可以並行分別從資料庫讀取一部分節點的度值,讀取的各度值是按照對應節點的順序進行表示的。 每個工作機根據自己讀取的度值,得到度向量的一部分,在度向量中,第1個元素預設為0(為了便於後續計算),之後的元素按照節點順序分別可以記錄一個節點的度值。需要說明的是,度向量是度值的一種儲存格式示例,並非對本發明的限定。 工作機叢集將讀取的度值都同步至伺服器叢集進行合併,得到度向量:(0,1,2,3,2,2)。圖3中假定伺服器叢集包含伺服器0~2,各伺服器也可以對任務進行拆分以提高處理效率。 進一步地,通過對度向量中的元素進行累加計算,生成索引向量。例如,索引向量的第0個元素等於度向量的第0個元素,即0;索引向量的第1個元素等於度向量的第0、1個元素之和,即0+1=1;索引向量的第2個元素等於度向量的第0、1、2個元素之和,即0+1+2=3;索引向量的第3個元素等於度向量的第0、1、2、3個元素之和,即0+1+2+3=6;以此類推,得到索引向量:(0,1,3,6,8,10)。 生成索引向量後,伺服器叢集將索引向量分別同步給各工作機。 上面對索引向量的生成進行了說明,下面進一步地對元素向量的生成進行說明。 在本說明書實施例中,對於步驟S206,所述根據所述索引向量,生成元素向量,具體可以包括: 各所述工作機分別根據所述索引向量進行索引,通過根據索引到的節點的標識,將所述節點的相鄰節點的標識,對應地進行陣列元素插入操作,生成元素向量的一部分;所述工作機叢集將所述元素向量的各部分向所述伺服器叢集同步;所述伺服器叢集根據所述元素向量的各部分,生成所述元素向量。 可以看到,與度向量的生成類似,也是由各工作機獲得元素向量的一部分,再同步給伺服器叢集進行合併,得到元素向量。 元素向量中的元素是基於索引向量中的元素順序對應地進行排列的,具體的排列方式可以有多種。例如,可以依次將各節點的相鄰節點的標識分別作為一個元素在元素向量中順序排列;再例如,可以將每個節點的相鄰節點的標識儲存在一個鏈表中,再將每個鏈表分別作為一個元素在元素向量中順序排列;等等。通過陣列元素插入操作即可實現上述排列。 如此,能夠實現如下的多級索引且索引效率較高:從某節點的標識至索引向量中的對應元素,再從索引向量中的對應元素至元素向量中的對應元素;該元素向量中的對應元素包括該節點的至少一個相鄰節點的標識,從而實現從該節點至該至少一個相鄰節點的隨機漫步。 進一步地,伺服器叢集在生成元素向量後,將元素向量也同步給各工作機,則各工作機可以分別獨立地根據索引向量和元素向量,生成隨機序列。 進一步地沿用圖3的例子,結合圖4說明。圖4為本說明書實施例提供的一種實際應用場景下,基於叢集的元素向量生成流程示意圖。 在圖4中,各工作機分別讀取一部分節點的相鄰節點的標識,該讀取過程可以與讀取節點的度值的過程一同執行,也可以在生成索引向量之後再執行。 對於工作機0,所讀取度值的節點為節點0和節點1,相應地,再讀取這兩個節點的相鄰節點的標識,以向量可表示為(1,0,2),即為元素向量前面的一部分;對於工作機1,所讀取度值的節點為節點2和節點3,相應地,再讀取這兩個節點的相鄰節點的標識,以向量可表示為(1,3,4,2,4),即為元素向量中間的一部分;對於工作機2,所讀取度值的節點為節點4,相應地,再讀取這個節點的相鄰節點的標識,以向量可表示為(2,3),即為元素向量後面的一部分。 工作機叢集將元素向量的各部分都同步至伺服器叢集進行合併,得到元素向量:(1,0,2,1,3,4,2,4,2,3);伺服器叢集再將元素向量同步給各工作機。 在本說明書實施例中,對於步驟S208,所述根據所述索引向量和所述元素向量,生成隨機序列,具體可以包括: 所述工作機在所述各節點的標識中,隨機確定一個標識,作為目標節點的標識;根據目標節點的標識和所述索引向量,進行索引並計算,得到所述目標節點的度值;隨機確定一個小於所述目標節點的度值的非負整數,用於指示所述目標節點的第所述非負整數個相鄰節點;根據所述非負整數和所述元素向量,計算得到該相鄰節點的標識;通過將該相鄰節點重新作為目標節點進行反覆運算計算,生成由依次得到的各目標節點的標識構成的隨機序列。 前面已經提到,通過多級索引實現隨機漫步。在上一段中,根據隨機確定的一個節點的標識,在索引向量中進行第一級索引,得到該節點的度值;再根據該度值,隨機確定非負整數(用於隨機選擇該節點的一個相鄰節點),根據該非負整數,在元素向量中進行第二級索引,得到該相鄰節點的標識。從而可以實現從該節點隨機漫步到該相鄰節點。 進一步地沿用圖3和圖4的例子,結合圖5說明。圖5為本說明書實施例提供的一種實際應用場景下,基於叢集的隨機序列生成流程示意圖。 假定圖資料共包含個節點,第個所述節點的標識為,從0開始計數;對於步驟S208,所述根據所述索引向量和所述元素向量,生成隨機序列,具體可以包括: 所述工作機隨機生成一個屬於的整數,作為目標節點的標識,記作;按照公式,索引並計算得到所述目標節點的度值,記作,其中,表示標識為的節點的度值,表示所述索引向量;隨機生成一個屬於的整數,記作,用於指示所述目標節點的第個相鄰節點;按照公式,計算得到該相鄰節點的標識,其中,表示標識為的節點的第個相鄰節點的標識,表示所述元素向量;通過將該相鄰節點重新作為目標節點進行反覆運算計算,生成由依次得到的各目標節點的標識構成的隨機序列。 在圖5中,,假定隨機生成的屬於的整數為,即目標節點為節點2,按照公式,即;假定隨機生成的屬於的整數為,按照,即目標節點的第1個相鄰節點,為節點3。也即,能夠實現從節點2隨機漫步到節點3,進而將節點3作為目標節點反覆運算計算,繼續隨機漫步,如此,依次經過的多個節點的標識構成隨機序列。 在圖5中,預先設定隨機漫步步數為8,批數為5。用矩陣進行表示,隨機漫步步數例如為該矩陣的列數,批數為該矩陣的行數,該矩陣的每一行可以儲存一個隨機序列。 隨機漫步步數定義了一個隨機序列的最大長度,每當隨機序列達到該最大長度時,可以不依賴該隨機序列而開始生成下一個隨機序列。 批數定義了每個工作機在向資料庫寫入已生成前,生成隨機序列的最大個數,到達該最大個數時,工作機可以將自己已生成未寫入的多個隨機序列(表示為對應的矩陣)寫入資料庫。例如,圖5中工作機2當前已生成未寫入的隨機序列已經到達最大個數5,則可以將對應的矩陣寫入資料庫。 以圖5中工作機0生成的第一個隨機序列(3,4,3,2,4,2,3,2)為例,該隨機序列即表示依次經過下列節點的隨機漫步過程:節點3、節點4、節點3、節點2、節點4、節點2、節點3、節點2。 進一步地,還可以預先設定臨限值,用於限定整個工作機叢集生成的隨機序列的最大總數量。當到達該設定臨限值時,各工作機可以停止生成隨機序列。 另外,在實際應用中,工作機叢集中的某些工作機可能會出現異常,導致之前同步得到的索引向量和/或元素向量丟失。例如,若工作機將得到的向量只儲存在記憶體中,則宕機後記憶體中的資料會丟失。在這種情況下,當這些工作機恢復正常時,可以從伺服器叢集重新獲取丟失的向量。圖5中通過工作機1顯示了這種情況。 上面主要是基於叢集場景,對本說明書的方案進行說明的,本說明書的方案也可以脫離叢集場景。例如,基於同樣的思路,本說明書實施例還提供了一種隨機漫步方法的流程示意圖,如圖6所示。 圖6中的流程的執行主體可以是單一的計算設備,也可以是多個計算設備,該流程包括以下步驟: S602:獲取根據圖資料包含的各節點的資訊生成的索引向量,以及根據所述索引向量生成的元素向量,其中,所述索引向量中的元素包括一個或者多個所述節點的度的累加值,所述元素向量中的元素包括所述節點的相鄰節點的標識。 在步驟S602中,索引向量和元素向量具體由誰生成,本發明並不做限定。一般地,只要圖資料未發生變化,根據該圖資料已生成的索引向量和元素向量可以一直複用。 S604:根據所述索引向量和所述元素向量,生成隨機序列,所述隨機序列反映在所述圖資料中的隨機漫步。 基於同樣的思路,本說明書實施例還提供了上面各方法的對應裝置,如圖7、圖8所示。 圖7為本說明書實施例提供的對應於圖2的一種基於叢集的隨機漫步裝置的結構示意圖,該裝置屬於所述叢集,包括: 獲取模組701,獲取圖資料包含的各節點的資訊; 第一生成模組702,根據所述各節點的資訊,生成索引向量,所述索引向量中的元素包括一個或者多個所述節點的度的累加值; 第二生成模組703,根據所述索引向量,生成元素向量,所述元素向量中的元素包括所述節點的相鄰節點的標識; 第三生成模組704,根據所述索引向量和所述元素向量,生成隨機序列,所述隨機序列反映在所述圖資料中的隨機漫步。 可選地,所述叢集包括伺服器叢集和工作機叢集; 所述獲取模組701獲取圖資料包含的各節點的資訊,具體包括: 所述工作機叢集從資料庫讀取圖資料包含的各節點的度值,其中,每個工作機讀取一部分節點的度值; 各所述工作機分別根據自己讀取度值的節點的標識,從資料庫讀取所述節點的相鄰節點的標識。 可選地,所述第一生成模組702根據所述各節點的資訊,生成索引向量,具體包括: 所述工作機叢集將所述各節點的度值向所述伺服器叢集同步; 所述伺服器叢集根據所述各節點的標識和度值,生成度向量,所述度向量中的元素包括所述節點的度值; 所述伺服器叢集根據所述度向量,通過累加計算生成索引向量; 其中,所述索引向量中的元素等於:所述元素在所述度向量中的對應元素及該對應元素前全部元素之和。 可選地,所述第二生成模組703根據所述索引向量,生成元素向量,具體包括: 各所述工作機分別根據所述索引向量進行索引,通過根據索引到的節點的標識,將所述節點的相鄰節點的標識,對應地進行陣列元素插入操作,生成元素向量的一部分; 所述工作機叢集將所述元素向量的各部分向所述伺服器叢集同步; 所述伺服器叢集根據所述元素向量的各部分,生成所述元素向量。 可選地,所述第三生成模組704根據所述索引向量和所述元素向量,生成隨機序列前,所述伺服器叢集將所述索引向量和所述元素向量向各所述工作機同步。 可選地,所述第三生成模組704根據所述索引向量和所述元素向量,生成隨機序列,具體包括: 所述工作機在所述各節點的標識中,隨機確定一個標識,作為目標節點的標識; 根據目標節點的標識和所述索引向量,進行索引並計算,得到所述目標節點的度值; 隨機確定一個小於所述目標節點的度值的非負整數,用於指示所述目標節點的第所述非負整數個相鄰節點; 根據所述非負整數和所述元素向量,計算得到該相鄰節點的標識; 通過將該相鄰節點重新作為目標節點進行反覆運算計算,生成由依次得到的各目標節點的標識構成的隨機序列。 可選地,所述圖資料共包含個節點,第個所述節點的標識為,從0開始計數; 所述第三生成模組704根據所述索引向量和所述元素向量,生成隨機序列,具體包括: 所述工作機隨機生成一個屬於的整數,作為目標節點的標識,記作; 按照公式,索引並計算得到所述目標節點的度值,記作,其中,表示標識為的節點的度值,表示所述索引向量; 隨機生成一個屬於的整數,記作,用於指示所述目標節點的第個相鄰節點; 按照公式,計算得到該相鄰節點的標識,其中,表示標識為的節點的第個相鄰節點的標識,表示所述元素向量; 通過將該相鄰節點重新作為目標節點進行反覆運算計算,生成由依次得到的各目標節點的標識構成的隨機序列。 可選地,所述工作機生成由依次得到的各目標節點的標識構成的隨機序列,具體包括: 所述工作機當依次得到的各目標節點總數量達到預設的隨機漫步步數時,生成由所述依次得到的各目標節點的標識構成的隨機序列。 可選地,所述第三生成模組704生成隨機序列,具體包括: 各所述工作機分別生成隨機序列,直至生成的隨機序列總數量達到設定臨限值。 可選地,所述工作機若本地已有的所述索引向量和/或所述元素向量丟失,則重新從所述伺服器叢集獲取。 圖8為本說明書實施例提供的對應於圖6的一種隨機漫步裝置的結構示意圖,該裝置包括: 獲取模組801,獲取根據圖資料包含的各節點的資訊生成的索引向量,以及根據所述索引向量生成的元素向量; 生成模組802,根據所述索引向量和所述元素向量,生成隨機序列,所述隨機序列反映在所述圖資料中的隨機漫步; 其中,所述索引向量中的元素包括一個或者多個所述節點的度的累加值,所述元素向量中的元素包括所述節點的相鄰節點的標識。 基於同樣的思路,本說明書實施例還提供了對應於圖2的一種基於叢集的隨機漫步設備,該設備屬於所述叢集,包括: 至少一個處理器;以及, 與所述至少一個處理器通訊連接的記憶體;其中, 所述記憶體儲存有可被所述至少一個處理器執行的指令,所述指令被所述至少一個處理器執行,以使所述至少一個處理器能夠: 獲取圖資料包含的各節點的資訊; 根據所述各節點的資訊,生成索引向量,所述索引向量中的元素包括一個或者多個所述節點的度的累加值; 根據所述索引向量,生成元素向量,所述元素向量中的元素包括所述節點的相鄰節點的標識; 根據所述索引向量和所述元素向量,生成隨機序列,所述隨機序列反映在所述圖資料中的隨機漫步。 基於同樣的思路,本說明書實施例還提供了對應於圖6的一種隨機漫步設備,包括: 至少一個處理器;以及, 與所述至少一個處理器通訊連接的記憶體;其中, 所述記憶體儲存有可被所述至少一個處理器執行的指令,所述指令被所述至少一個處理器執行,以使所述至少一個處理器能夠: 獲取根據圖資料包含的各節點的資訊生成的索引向量,以及根據所述索引向量生成的元素向量; 根據所述索引向量和所述元素向量,生成隨機序列,所述隨機序列反映在所述圖資料中的隨機漫步; 其中,所述索引向量中的元素包括一個或者多個所述節點的度的累加值,所述元素向量中的元素包括所述節點的相鄰節點的標識。 基於同樣的思路,本說明書實施例還提供了對應於圖2的一種非揮發性電腦儲存媒體,儲存有電腦可執行指令,所述電腦可執行指令設置為: 獲取圖資料包含的各節點的資訊; 根據所述各節點的資訊,生成索引向量,所述索引向量中的元素包括一個或者多個所述節點的度的累加值; 根據所述索引向量,生成元素向量,所述元素向量中的元素包括所述節點的相鄰節點的標識; 根據所述索引向量和所述元素向量,生成隨機序列,所述隨機序列反映在所述圖資料中的隨機漫步。 基於同樣的思路,本說明書實施例還提供了對應於圖6的一種非揮發性電腦儲存媒體,儲存有電腦可執行指令,所述電腦可執行指令設置為: 獲取根據圖資料包含的各節點的資訊生成的索引向量,以及根據所述索引向量生成的元素向量; 根據所述索引向量和所述元素向量,生成隨機序列,所述隨機序列反映在所述圖資料中的隨機漫步; 其中,所述索引向量中的元素包括一個或者多個所述節點的度的累加值,所述元素向量中的元素包括所述節點的相鄰節點的標識。 上述對本說明書特定實施例進行了描述。其它實施例在所附申請專利範圍的範圍內。在一些情況下,在申請專利範圍中記載的動作或步驟可以按照不同於實施例中的順序來執行並且仍然可以實現期望的結果。另外,在附圖中描繪的過程不一定要求顯示的特定順序或者連續順序才能實現期望的結果。在某些實施方式中,多工處理和並行處理也是可以的或者可能是有利的。 本說明書中的各個實施例均採用遞進的方式描述,各個實施例之間相同相似的部分互相參見即可,每個實施例重點說明的都是與其他實施例的不同之處。尤其,對於裝置、設備、非揮發性電腦儲存媒體實施例而言,由於其基本相似於方法實施例,所以描述的比較簡單,相關之處參見方法實施例的部分說明即可。 本說明書實施例提供的裝置、設備、非揮發性電腦儲存媒體與方法是對應的,因此,裝置、設備、非揮發性電腦儲存媒體也具有與對應方法類似的有益技術效果,由於上面已經對方法的有益技術效果進行了詳細說明,因此,這裡不再贅述對應裝置、設備、非揮發性電腦儲存媒體的有益技術效果。 在20世紀90年代,對於一個技術的改進可以很明顯地區分是硬體上的改進(例如,對二極體、電晶體、開關等電路結構的改進)還是軟體上的改進(對於方法流程的改進)。然而,隨著技術的發展,當今的很多方法流程的改進已經可以視為硬體電路結構的直接改進。設計人員幾乎都通過將改進的方法流程程式設計到硬體電路中來得到相應的硬體電路結構。因此,不能說一個方法流程的改進就不能用硬體實體模組來實現。例如,可程式設計邏輯裝置(Programmable Logic Device, PLD)(例如現場可程式設計閘陣列(Field Programmable Gate Array,FPGA))就是這樣一種積體電路,其邏輯功能由用戶對裝置程式設計來確定。由設計人員自行程式設計來把一個數位系統“集成”在一片PLD上,而不需要請晶片製造廠商來設計和製作專用的積體電路晶片。而且,如今,取代手工地製作積體電路晶片,這種程式設計也多半改用“邏輯編譯器(logic compiler)”軟體來實現,它與程式開發撰寫時所用的軟體編譯器相類似,而要編譯之前的原始代碼也得用特定的程式設計語言來撰寫,此稱之為硬體描述語言(Hardware Description Language,HDL),而HDL也並非僅有一種,而是有許多種,如ABEL(Advanced Boolean Expression Language)、AHDL(Altera Hardware Description Language)、Confluence、CUPL(Cornell University Programming Language)、HDCal、JHDL(Java Hardware Description Language)、Lava、Lola、MyHDL、PALASM、RHDL(Ruby Hardware Description Language)等,目前最普遍使用的是VHDL (Very-High-Speed Integrated Circuit Hardware Description Language)與Verilog。本領域技術人員也應該清楚,只需要將方法流程用上述幾種硬體描述語言稍作邏輯程式設計並程式設計到積體電路中,就可以很容易得到實現該邏輯方法流程的硬體電路。 控制器可以按任何適當的方式實現,例如,控制器可以採取例如微處理器或處理器以及儲存可由該(微)處理器執行的電腦可讀程式碼(例如軟體或韌體)的電腦可讀媒體、邏輯閘、開關、專用積體電路(Application Specific Integrated Circuit,ASIC)、可程式設計邏輯控制器和嵌入微控制器的形式,控制器的例子包括但不限於以下微控制器:ARC 625D、Atmel AT91SAM、Microchip PIC18F26K20以及Silicone Labs C8051F320,記憶體控制器還可以被實現為記憶體的控制邏輯的一部分。本領域技術人員也知道,除了以純電腦可讀程式碼方式實現控制器以外,完全可以通過將方法步驟進行邏輯程式設計來使得控制器以邏輯閘、開關、專用積體電路、可程式設計邏輯控制器和嵌入微控制器等的形式來實現相同功能。因此這種控制器可以被認為是一種硬體部件,而對其內包括的用於實現各種功能的裝置也可以視為硬體部件內的結構。或者甚至,可以將用於實現各種功能的裝置視為既可以是實現方法的軟體模組又可以是硬體部件內的結構。 上述實施例闡明的系統、裝置、模組或單元,具體可以由電腦晶片或實體實現,或者由具有某種功能的產品來實現。一種典型的實現設備為電腦。具體的,電腦例如可以為個人電腦、膝上型電腦、蜂巢式電話、相機電話、智慧型電話、個人數位助理、媒體播放機、導航設備、電子郵件設備、遊戲控制台、平板電腦、可穿戴設備或者這些設備中的任何設備的組合。 為了描述的方便,描述以上裝置時以功能分為各種單元分別描述。當然,在實施本說明書時可以把各單元的功能在同一個或多個軟體和/或硬體中實現。 本領域內的技術人員應明白,本說明書實施例可提供為方法、系統、或電腦程式產品。因此,本說明書實施例可採用完全硬體實施例、完全軟體實施例、或結合軟體和硬體態樣的實施例的形式。而且,本說明書實施例可採用在一個或多個其中包含有電腦可用程式碼的電腦可用儲存媒體(包括但不限於磁碟記憶體、CD-ROM、光學記憶體等)上實施的電腦程式產品的形式。 本說明書是參照根據本說明書實施例的方法、設備(系統)、和電腦程式產品的流程圖和/或方塊圖來描述的。應理解可由電腦程式指令實現流程圖和/或方塊圖中的每一流程和/或方塊、以及流程圖和/或方塊圖中的流程和/或方塊的結合。可提供這些電腦程式指令到通用電腦、專用電腦、嵌入式處理機或其他可程式設計資料處理設備的處理器以產生一個機器,使得通過電腦或其他可程式設計資料處理設備的處理器執行的指令產生用於實現在流程圖一個流程或多個流程和/或方塊圖一個方塊或多個方塊中指定的功能的裝置。 這些電腦程式指令也可儲存在能引導電腦或其他可程式設計資料處理設備以特定方式工作的電腦可讀記憶體中,使得儲存在該電腦可讀記憶體中的指令產生包括指令裝置的製造品,該指令裝置實現在流程圖一個流程或多個流程和/或方塊圖一個方塊或多個方塊中指定的功能。 這些電腦程式指令也可裝載到電腦或其他可程式設計資料處理設備上,使得在電腦或其他可程式設計設備上執行一系列操作步驟以產生電腦實現的處理,從而在電腦或其他可程式設計設備上執行的指令提供用於實現在流程圖一個流程或多個流程和/或方塊圖一個方塊或多個方塊中指定的功能的步驟。 在一個典型的配置中,計算設備包括一個或多個處理器(CPU)、輸入/輸出介面、網路介面和記憶體。 記憶體可能包括電腦可讀媒體中的非永久性記憶體,隨機存取記憶體(RAM)和/或非揮發性記憶體等形式,如唯讀記憶體(ROM)或快閃記憶體(flash RAM)。記憶體是電腦可讀媒體的示例。 電腦可讀媒體包括永久性和非永久性、可移動和非可移動媒體可以由任何方法或技術來實現資訊儲存。資訊可以是電腦可讀指令、資料結構、程式的模組或其他資料。電腦的儲存媒體的例子包括,但不限於相變記憶體(PRAM)、靜態隨機存取記憶體(SRAM)、動態隨機存取記憶體(DRAM)、其他類型的隨機存取記憶體(RAM)、唯讀記憶體(ROM)、電可抹除可程式設計唯讀記憶體(EEPROM)、快閃記憶體或其他記憶體技術、唯讀光碟唯讀記憶體(CD-ROM)、數位多功能光碟(DVD)或其他光學儲存、磁盒式磁帶,磁帶磁磁片儲存或其他磁性存放裝置或任何其他非傳輸媒體,可用於儲存可以被計算設備存取的資訊。按照本文中的界定,電腦可讀媒體不包括暫存電腦可讀媒體(transitory media),如調變的資料訊號和載波。 還需要說明的是,術語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、商品或者設備不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、商品或者設備所固有的要素。在沒有更多限制的情況下,由語句“包括一個……”限定的要素,並不排除在包括所述要素的過程、方法、商品或者設備中還存在另外的相同要素。 本說明書可以在由電腦執行的電腦可執行指令的一般上下文中描述,例如程式模組。一般地,程式模組包括執行特定任務或實現特定抽象資料類型的常式、程式、物件、元件、資料結構等等。也可以在分散式運算環境中實踐本說明書,在這些分散式運算環境中,由通過通訊網路而被連接的遠端處理設備來執行任務。在分散式運算環境中,程式模組可以位於包括存放裝置在內的本地和遠端電腦儲存媒體中。 本說明書中的各個實施例均採用遞進的方式描述,各個實施例之間相同相似的部分互相參見即可,每個實施例重點說明的都是與其他實施例的不同之處。尤其,對於系統實施例而言,由於其基本相似於方法實施例,所以描述的比較簡單,相關之處參見方法實施例的部分說明即可。 以上所述僅為本說明書實施例而已,並不用於限制本發明。對於本領域技術人員來說,本發明可以有各種更改和變化。凡在本發明的精神和原理之內所作的任何修改、等同替換、改進等,均應包含在本發明的申請專利範圍的範圍之內。
S202-S208‧‧‧步驟S602-S604‧‧‧步驟701‧‧‧獲取模組702‧‧‧第一生成模組703‧‧‧第二生成模組704‧‧‧第三生成模組801‧‧‧獲取模組802‧‧‧生成模組
為了更清楚地說明本說明書實施例或現有技術中的技術方案,下面將對實施例或現有技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本說明書中記載的一些實施例,對於本領域普通技術人員來講,在不付出進步性勞動性的前提下,還可以根據這些附圖獲得其他的附圖。 圖1為本說明書的方案在一種實際應用場景下關於的一種整體架構示意圖; 圖2為本說明書實施例提供的一種基於叢集的隨機漫步方法的流程示意圖; 圖3為本說明書實施例提供的一種實際應用場景下,基於叢集的索引向量生成流程示意圖; 圖4為本說明書實施例提供的一種實際應用場景下,基於叢集的元素向量生成流程示意圖; 圖5為本說明書實施例提供的一種實際應用場景下,基於叢集的隨機序列生成流程示意圖; 圖6為本說明書實施例提供的一種隨機漫步方法的流程示意圖; 圖7為本說明書實施例提供的對應於圖2的一種基於叢集的隨機漫步裝置的結構示意圖; 圖8為本說明書實施例提供的對應於圖6的一種隨機漫步裝置的結構示意圖。
Claims (24)
- 一種基於叢集的隨機漫步方法,包括: 所述叢集獲取圖資料包含的各節點的資訊; 根據所述各節點的資訊,生成索引向量,所述索引向量中的元素包括一個或者多個所述節點的度的累加值; 根據所述索引向量,生成元素向量,所述元素向量中的元素包括所述節點的相鄰節點的標識; 根據所述索引向量和所述元素向量,生成隨機序列,所述隨機序列反映在所述圖資料中的隨機漫步。
- 如申請專利範圍第1項所述的方法,所述叢集包括伺服器叢集和工作機叢集; 所述叢集獲取圖資料包含的各節點的資訊,具體包括: 所述工作機叢集從資料庫讀取圖資料包含的各節點的度值,其中,每個工作機讀取一部分節點的度值; 各所述工作機分別根據自己讀取度值的節點的標識,從資料庫讀取所述節點的相鄰節點的標識。
- 如申請專利範圍第2項所述的方法,所述根據所述各節點的資訊,生成索引向量,具體包括: 所述工作機叢集將所述各節點的度值向所述伺服器叢集同步; 所述伺服器叢集根據所述各節點的標識和度值,生成度向量,所述度向量中的元素包括所述節點的度值; 所述伺服器叢集根據所述度向量,通過累加計算生成索引向量; 其中,所述索引向量中的元素等於:所述元素在所述度向量中的對應元素及該對應元素前全部元素之和。
- 如申請專利範圍第3項所述的方法,所述根據所述索引向量,生成元素向量,具體包括: 各所述工作機分別根據所述索引向量進行索引,通過根據索引到的節點的標識,將所述節點的相鄰節點的標識,對應地進行陣列元素插入操作,生成元素向量的一部分; 所述工作機叢集將所述元素向量的各部分向所述伺服器叢集同步; 所述伺服器叢集根據所述元素向量的各部分,生成所述元素向量。
- 如申請專利範圍第4項所述的方法,所述根據所述索引向量和所述元素向量,生成隨機序列前,所述方法還包括: 所述伺服器叢集將所述索引向量和所述元素向量向各所述工作機同步。
- 如申請專利範圍第2項所述的方法,所述根據所述索引向量和所述元素向量,生成隨機序列,具體包括: 所述工作機在所述各節點的標識中,隨機確定一個標識,作為目標節點的標識; 根據目標節點的標識和所述索引向量,進行索引並計算,得到所述目標節點的度值; 隨機確定一個小於所述目標節點的度值的非負整數,用於指示所述目標節點的第所述非負整數個相鄰節點; 根據所述非負整數和所述元素向量,計算得到該相鄰節點的標識; 通過將該相鄰節點重新作為目標節點進行反覆運算計算,生成由依次得到的各目標節點的標識構成的隨機序列。
- 如申請專利範圍第6項所述的方法,所述生成由依次得到的各目標節點的標識構成的隨機序列,具體包括: 當依次得到的各目標節點總數量達到預設的隨機漫步步數時,生成由所述依次得到的各目標節點的標識構成的隨機序列。
- 如申請專利範圍第2項所述的方法,所述生成隨機序列,具體包括: 各所述工作機分別生成隨機序列,直至生成的隨機序列總數量達到設定臨限值。
- 如申請專利範圍第6項所述的方法,所述方法還包括: 所述工作機若本地已有的所述索引向量和/或所述元素向量丟失,則重新從所述伺服器叢集獲取。
- 一種隨機漫步方法,包括: 獲取根據圖資料包含的各節點的資訊生成的索引向量,以及根據所述索引向量生成的元素向量; 根據所述索引向量和所述元素向量,生成隨機序列,所述隨機序列反映在所述圖資料中的隨機漫步; 其中,所述索引向量中的元素包括一個或者多個所述節點的度的累加值,所述元素向量中的元素包括所述節點的相鄰節點的標識。
- 一種基於叢集的隨機漫步裝置,所述裝置屬於所述叢集,包括: 獲取模組,獲取圖資料包含的各節點的資訊; 第一生成模組,根據所述各節點的資訊,生成索引向量,所述索引向量中的元素包括一個或者多個所述節點的度的累加值; 第二生成模組,根據所述索引向量,生成元素向量,所述元素向量中的元素包括所述節點的相鄰節點的標識; 第三生成模組,根據所述索引向量和所述元素向量,生成隨機序列,所述隨機序列反映在所述圖資料中的隨機漫步。
- 如申請專利範圍第12項所述的裝置,所述叢集包括伺服器叢集和工作機叢集; 所述獲取模組獲取圖資料包含的各節點的資訊,具體包括: 所述工作機叢集從資料庫讀取圖資料包含的各節點的度值,其中,每個工作機讀取一部分節點的度值; 各所述工作機分別根據自己讀取度值的節點的標識,從資料庫讀取所述節點的相鄰節點的標識。
- 如申請專利範圍第13項所述的裝置,所述第一生成模組根據所述各節點的資訊,生成索引向量,具體包括: 所述工作機叢集將所述各節點的度值向所述伺服器叢集同步; 所述伺服器叢集根據所述各節點的標識和度值,生成度向量,所述度向量中的元素包括所述節點的度值; 所述伺服器叢集根據所述度向量,通過累加計算生成索引向量; 其中,所述索引向量中的元素等於:所述元素在所述度向量中的對應元素及該對應元素前全部元素之和。
- 如申請專利範圍第14項所述的裝置,所述第二生成模組根據所述索引向量,生成元素向量,具體包括: 各所述工作機分別根據所述索引向量進行索引,通過根據索引到的節點的標識,將所述節點的相鄰節點的標識,對應地進行陣列元素插入操作,生成元素向量的一部分; 所述工作機叢集將所述元素向量的各部分向所述伺服器叢集同步; 所述伺服器叢集根據所述元素向量的各部分,生成所述元素向量。
- 如申請專利範圍第15項所述的裝置,所述第三生成模組根據所述索引向量和所述元素向量,生成隨機序列前,所述伺服器叢集將所述索引向量和所述元素向量向各所述工作機同步。
- 如申請專利範圍第13項所述的裝置,所述第三生成模組根據所述索引向量和所述元素向量,生成隨機序列,具體包括: 所述工作機在所述各節點的標識中,隨機確定一個標識,作為目標節點的標識; 根據目標節點的標識和所述索引向量,進行索引並計算,得到所述目標節點的度值; 隨機確定一個小於所述目標節點的度值的非負整數,用於指示所述目標節點的第所述非負整數個相鄰節點; 根據所述非負整數和所述元素向量,計算得到該相鄰節點的標識; 通過將該相鄰節點重新作為目標節點進行反覆運算計算,生成由依次得到的各目標節點的標識構成的隨機序列。
- 如申請專利範圍第17項所述的裝置,所述工作機生成由依次得到的各目標節點的標識構成的隨機序列,具體包括: 所述工作機當依次得到的各目標節點總數量達到預設的隨機漫步步數時,生成由所述依次得到的各目標節點的標識構成的隨機序列。
- 如申請專利範圍第13項所述的裝置,所述第三生成模組生成隨機序列,具體包括: 各所述工作機分別生成隨機序列,直至生成的隨機序列總數量達到設定臨限值。
- 如申請專利範圍第17項所述的裝置,所述工作機若本地已有的所述索引向量和/或所述元素向量丟失,則重新從所述伺服器叢集獲取。
- 一種隨機漫步裝置,包括: 獲取模組,獲取根據圖資料包含的各節點的資訊生成的索引向量,以及根據所述索引向量生成的元素向量; 生成模組,根據所述索引向量和所述元素向量,生成隨機序列,所述隨機序列反映在所述圖資料中的隨機漫步; 其中,所述索引向量中的元素包括一個或者多個所述節點的度的累加值,所述元素向量中的元素包括所述節點的相鄰節點的標識。
- 一種基於叢集的隨機漫步設備,所述設備屬於所述叢集,包括: 至少一個處理器;以及, 與所述至少一個處理器通訊連接的記憶體;其中, 所述記憶體儲存有可被所述至少一個處理器執行的指令,所述指令被所述至少一個處理器執行,以使所述至少一個處理器能夠: 獲取圖資料包含的各節點的資訊; 根據所述各節點的資訊,生成索引向量,所述索引向量中的元素包括一個或者多個所述節點的度的累加值; 根據所述索引向量,生成元素向量,所述元素向量中的元素包括所述節點的相鄰節點的標識; 根據所述索引向量和所述元素向量,生成隨機序列,所述隨機序列反映在所述圖資料中的隨機漫步。
- 一種隨機漫步設備,包括: 至少一個處理器;以及, 與所述至少一個處理器通訊連接的記憶體;其中, 所述記憶體儲存有可被所述至少一個處理器執行的指令,所述指令被所述至少一個處理器執行,以使所述至少一個處理器能夠: 獲取根據圖資料包含的各節點的資訊生成的索引向量,以及根據所述索引向量生成的元素向量; 根據所述索引向量和所述元素向量,生成隨機序列,所述隨機序列反映在所述圖資料中的隨機漫步; 其中,所述索引向量中的元素包括一個或者多個所述節點的度的累加值,所述元素向量中的元素包括所述節點的相鄰節點的標識。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
??201710932631.0 | 2017-10-10 | ||
CN201710932631.0A CN109658094B (zh) | 2017-10-10 | 2017-10-10 | 随机游走、基于集群的随机游走方法、装置以及设备 |
CN201710932631.0 | 2017-10-10 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201923628A TW201923628A (zh) | 2019-06-16 |
TWI687820B true TWI687820B (zh) | 2020-03-11 |
Family
ID=66101194
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW107128019A TWI687820B (zh) | 2017-10-10 | 2018-08-10 | 隨機漫步、基於叢集的隨機漫步方法、裝置以及設備 |
Country Status (6)
Country | Link |
---|---|
US (1) | US10776334B2 (zh) |
EP (1) | EP3648039A4 (zh) |
CN (1) | CN109658094B (zh) |
SG (1) | SG11202000911TA (zh) |
TW (1) | TWI687820B (zh) |
WO (1) | WO2019072063A1 (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11599578B2 (en) * | 2019-06-28 | 2023-03-07 | Microsoft Technology Licensing, Llc | Building a graph index and searching a corresponding dataset |
CN113612749B (zh) * | 2021-07-27 | 2022-04-01 | 华中科技大学 | 一种面向入侵行为的溯源数据聚类方法及装置 |
US20230297651A1 (en) * | 2022-03-21 | 2023-09-21 | Fujitsu Limited | Cost equalization spectral clustering |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW200420151A (en) * | 2002-12-09 | 2004-10-01 | Qualcomm Inc | Download and display of system tags in wireless communication systems |
WO2007100834A2 (en) * | 2006-02-27 | 2007-09-07 | The Regents Of The University Of California | Graph querying, graph motif mining and the discovery of clusters |
US9582766B2 (en) * | 2009-11-02 | 2017-02-28 | Google Inc. | Clustering query refinements by inferred user intent |
CN106777284A (zh) * | 2016-12-29 | 2017-05-31 | 南京邮电大学 | 一种基于标签信息的图游走表示方法 |
Family Cites Families (48)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6549896B1 (en) | 2000-04-07 | 2003-04-15 | Nec Usa, Inc. | System and method employing random walks for mining web page associations and usage to optimize user-oriented web page refresh and pre-fetch scheduling |
US7827182B1 (en) | 2004-06-02 | 2010-11-02 | Cisco Technology, Inc | Searching for a path to identify where to move entries among hash tables with storage for multiple entries per bucket during insert operations |
US8626775B1 (en) | 2005-01-14 | 2014-01-07 | Wal-Mart Stores, Inc. | Topic relevance |
US8396864B1 (en) | 2005-06-29 | 2013-03-12 | Wal-Mart Stores, Inc. | Categorizing documents |
US8498999B1 (en) | 2005-10-14 | 2013-07-30 | Wal-Mart Stores, Inc. | Topic relevant abbreviations |
US8849830B1 (en) | 2005-10-14 | 2014-09-30 | Wal-Mart Stores, Inc. | Delivering search results |
US8396884B2 (en) | 2006-02-27 | 2013-03-12 | The Regents Of The University Of California | Graph querying, graph motif mining and the discovery of clusters |
US20070203789A1 (en) | 2006-02-27 | 2007-08-30 | Microsoft Corporation | Designing hyperlink structures |
US20080097971A1 (en) | 2006-10-18 | 2008-04-24 | Telcordia Applied Research Center Taiwan Company | Peer-to-peer based secondary key search method and system for cluster database |
US7788254B2 (en) * | 2007-05-04 | 2010-08-31 | Microsoft Corporation | Web page analysis using multiple graphs |
US7818396B2 (en) | 2007-06-21 | 2010-10-19 | Microsoft Corporation | Aggregating and searching profile data from multiple services |
US20090070873A1 (en) | 2007-09-11 | 2009-03-12 | Yahoo! Inc. | Safe web based interactions |
TWI361984B (en) | 2008-11-04 | 2012-04-11 | Univ Nat Taiwan | Distributed multimedia access system and method |
US8122419B2 (en) | 2008-11-09 | 2012-02-21 | International Business Machines Corporation | System and method for three-dimensional variational capacitance calculation |
US8156129B2 (en) | 2009-01-15 | 2012-04-10 | Microsoft Corporation | Substantially similar queries |
US9171077B2 (en) | 2009-02-27 | 2015-10-27 | International Business Machines Corporation | Scaling dynamic authority-based search using materialized subgraphs |
US8073832B2 (en) | 2009-05-04 | 2011-12-06 | Microsoft Corporation | Estimating rank on graph streams |
CN101894123A (zh) | 2010-05-11 | 2010-11-24 | 清华大学 | 基于子图的链接相似度的快速近似计算系统和方法 |
US9092483B2 (en) * | 2010-10-19 | 2015-07-28 | Microsoft Technology Licensing, Llc | User query reformulation using random walks |
US8818918B2 (en) | 2011-04-28 | 2014-08-26 | International Business Machines Corporation | Determining the importance of data items and their characteristics using centrality measures |
US8856047B2 (en) | 2011-06-21 | 2014-10-07 | Microsoft Corporation | Fast personalized page rank on map reduce |
US8943011B2 (en) | 2011-06-28 | 2015-01-27 | Salesforce.Com, Inc. | Methods and systems for using map-reduce for large-scale analysis of graph-based data |
US8903824B2 (en) | 2011-12-09 | 2014-12-02 | International Business Machines Corporation | Vertex-proximity query processing |
CN103198177B (zh) | 2013-03-11 | 2015-08-12 | 清华大学 | 基于gpu的集成电路电容参数提取系统及方法 |
US8955129B2 (en) * | 2013-04-23 | 2015-02-10 | Duke University | Method and system for detecting fake accounts in online social networks |
EP2994826B1 (en) | 2013-05-07 | 2019-08-07 | Psigenics Corporation | Acquisition and assessment of classically non-inferable information |
US9704262B2 (en) | 2013-05-22 | 2017-07-11 | Siemens Aktiengesellschaft | Parameter estimation for mesh segmentation using random walks |
US9286396B2 (en) * | 2013-07-26 | 2016-03-15 | Microsoft Technology Licensing, Llc | Query expansion and query-document matching using path-constrained random walks |
CN103699617B (zh) * | 2013-12-16 | 2017-06-06 | 西安交通大学 | 一种基于随机游走的社区发现方法 |
CN104063507B (zh) | 2014-07-09 | 2017-10-17 | 时趣互动(北京)科技有限公司 | 一种图计算方法及系统 |
CN104158840B (zh) * | 2014-07-09 | 2017-07-07 | 东北大学 | 一种分布式计算图节点相似度的方法 |
CN104462374B (zh) * | 2014-12-09 | 2018-06-05 | 深圳大学 | 一种广义最大度随机游走图抽样方法 |
US9805138B2 (en) * | 2015-02-06 | 2017-10-31 | Xerox Corporation | Efficient calculation of all-pair path-based distance measures |
US10747740B2 (en) * | 2015-03-24 | 2020-08-18 | Kyndi, Inc. | Cognitive memory graph indexing, storage and retrieval |
US11627199B2 (en) | 2016-01-05 | 2023-04-11 | Schneider Electric USA, Inc. | System and methods for creating a geospatial network model in a client environment |
CN105741175B (zh) * | 2016-01-27 | 2019-08-20 | 电子科技大学 | 一种对在线社交网络中账户进行关联的方法 |
CN107179940B (zh) * | 2016-03-10 | 2020-06-19 | 阿里巴巴集团控股有限公司 | 一种任务执行的方法及装置 |
US10304244B2 (en) | 2016-07-08 | 2019-05-28 | Microsoft Technology Licensing, Llc | Motion capture and character synthesis |
CN106844426A (zh) | 2016-12-09 | 2017-06-13 | 中电科华云信息技术有限公司 | 基于随机游走人员亲密度的计算系统及方法 |
CN106991133B (zh) | 2017-03-13 | 2019-08-06 | 南京邮电大学 | 一种基于重启随机游走模型的活跃用户群组推荐方法 |
CN107248095A (zh) | 2017-04-14 | 2017-10-13 | 北京小度信息科技有限公司 | 推荐方法及装置 |
CN107145977B (zh) | 2017-04-28 | 2020-07-31 | 电子科技大学 | 一种对在线社交网络用户进行结构化属性推断的方法 |
US20190066054A1 (en) | 2017-08-24 | 2019-02-28 | Linkedln Corporation | Accuracy of member profile retrieval using a universal concept graph |
US20190114373A1 (en) | 2017-10-13 | 2019-04-18 | Facebook, Inc. | Scalable candidate selection for recommendations |
US11797838B2 (en) | 2018-03-13 | 2023-10-24 | Pinterest, Inc. | Efficient convolutional network for recommender systems |
US11281964B2 (en) | 2018-06-27 | 2022-03-22 | National Technology & Engineering Solutions Of Sandia, Llc | Devices and methods for increasing the speed and efficiency at which a computer is capable of modeling a plurality of random walkers using a particle method |
US11409922B2 (en) | 2018-06-27 | 2022-08-09 | National Technology & Engineering Solutions Of Sandia, Llc | Devices and methods for increasing the speed and efficiency at which a computer is capable of modeling a plurality of random walkers using a density method |
CN109934306A (zh) | 2019-04-04 | 2019-06-25 | 西南石油大学 | 基于随机游走的多标签属性值划分方法和装置 |
-
2017
- 2017-10-10 CN CN201710932631.0A patent/CN109658094B/zh active Active
-
2018
- 2018-08-10 TW TW107128019A patent/TWI687820B/zh active
- 2018-09-11 SG SG11202000911TA patent/SG11202000911TA/en unknown
- 2018-09-11 EP EP18865577.3A patent/EP3648039A4/en not_active Withdrawn
- 2018-09-11 WO PCT/CN2018/104922 patent/WO2019072063A1/zh unknown
-
2020
- 2020-01-07 US US16/736,673 patent/US10776334B2/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW200420151A (en) * | 2002-12-09 | 2004-10-01 | Qualcomm Inc | Download and display of system tags in wireless communication systems |
WO2007100834A2 (en) * | 2006-02-27 | 2007-09-07 | The Regents Of The University Of California | Graph querying, graph motif mining and the discovery of clusters |
US9582766B2 (en) * | 2009-11-02 | 2017-02-28 | Google Inc. | Clustering query refinements by inferred user intent |
CN106777284A (zh) * | 2016-12-29 | 2017-05-31 | 南京邮电大学 | 一种基于标签信息的图游走表示方法 |
Also Published As
Publication number | Publication date |
---|---|
US20200142875A1 (en) | 2020-05-07 |
WO2019072063A1 (zh) | 2019-04-18 |
CN109658094A (zh) | 2019-04-19 |
US10776334B2 (en) | 2020-09-15 |
CN109658094B (zh) | 2020-09-18 |
EP3648039A4 (en) | 2020-05-13 |
EP3648039A1 (en) | 2020-05-06 |
TW201923628A (zh) | 2019-06-16 |
SG11202000911TA (en) | 2020-03-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI691855B (zh) | 基於區塊鏈的資料處理方法及設備 | |
TWI709049B (zh) | 隨機漫步、基於叢集的隨機漫步方法、裝置以及設備 | |
EP3561674B1 (en) | Method and apparatus for verifying block data in a blockchain | |
KR102125177B1 (ko) | 블록체인 기반 데이터 처리 방법 및 장치 | |
TW201909009A (zh) | 基於區塊鏈的資料處理方法及設備 | |
TWI687820B (zh) | 隨機漫步、基於叢集的隨機漫步方法、裝置以及設備 | |
TW201918916A (zh) | 隨機游走、基於分散式系統的隨機游走方法、裝置以及設備 | |
US10846483B2 (en) | Method, device, and apparatus for word vector processing based on clusters | |
CN107451204B (zh) | 一种数据查询方法、装置及设备 | |
TWI680467B (zh) | 隨機遊走、基於集群的隨機遊走方法、裝置以及設備 | |
CN108959330A (zh) | 一种数据库的处理、数据查询方法及设备 | |
CN110083602A (zh) | 一种基于hive表的数据存储及数据处理的方法及装置 | |
CN104239576A (zh) | 查找HBase表列值中所有行的方法和装置 | |
CN110175020A (zh) | 框架属性信息扩展方法和装置、框架加载方法和装置 | |
CN116226225A (zh) | 单号生成方法、装置及设备 | |
CN110851416A (zh) | 数据存储性能分析方法和装置、宿主机确定方法和装置 |