資料儲存方法及資料查詢方法
本發明關於資料處理技術領域,尤其關於資料儲存方法和資料查詢方法。
傳統的應用於資料庫管理系統中的查詢語言(如,SQL),都是針對結構化資料,以實現資料的存取、查詢、更新和管理。然而,傳統的語義檢索方法,一般都是基於資料本身,並不會去理解資料背後的含義。
隨著人工智慧領域的飛速發展,音視訊、影像、文本等非結構化資料得到越來越多的應用。對於這些非結構化資料,其本身的語義要透過識別才能得知。因此,對於這類資料的處理,常需要得到其背後的含義。
在現有的一些資料庫系統中,可以支持向量的儲存和檢索。這樣,在使用者使用該資料庫查詢非結構化資料時,以影像為例,需要在資料庫外部,呼叫專門的服務將影像轉換成向量,然後再將向量存入資料庫,在後期查詢/檢索時,使用者也透過向量來進行檢索。這種處理方式,一方面過程比較繁雜,另一方面對使用者要求過高,使用者需要將影像轉換成向量,並且向量對於使用者來說,沒有直觀的含義,這就增加了使用者成本。
鑒於此,需要一種既能夠支持結構化資料、又能夠支持非結構化資料的資料管理方法,來實現對資料的儲存、查詢/檢索等。
為此,本發明提供了一種資料儲存方法及資料查詢方法,以力圖解決或至少緩解上面存在的至少一個問題。
根據本發明的一個方面,提供了一種資料儲存方法,包括步驟:判斷待儲存的資料是否屬於預定資料類型;若該資料屬於預定資料類型,則將該資料儲存至第一儲存區域並獲取該資料的目錄位址;提取該資料的特徵向量;以及將該資料的特徵向量與目錄位址關聯儲存至第二儲存區域。
可選地,根據本發明的資料儲存方法還包括步驟:若經判斷後確認待儲存的資料不屬於預定資料類型,則將該資料儲存至第二儲存區域。
可選地,在根據本發明的資料儲存方法中,提取該資料的特徵向量的步驟包括:將該資料的目錄位址輸入特徵提取模型,以輸出該資料的特徵向量。
可選地,根據本發明的資料儲存方法還包括步驟:獲取資料的描述資訊,並與該資料的目錄位址關聯儲存,其中描述資訊至少包括:用於提取特徵向量的特徵提取模型和用於計算特徵相似度的度量方法。
可選地,在根據本發明的資料儲存方法中,提取資料的特徵向量的步驟還包括:基於資料的描述資訊和目錄位址,提取出該資料對應的特徵向量,更具體地,根據資料的描述資訊,獲取該資料對應的用於提取特徵向量的特徵提取模型;將該目錄位址輸入該特徵提取模型,以輸出該資料對應的特徵向量。
可選地,在根據本發明的資料儲存方法中,預定資料類型包括以下資料類型中的一種或多種:文本、圖片、XML、HTML、影像、音訊、視訊。
根據本發明的另一個方面,提供了一種資料儲存裝置,包括:判斷單元,適於判斷待儲存的資料是否屬於預定資料類型;第一儲存單元,適於在該資料屬於預定資料類型時,儲存該資料並產生該資料的目錄位址;特徵提取單元,適於提取該資料的特徵向量;以及第二儲存單元,適於關聯儲存資料的特徵向量與目錄位址。
可選地,根據本發明的資料儲存裝置還包括:中繼資料儲存單元,適於在待儲存資料屬於預定資料類型時,獲取資料的描述資訊,並與該資料的目錄位址關聯儲存。
根據本發明的再一個方面,提供了一種資料查詢方法,包括步驟:產生至少一個待查詢的特徵向量;確定與待查詢的特徵向量相似的至少一個特徵向量;獲取與所確定的至少一個特徵向量相關聯的至少一個目錄位址;以及確定所獲取的至少一個目錄位址所指向的至少一個資料,作為目標資料。
根據本發明的再一個方面,提供了一種資料查詢方法,包括步驟:獲取至少一個待查詢的特徵向量;確定與待查詢的特徵向量相似的至少一個特徵向量;獲取與所確定的至少一個特徵向量相關聯的至少一個目錄位址;以及確定所獲取的至少一個目錄位址所指向的至少一個資料,作為目標資料。
根據本發明的又一個方面,提供了一種資料查詢裝置,包括:判斷單元,適於判斷查詢資訊中是否包含預定資料類型;特徵計算單元,適於基於查詢資訊,產生至少一個待查詢的特徵向量,還適於確定與待查詢的特徵向量相似的至少一個特徵向量;第一查詢單元,適於從第二儲存區域中獲取與所確定的至少一個特徵向量相關聯的至少一個目錄位址;第二查詢單元,適於從第一儲存區域中確定所獲取的至少一個目錄位址所指向的至少一個資料,作為目標資料。
根據本發明的又一個方面,提供了一種資料管理系統,包括:如上所述的資料儲存裝置和如上所述的資料查詢裝置。
根據本發明的又一個方面,提供了一種電腦設備,包括:至少一個處理器;和儲存有程式指令的記憶體,其中,程式指令被配置為適於由至少一個處理器執行,程式指令包括用於執行如上所述的資料儲存方法和資料查詢方法的指令。
根據本發明的又一個方面,提供了一種儲存有程式指令的可讀儲存媒體,當程式指令被電腦設備讀取並執行時,使得該電腦設備執行如上所述的資料儲存方法和資料查詢方法。
根據本發明的方案,將結構化資料與非結構化資料分別儲存,如,在第一儲存區域內儲存非結構化資料,在第二儲存區域內儲存結構化資料;並透過內置的特徵提取服務來產生非結構化資料的特徵向量,將其與非結構化資料的儲存位址(即目錄位址)關聯儲存至第二儲存區域。這樣就可以直接支持各種非結構化資料的儲存。同時,基於這種資料儲存方式,除了能夠支持結構化資料的查詢外,還可以支持對各種非結構化資料基於語義的查詢。此外,使用者不需要深入瞭解相關的深度學習演算法和特徵提取模型,能夠有效降低使用者的理解和使用成本。
上述說明僅是本發明技術方案的概述,為了能夠更清楚瞭解本發明的技術手段,而可依照說明書的內容予以實施,並且為了讓本發明的上述和其它目的、特徵和優點能夠更明顯易懂,以下特舉本發明的具體實施方式。
下面將參照附圖更詳細地描述本公開的示例性實施例。雖然附圖中顯示了本公開的示例性實施例,然而應當理解,可以以各種形式實現本公開而不應被這裡闡述的實施例所限制。相反,提供這些實施例是為了能夠更透徹地理解本公開,並且能夠將本公開的範圍完整的傳達給本領域的技術人員。
圖1示出了根據本發明一個實施例的資料管理系統100的環境示意圖。如圖1所示,資料管理系統100與用戶端200之間通訊連接。雖然在圖1中僅僅示出了3個用戶端200,但是應當理解,在實踐中,存在有相當大量的用戶端200,這個用戶端200具有各自形式,包括但不限於行動終端、個人電腦、個人數位助理等。本發明不受限於用戶端200的類型,只要使用者可以利用用戶端200向資料管理系統100發出儲存資料的請求及/或查詢資料的請求,並接收系統100返回的結果在用戶端200中顯示即可。
例如,用戶端200可以是電腦設備,透過安裝在電腦設備上的應用向系統100發出儲存資料的請求,將結構化資料及/或非結構化資料存入系統100中對應的位置。同時,系統100又可以利用這些已儲存的資料為用戶端200提供查詢/檢索服務。又如,用戶端200可以是行動終端,透過安裝在行動終端上的應用向系統100發出查詢資料的請求,並且在行動終端的界面上顯示查詢結果。
圖2示出了根據本發明一個實施例的資料管理系統100的示意圖。如圖2所示,根據本發明實施例的資料管理系統100包括資料儲存裝置110和資料查詢裝置120。根據本發明的實施方式,資料儲存裝置110主要用於儲存資料,在根據本發明的實施例中,所儲存的資料既可以是結構化的資料,也可以是諸如文本、圖片、XML、HTML、影像、音訊、視訊類的非結構化資料。當使用者發起儲存資料的操作請求時,回應於使用者儲存資料的操作,根據待儲存資料的資料類型將該資料存入相應的儲存區域。根據一種實施例,若待儲存資料屬於非結構化資料(例如文本、圖片、XML、HTML、影像、音訊、視訊),則將該資料存入第一儲存區域;若待儲存資料屬於結構化資料,則將該資料存入第二儲存區域。同時,提取第一儲存區域內所儲存資料的特徵向量,並將特徵向量與該資料的目錄位址(即,該資料在第一儲存區域的位置)關聯儲存在第二儲存區域內。
資料查詢裝置120主要用來供使用者查詢/檢索資料。在根據本發明的實施例中,使用者透過輸入查詢資訊來進行查詢,該查詢資訊中可以包括多個查詢條件。當使用者發起查詢/檢索資料的請求時,回應於使用者操作,獲取使用者輸入的查詢資訊,並判斷該查詢資訊中是否包含預定資料類型,若包含預定資料類型,則根據查詢資訊產生待查詢的特徵向量。當然,使用者輸入的查詢資訊中,也可以包含待查詢的特徵向量。這樣,資料查詢裝置120在判斷查詢資訊中包含預定資料類型時,直接獲取待查詢的特徵向量。或者,資料查詢裝置120可以從外部獲取查詢資訊對應的特徵向量。本發明的實施例對此不做過多限制。而後,從第二儲存區域內所儲存的特徵向量中為待查詢的特徵向量匹配到至少一個特徵向量,並獲取與其相關聯的目錄位址,進而根據目錄位址所指向的位址從第一儲存區域中取出相關的資料,即為查詢結果。
圖2進一步示出了根據本發明一個實施例的資料儲存裝置110和資料查詢裝置120的示意圖。
如圖2,資料儲存裝置110包括:判斷單元111、第一儲存單元115、特徵提取單元113、第二儲存單元117和中繼資料儲存單元119。其中,第二儲存單元117同傳統的資料庫結構相同,用來儲存結構化資料;而對於非結構化資料,將其存入第一儲存單元115。特徵提取單元113用於提取非結構化資料的特徵向量,作為非結構化資料的抽象,以供查詢時使用。
當使用者輸入待儲存的資料時,先由判斷單元111判斷該待儲存的資料是否屬於預定資料類型。根據本發明的實施例,預定資料類型是非結構化資料類型,包括以下資料類型中的一種或多種:文本、圖片、XML、HTML、影像、音訊、視訊、各類報表等等。
根據本發明的一種實施方式,在經判斷單元111判斷後確認待儲存的資料屬於預定資料類型時,第一儲存單元115儲存該資料,並將該資料在第一儲存單元115中的儲存位置作為該資料的目錄位址,進行儲存。假設待儲存的資料是一張圖片,將其存入第一儲存單元115並產生一個目錄位址,例如是,/home/ex/000001.jpg。而後,特徵提取單元113基於該目錄位址,提取出該資料的特徵向量。再交由第二儲存單元117,由其關聯儲存該資料的特徵向量與目錄位址。在根據本發明的一種實施例中,特徵提取單元113中預先儲存有至少一個特徵提取模型。在提取特徵向量時,在一種實施例中,特徵提取單元113將資料的目錄位址輸入特徵提取模型,輸出的就是該資料的特徵向量;在又一種實施例中,特徵提取單元113也可以將資料本身輸入到特徵提取模型中,並將輸出的特徵向量作為該資料的特徵向量。應當指出,本發明實施例對提取資料的特徵向量的方式不做過多限制。本領域技術人員可以根據實際應用場景選擇適當的特徵提取方式,來實現根據本發明的資料儲存方案。由於利用資料的目錄位址產生資料的特徵向量,能夠有效降低特徵提取時的計算量,以下以將資料的目錄位址輸入特徵提取模型得到特徵向量為例,進行說明。在根據本發明的實施例中,若待儲存的資料屬於預定資料類型,那麼待儲存的資料除了資料本身外,還攜帶有該資料的相關描述資訊。描述資訊例如是:指定用於提取該資料的特徵向量的特徵提取模型和用於計算該資料的特徵相似度的度量方法。根據一種實施例,特徵提取模型可以採用各種神經網路模型(如CNN、Resnet等,不限於此),特徵相似度度量方法可以採用歐式距離(Euclidean distance)、Consine相似度等,不限於此。當待儲存資料屬於預定資料類型時,中繼資料儲存單元119會獲取該資料的描述資訊,並關聯儲存該資料的描述資訊和目錄位址。這樣,特徵提取單元113就可以基於資料的描述資訊和目錄位址,提取出該資料對應的特徵向量。具體地,透過呼叫描述資訊中指定的特徵提取模型,提取出該資料的特徵向量。可選地,特徵提取單元113根據資料的描述資訊中所指定的特徵提取模型,提取出相應的embedding的特徵向量,作為對該資料的抽象。
此外,由於特徵提取單元113中預存有至少一個特徵提取模型,故在根據本發明的實施例中,還包含了預先訓練產生這些特徵提取模型的過程。以下給出一種訓練產生特徵提取模型的過程,但僅作為示例,本發明的實施例不限於此。
首先,構造預訓練的特徵提取模型,並設置初始的模型參數。之後,將訓練樣本(如,採集多個影像作為訓練樣本)輸入到預訓練的特徵提取模型中,並根據輸出的結果對模型參數進行微調,以產生新的特徵提取模型,重複上述步驟,直到特徵提取模型的輸出滿足預定條件(可以是計算模型輸出與目標輸出之間的損失值,當損失值達到某個條件時,確認滿足預定條件;也可以是在迭代訓練一定次數後,確認滿足預定條件),訓練結束。此時產生的特徵提取模型就作為訓練好的特徵提取模型,並儲存在特徵提取單元113中。
在根據本發明的一些實施例中,在第一儲存單元115每次存入資料時,特徵提取單元113就同步地提取該資料的特徵向量,並將其與目錄位址關聯儲存至第二儲存單元117中。然而,這種方式會增加每次儲存資料的時間。故在根據本發明的又一些實施例中,採用異步的方式提取資料的特徵向量,即,先將待儲存的資料儲存至第一儲存單元115,並獲取對應的目錄位址,而後定時(假設在每天的空閒時段,如每天淩晨1:00-5:00,不限於此)對第一儲存單元115中新存入的資料進行特徵提取,產生各資料對應的特徵向量,再將特徵向量與目錄位址關聯儲存到第二儲存單元117。
根據本發明的另一種實施方式,在經判斷單元111判斷後,確認待儲存的資料不屬於預定資料類型時,第二儲存單元117直接儲存該資料。換句話說,若待儲存的資料是結構化資料,則直接將其存入第二儲存單元117中。
繼續如圖2,資料查詢裝置120包括:判斷單元121、特徵計算單元123、第一查詢單元125和第二查詢單元127。
當使用者輸入查詢資訊來進行查詢時,判斷單元121判斷該查詢資訊中是否包含預定資料類型。根據一種實施例,查詢資訊中可以包含至少一個查詢條件,例如,查詢資訊是:查詢“與影像A的相似度大於0.8且關於影像的評價是‘裙子不錯’”的影像,則,其中包含2個查詢條件,分別是:與影像A的相似度大於0.8、關於影像的評價是‘裙子不錯’,同時還可以確認該查詢資訊中待查詢的目標資料是影像,屬於預定資料類型。
根據本發明的實施方式,若經判斷單元121判斷後確認查詢資訊中不包含預定資料類型,則按照傳統的資料查詢方式從上述的第二儲存單元117中查詢到滿足查詢條件的目標資料;若經判斷單元121判斷後確認查詢資訊中包含預定資料類型,則透過執行如下過程來查詢到滿足查詢條件的目標資料。
也就是說,根據本發明的實施方式,使用者可以輸入多個查詢條件,這些查詢條件可以是基於結構化資料的傳統的查詢,也可以是基於非結構化資料的查詢,由判斷單元121對各查詢條件進行判斷後確定採用何種方式進行資料查詢。例如,使用者可以在應用界面上同時上傳一張影像、輸入一段語音、輸入一段文字,以期最終得到滿足各查詢條件的目標資料。
特徵計算單元123基於查詢資訊,產生至少一個待查詢的特徵向量。根據本發明的實施例,可以採用兩種方式來產生待查詢的特徵向量。第一種方式,與前文所述的資料儲存裝置110提取特徵向量的方式相同,回應於查詢資訊,將查詢資訊中所包含的各非結構化資料分別暫存,得到對應的目錄位址,作為待查詢的目錄位址;而後,基於這些待查詢的目錄位址,分別產生各自的待查詢的特徵向量。可選地,將待查詢的目錄位址輸入特徵提取模型,輸出其對應的待查詢的特徵向量。以前文的查詢資訊的示例為例,將影像A和文字“裙子不錯”分別進行暫存,得到對應的待儲存目錄位址,記作URL1和URL2,再將URL1和URL2分別輸入到特徵提取模型中,得到各自對應的待查詢的特徵向量。第二種方式是,直接將查詢資訊中包含的非結構化資料輸入到特徵提取模型中,輸出對應的待查詢的特徵向量。以前文的查詢資訊的示例為例,將影像A輸入到特徵提取模型中,輸出其對應的待查詢的特徵向量;將文字“裙子不錯”輸入特徵提取模型中,輸出其對應的待查詢的特徵向量。當然,如前文所述,特徵計算單元123也可以直接獲取至少一個待查詢的特徵向量。例如,查詢資訊中包含了待查詢資訊的特徵向量。
應當指出,特徵提取模型可以是使用者在輸入查詢資訊時一併指定的,也可以是在資料查詢裝置120中預先配置好的(例如,對於影像類的資料,採用CNN模型;對於文字類的資料,採用ResNet模型,等等),還可以採用同一個固定的特徵提取模型來產生所有待查詢的特徵向量。此外,特徵計算單元123可以呼叫特徵提取單元113中的相關特徵提取模型來執行提取特徵向量的步驟,本發明的實施例對此不作過多限制。關於特徵提取模型的更多內容,可參考前文相關描述。
特徵計算單元123進一步分別確定與待查詢的特徵向量相似的至少一個特徵向量。根據一種實施例,針對每個待查詢的特徵向量,特徵計算單元123根據指定的計算特徵相似度的度量方法,從第二儲存區域中分別確定出與該待查詢的特徵向量相似的至少一個特徵向量。在本發明的實施例中,第二儲存區域即第二儲存單元117所對應的儲存區域,其中關聯儲存了非結構化資料的特徵向量及其目錄位址。如前文所述,中繼資料儲存單元119中關聯儲存了資料的目錄位址和描述資訊,而描述資訊中還指定了用於計算特徵相似度的度量方法。因此,特徵計算單元123可以依據第二儲存區域中所儲存的各資料對應的計算特徵相似度的度量方法,來計算待查詢的特徵向量與該資料的特徵向量之間的相似度,並確定出相似度滿足查詢條件的至少一個特徵向量。
而後,第一查詢單元125分別從第二儲存區域中獲取與所確定的至少一個特徵向量相關聯的至少一個目錄位址。根據本發明的實施例,第一查詢單元125與第二儲存單元117保持通訊,以從用於儲存結構化資料的第二儲存單元117中獲取特徵向量所關聯的目錄位址。
接著,第二查詢單元127從第一儲存區域中確定出所獲取的至少一個目錄位址所指向的至少一個資料,作為目標資料。根據本發明的實施例,第二查詢單元127與第一儲存單元115保持通訊,以根據目錄位址從用於儲存非結構化資料的第一儲存單元115中獲取對應的資料。
需要說明的是,圖2僅是示例性的,在實際應用中,判斷單元111和判斷單元121可以被設置成同一個單元,用來判斷所接收到的資訊中是否有屬於預定資料類型的資料。特徵提取單元113和特徵計算單元123可以被設置成同一個單元,用來提取資料的特徵向量、並計算特徵向量之間的相似度。第一查詢單元125也可以被實現為第二儲存單元117中的一個模組,同樣,第二查詢單元127也可以被實現為第一儲存單元115中的一個模組,以分別從第二儲存區域和第一儲存區域中獲取對應的資料。同時,在其它實施例中,在系統100中可以存在更少、附加或不同的組件。
根據本發明的資料管理系統100,在第一儲存區域內儲存非結構化資料,在第二儲存區域內儲存結構化資料,並透過內置的特徵提取服務來產生非結構化資料的特徵向量,將其與非結構化資料的儲存位址(即目錄位址)關聯儲存至第二儲存區域。這樣,資料管理系統100可以直接支持各種非結構化資料的儲存。同時,基於這種資料儲存方式,系統100除了可以支持結構化資料的查詢外,還可以支持對各種非結構化資料基於語義的查詢。此外,使用者不需要深入瞭解相關的深度學習演算法和特徵提取模型,能夠有效降低使用者的理解和使用成本。
根據本發明的實施方式,資料管理系統100可以透過如下所述的一個或多個電腦設備300來實現。在一些實施例中,資料管理系統100及其中各組成部分,如資料儲存裝置110、資料查詢裝置120均可以透過如下所述的電腦設備300來實現。
圖3示出了根據本發明一個實施例的電腦設備300的示意圖。
如圖3所示,在基本的配置302中,電腦設備300典型地包括系統記憶體306和一個或者多個處理器304。記憶體匯流排308可以用於在處理器304和系統記憶體306之間的通訊。
取決於期望的配置,處理器304可以是任何類型的處理,包括但不限於:微處理器(µP)、微控制器(µC)、數位資訊處理器(DSP)或者它們的任何組合。處理器304可以包括諸如一級快取記憶體310和二級快取記憶體312之類的一個或者多個級別的快取記憶體、處理器核心314和暫存器316。示例的處理器核心314可以包括運算邏輯單元(ALU)、浮點數單元(FPU)、數位信號處理核心(DSP核心)或者它們的任何組合。示例的記憶體控制器318可以與處理器304一起使用,或者在一些實現中,記憶體控制器318可以是處理器304的一個內部部分。
取決於期望的配置,系統記憶體306可以是任意類型的記憶體,包括但不限於:揮發性記憶體(諸如RAM)、非揮發性記憶體(諸如ROM、快閃記憶體等)或者它們的任何組合。系統記憶體306可以包括作業系統320、一個或者多個應用322以及程式資料324。在一些實施方式中,應用322可以佈置為在作業系統上由一個或多個處理器304利用程式資料324執行指令。
電腦設備300還可以包括有助於從各種介面設備(例如,輸出設備342、周邊介面344和通訊設備346)到基本配置302經由匯流排/介面控制器330的通訊的介面匯流排340。示例的輸出設備342包括圖形處理單元348和音訊處理單元350。它們可以被配置為有助於經由一個或者多個A/V端口352與諸如顯示器或者喇叭之類的各種外部設備進行通訊。示例周邊介面344可以包括串列埠控制器354和平行埠控制器356,它們可以被配置為有助於經由一個或者多個I/O端口358和諸如輸入設備(例如,鍵盤、滑鼠、筆、語音輸入設備、觸控輸入設備)或者其他周邊(例如打印機、掃描儀等)之類的外部設備進行通訊。示例的通訊設備346可以包括網路控制器360,其可以被佈置為便於經由一個或者多個通訊端口364與一個或者多個其他電腦設備362透過網路通訊鏈路的通訊。
網路通訊鏈路可以是通訊媒體的一個示例。通訊媒體通常可以體現為在諸如載波或者其他傳輸機制之類的調變資料信號中的電腦可讀指令、資料結構、程式模組,並且可以包括任何資訊遞送媒體。“調變資料信號”可以是這樣的信號,它的資料集中的一個或者多個或者它的改變可以在信號中編碼資訊的方式進行。作為非限制性的示例,通訊媒體可以包括諸如有線網路或者專線網路之類的有線媒體,以及諸如聲音、射頻(RF)、微波、紅外線(IR)或者其它無線媒體在內的各種無線媒體。這裡使用的術語電腦可讀媒體可以包括儲存媒體和通訊媒體二者。
電腦設備300可以實現為伺服器,例如檔案伺服器、資料庫伺服器、應用程式伺服器和WEB伺服器等,也可以實現為包括桌面電腦和筆記型電腦配置的個人電腦。當然,電腦設備300也可以實現為小尺寸便攜(或者行動)電子設備的一部分。在根據本發明的實施例中,電腦設備300被配置為執行根據本發明的資料儲存方法400和資料查詢方法500。其中,電腦設備300的應用322中包含執行根據本發明的方法400和方法500的多條程式指令。
在下文中將參考圖4和5進一步詳細描述透過資料管理系統100管理資料儲存和查詢的方法400和500。
圖4示出了根據本發明一個實施例的資料儲存方法400的流程圖。以下將結合圖2及上文對資料儲存裝置110的相關介紹,詳細介紹資料儲存裝置110執行方法400的過程。
如圖4所示,方法400始於步驟S410。在步驟S410中,判斷待儲存的資料是否屬於預定資料類型。如前文所述,非結構化資料就是屬於預定資料類型的資料,預定資料類型例如可以包括以下資料類型中的一種或多種:文本、圖片、XML、HTML、影像、音訊、視訊。
若經判斷後確認該待儲存的資料不屬於預定資料類型,則確認該資料為結構化資料,在隨後的步驟S420中,將該資料儲存至第二儲存區域(即,第二儲存單元117所對應的儲存區域)。
若經判斷後確認該待儲存的資料屬於預定資料類型,則在隨後的步驟S430中,將該資料儲存至第一儲存區域(即,第一儲存單元115所對應的儲存區域),並獲取該資料的儲存位置作為該資料的目錄位址。
隨後在步驟S440中,提取對應資料的特徵向量。
根據一種實施例,將資料的目錄位址輸入特徵提取模型,輸出的就是該資料的特徵向量。根據又一種實施例,也可以將資料本身輸入到特徵提取模型,以輸出該資料的特徵向量。此外,特徵提取模型可以是系統固定的,也可以是使用者指定的,本發明的實施例對此不做過多限制。一般地,特徵提取模型基於卷積神經網路,如CNN。
根據另一種實施例,使用者在輸入待儲存的資料時,會一併定義該資料的中繼資料,即該資料的描述資訊。在根據本發明的實施例中,描述資訊包括:用於提取特徵向量的特徵提取模型。資料儲存裝置110可以透過下拉選單等方式向使用者展示預存的特徵提取模型,以供使用者選擇其中的一個特徵提取模型,作為裝置110提取該資料的特徵向量的模型。關於如何訓練產生預存的特徵提取模型的過程,可參見前文對於裝置110的相關描述,此處不做贅述。
這樣,在步驟S440中,基於該資料的描述資訊和目錄位址,提取出該資料對應的特徵向量。進一步地,先根據資料的描述資訊,獲取該資料對應的用於提取特徵向量的特徵提取模型;再將該資料的目錄位址輸入該特徵提取模型,以輸出該資料對應的特徵向量。
另外,資料的描述資訊除了特徵提取模型外,還可以包括:用於計算特徵相似度的度量方法,以便於在後續資料查詢的過程中,計算該資料的特徵向量與要查詢的資料的特徵向量的相似度。
隨後在步驟S450中,將資料的特徵向量與目錄位址關聯儲存至第二儲存區域(即,第二儲存單元117所對應的儲存區域)。
圖5示出了根據本發明一個實施例的資料查詢方法500的流程圖。以下將結合圖2及上文對資料查詢裝置120的相關介紹,詳細介紹資料查詢裝置120執行方法500的過程。
如圖5所示,方法500始於步驟S510。在步驟S510中,回應於使用者輸入的查詢資訊,判斷該查詢資訊中是否包含預定資料類型。預定資料類型包含非結構化資料的資料類型,例如:文本、圖片、XML、HTML、影像、音訊、視訊。
如前文所述,查詢資訊中包含了至少一個查詢條件,根據查詢條件可以確定出要查詢的資料屬於結構化資料還是非結構化資料,即判斷出查詢資訊中是否包含預定資料類型。
若經判斷後確認查詢資訊中包含了非預定資料類型,則在隨後的步驟S520中,按照傳統的結構化資料的查詢方法從第二儲存區域中獲取目標資料。
若經判斷後確認查詢資訊中包含了預定資料類型,則在隨後的步驟S530中,產生至少一個待查詢的特徵向量。
如前文所述,在根據本發明的實施方式中,可以採用兩種方式來產生待查詢的特徵向量。第一種方式,與方法400中所述的提取特徵向量的方式相同,回應於查詢資訊,將查詢資訊中所包含的各個非結構化資料分別暫存,得到對應的目錄位址(即儲存位址),作為待查詢的目錄位址;而後,基於這些待查詢的目錄位址,分別產生各自的待查詢的特徵向量。可選地,將待查詢的目錄位址輸入特徵提取模型,輸出其對應的待查詢的特徵向量。第二種方式是,直接將查詢資訊中包含的非結構化資料(如,影像)輸入到特徵提取模型中,輸出對應的待查詢的特徵向量。採用第一種方式能夠最大限度地保證特徵向量的獲取方式一致,但是會增加暫存,採用第二種方式能夠節省暫存,提高計算效率。在實際應用中,本領域技術人員可結合實際場景選擇合適的特徵提取方式及特徵提取模型,本發明的實施例對此不做限制。
需要說明的是,特徵提取模型可以是使用者在輸入查詢資訊時一併指定的,也可以是在資料查詢裝置120中預先配置好的(例如,對於影像類的資料,採用CNN模型;對於文字類的資料,採用ResNet模型,不限於此),可以與執行方法400時採用的特徵提取模型相一致,還可以採用同一個固定的特徵提取模型來產生所有待查詢的特徵向量。關於特徵提取模型的更多內容,可參考前文相關描述。
在又一些實施例中,使用者在輸入查詢資訊時,也可以一併輸入待查詢資訊所對應的特徵向量,或者,呼叫外部的特徵提取模型來產生查詢資訊對應的待查詢的特徵向量。這樣,若經判斷後確認查詢資訊中包含了預定資料類型,則直接獲取至少一個待查詢的特徵向量。
隨後在步驟S540中,確定與待查詢的特徵向量相似的至少一個特徵向量。
具體地,從第二儲存區域(即第二儲存單元117所對應的儲存區域)中確定與待查詢的特徵向量相似的至少一個特徵向量。
如前文所述,中繼資料儲存單元119中關聯儲存了資料的目錄位址和描述資訊,而描述資訊中還指定了用於計算特徵相似度的度量方法。因此,在步驟S540中,可以依據第二儲存區域中所儲存的各資料對應的計算特徵相似度的度量方法,來計算待查詢的特徵向量與該資料的特徵向量之間的相似度,並確定出相似度滿足查詢條件的至少一個特徵向量。
隨後在步驟S550中,獲取與所確定的至少一個特徵向量相關聯的至少一個目錄位址。
如前文所述,第二儲存區域中關聯儲存了非結構化資料的特徵向量及其目錄位址。在經步驟S540獲取到特徵向量後,進一步從第二儲存區域中獲取與該特徵向量相關聯的目錄位址。
隨後在步驟S560中,確定所獲取的至少一個目錄位址所指向的至少一個資料,作為目標資料。
如前文所述,第一儲存區域中關聯儲存了非結構化資料本身及其目錄位址,故根據所獲取的至少一個目錄位址,就可以從第一儲存區域中確定出各目錄位址所指向的各個資料,作為目標資料。
這裡描述的各種技術可結合硬體或軟體,或者它們的組合一起實現。從而,本發明的方法和設備,或者本發明的方法和設備的某些方面或部分可採取嵌入有形媒介,例如可行動硬碟、隨身碟、軟碟、CD-ROM或者其它任意機器可讀的儲存媒體中的程式碼(即指令)的形式,其中當程式被載入諸如電腦之類的機器,並被所述機器執行時,所述機器變成實踐本發明的設備。
在程式碼在可程式電腦上執行的情況下,電腦設備一般包括處理器、處理器可讀的儲存媒體(包括揮發性和非揮發性記憶體及/或儲存元件),至少一個輸入裝置,和至少一個輸出裝置。其中,記憶體被配置用於儲存程式碼;處理器被配置用於根據該記憶體中儲存的所述程式碼中的指令,執行本發明的資料儲存方法及/或資料查詢方法。
以示例而非限制的方式,可讀媒體包括可讀儲存媒體和通訊媒體。可讀儲存媒體儲存諸如電腦可讀指令、資料結構、程式模組或其它資料等資訊。通訊媒體一般以諸如載波或其它傳輸機制等已調變資料信號來體現電腦可讀指令、資料結構、程式模組或其它資料,並且包括任何資訊傳遞媒體。以上的任一種的組合也包括在可讀媒體的範圍之內。
在此處所提供的說明書中,演算法和顯示不與任何特定電腦、虛擬系統或者其它設備固有相關。各種通用系統也可以與本發明的示例一起使用。根據上面的描述,構造這類系統所要求的結構是顯而易見的。此外,本發明也不針對任何特定程式語言。應當明白,可以利用各種程式語言實現在此描述的本發明的內容,並且上面對特定語言所做的描述是為了披露本發明的最佳實施方式。
在此處所提供的說明書中,說明了大量具體細節。然而,能夠理解,本發明的實施例可以在沒有這些具體細節的情況下被實踐。在一些實例中,並未詳細示出公知的方法、結構和技術,以便不模糊對本說明書的理解。
類似地,應當理解,為了精簡本公開並幫助理解各個發明方面中的一個或多個,在上面對本發明的示例性實施例的描述中,本發明的各個特徵有時被一起分組到單個實施例、圖、或者對其的描述中。然而,並不應將該公開的方法解釋成反映如下意圖:即所要求保護的本發明要求比在每個申請專利範圍中所明確記載的特徵更多特徵。更確切地說,如下面的申請專利範圍所反映的那樣,發明方面在於少於前面公開的單個實施例的所有特徵。因此,遵循具體實施方式的申請專利範圍由此明確地併入該具體實施方式,其中每個申請專利範圍本身都作為本發明的單獨實施例。
本領域那些技術人員應當理解在本文所公開的示例中的設備的模組或單元或組件可以佈置在如該實施例中所描述的設備中,或者可替換地可以定位在與該示例中的設備不同的一個或多個設備中。前述示例中的模組可以組合為一個模組或者此外可以分成多個子模組。
本領域那些技術人員可以理解,可以對實施例中的設備中的模組進行自適應性地改變並且把它們設置在與該實施例不同的一個或多個設備中。可以把實施例中的模組或單元或組件組合成一個模組或單元或組件,以及此外可以把它們分成多個子模組或子單元或子組件。除了這樣的特徵及/或過程或者單元中的至少一些是相互排斥之外,可以採用任何組合對本說明書(包括伴隨的申請專利範圍、摘要和附圖)中公開的所有特徵以及如此公開的任何方法或者設備的所有過程或單元進行組合。除非另外明確陳述,本說明書(包括伴隨的申請專利範圍、摘要和附圖)中公開的每個特徵可以由提供相同、等同或相似目的的替代特徵來代替。
此外,本領域的技術人員能夠理解,儘管在此所述的一些實施例包括其它實施例中所包括的某些特徵而不是其它特徵,但是不同實施例的特徵的組合意味著處於本發明的範圍之內並且形成不同的實施例。例如,在下面的申請專利範圍中,所要求保護的實施例的任意之一都可以以任意的組合方式來使用。
此外,所述實施例中的一些在此被描述成可以由電腦系統的處理器或者由執行所述功能的其它裝置實施的方法或方法元素的組合。因此,具有用於實施所述方法或方法元素的必要指令的處理器形成用於實施該方法或方法元素的裝置。此外,裝置實施例的在此所述的元素是如下裝置的例子:該裝置用於實施由為了實施該發明的目的的元素所執行的功能。
如在此所使用的那樣,除非另行規定,使用序數詞“第一”、“第二”、“第三”等等來描述普通對象僅僅表示關於類似對象的不同實例,並且並不意圖暗示這樣被描述的對象必須具有時間上、空間上、排序方面或者以任意其它方式的給定順序。
儘管根據有限數量的實施例描述了本發明,但是受益於上面的描述,本技術領域內的技術人員明白,在由此描述的本發明的範圍內,可以設想其它實施例。此外,應當注意,本說明書中使用的語言主要是為了可讀性和教導的目的而選擇的,而不是為了解釋或者限定本發明的主題而選擇的。因此,在不偏離所附申請專利範圍的範圍和精神的情況下,對於所屬技術領域中具有通常知識者來說許多修改和變更都是顯而易見的。對於本發明的範圍,對本發明所做的公開是說明性的而非限制性的,本發明的範圍由所附申請專利範圍限定。
100:資料管理系統
200:用戶端
110:資料儲存裝置
111:判斷單元
113:特徵提取單元
115:第一儲存單元
117:第二儲存單元
119:中繼資料儲存單元
120:資料查詢裝置
121:判斷單元
123:特徵計算單元
125:第一查詢單元
127:第二查詢單元
300:電腦設備
302:基本配置
304:處理器
306:系統記憶體
308:記憶體匯流排
310:一級快取記憶體
312:二級快取記憶體
314:處理器核心
316:暫存器
318:記憶體控制器
320:作業系統
322:應用
324:程式資料
330:電腦設備
332:儲存設備
334:儲存介面匯流排
336:可移除記憶體
338:不可移除記憶體
340:介面匯流排
342:輸出設備
344:周邊介面
346:通訊設備
348:圖形處理單元
350:音訊處理單元
352:A/V端口
354:串列埠控制器
356:平行埠控制器
358:I/O端口
360:網路控制器
362:電腦設備
364:通訊端口
S410:步驟
S420:步驟
S430:步驟
S440:步驟
400:方法
S510:步驟
S520:步驟
S530:步驟
S540:步驟
S550:步驟
500:方法
為了實現上述以及相關目的,本文結合下面的描述和附圖來描述某些說明性方面,這些方面指示了可以實踐本文所公開的原理的各種方式,並且所有方面及其等效方面旨在落入所要求保護的主題的範圍內。透過結合附圖閱讀下面的詳細描述,本公開的上述以及其它目的、特徵和優勢將變得更加明顯。遍及本公開,相同的附圖標記通常指代相同的部件或元素。
[圖1]示出了根據本發明一個實施例的資料管理系統100的環境示意圖;
[圖2]示出了根據本發明一個實施例的資料管理系統100的示意圖;
[圖3]示出了根據本發明一個實施例的電腦設備300的示意圖;
[圖4]示出了根據本發明一個實施例的資料儲存方法400的流程圖;以及
[圖5]示出了根據本發明一個實施例的資料查詢方法500的流程圖。
400:方法