譯文 | 布加迪
在過(guò)去的50年里,關(guān)系數(shù)據(jù)庫(kù)一直是世界上一些最關(guān)鍵的應(yīng)用軟件的基礎(chǔ)。雖然市面上還有其他數(shù)據(jù)庫(kù),比如鍵值數(shù)據(jù)庫(kù)、文檔數(shù)據(jù)庫(kù)和圖形數(shù)據(jù)庫(kù),但關(guān)系數(shù)據(jù)庫(kù)依然是最受歡迎的。其主要原因是,SQL或關(guān)系數(shù)據(jù)庫(kù)語(yǔ)言對(duì)初學(xué)者來(lái)說(shuō)學(xué)習(xí)起來(lái)很容易,對(duì)專家來(lái)說(shuō)實(shí)施起來(lái)很高效。
然而隨著我們進(jìn)入人工智能新時(shí)代,存儲(chǔ)結(jié)構(gòu)化數(shù)據(jù)已經(jīng)不夠了。如今世界上80%的數(shù)據(jù)是非結(jié)構(gòu)化數(shù)據(jù),包括原始文本、圖片、音頻、視頻及其他各種文件類型。這些非結(jié)構(gòu)化數(shù)據(jù)含有大量關(guān)鍵信息,我們無(wú)法使用當(dāng)前的關(guān)系數(shù)據(jù)庫(kù)系統(tǒng)來(lái)檢索這些信息。好消息是,機(jī)器學(xué)習(xí)領(lǐng)域的最新進(jìn)展使我們能夠以前所未有的方式來(lái)理解非結(jié)構(gòu)化數(shù)據(jù),我們可以利用這個(gè)機(jī)會(huì)使這項(xiàng)技術(shù)變得更普及。
面向非結(jié)構(gòu)化數(shù)據(jù)的關(guān)系數(shù)據(jù)庫(kù)
本文將介紹Superinsight,這是一種擁有內(nèi)置機(jī)器學(xué)習(xí)功能的關(guān)系數(shù)據(jù)庫(kù)。Superinsight讓了解SQL的任何人都可以針對(duì)非結(jié)構(gòu)化數(shù)據(jù)運(yùn)行查詢。
Superinsight的核心概念如下:
Superinsight建立在PostgreSQL之上,因此它擁有PostgreSQL的所有功能和機(jī)器學(xué)習(xí)能力。
Superinsight可自動(dòng)分析和索引存儲(chǔ)在數(shù)據(jù)類型為[TEXT]的列中的任何數(shù)據(jù)。
原始文本數(shù)據(jù)作為值來(lái)存儲(chǔ),而基于文件的數(shù)據(jù)(比如圖片)作為實(shí)際位置的引用來(lái)存儲(chǔ)。
安裝
Superinsight可以作為獨(dú)立機(jī)器來(lái)運(yùn)行,也可以作為Kubernetes之類的編排框架的一部分來(lái)運(yùn)行。本演示將使用獨(dú)立版本。
Docker是安裝Superinsight的最方便方式。運(yùn)行該命令前,記得修改用戶名和密碼。
復(fù)制
docker run \
--name superinsight-db-standalone \
-p 5432:5432 \
-e SUPERINSIGHT_USER=admin \
-e SUPERINSIGHT_PASSWORD=password \
-e ENV_IMAGE_TO_LABEL=True \
superinsight/superinsight-db-standalone:latest
為了本文這個(gè)演示,我們將設(shè)置標(biāo)志ENV_IMAGE_TO_LABEL=True,這個(gè)選項(xiàng)讓我們可以基于文本搜索圖片。
連接
一旦Docker容器開始運(yùn)行,您就可以使用PostgreSQL協(xié)議和默認(rèn)數(shù)據(jù)庫(kù)Superinsight通過(guò)端口5432連接到Superinsight。
復(fù)制
postgres://admin:password@127.0.0.1:5432/superinsight
存儲(chǔ)和搜索非結(jié)構(gòu)化數(shù)據(jù)
Superinsight可以使用標(biāo)準(zhǔn)SQL來(lái)存儲(chǔ)結(jié)構(gòu)化數(shù)據(jù)和非結(jié)構(gòu)化數(shù)據(jù)。Superinsight將只分析存儲(chǔ)在數(shù)據(jù)類型為[TEXT]的列中的非結(jié)構(gòu)化數(shù)據(jù)。在下面例子中,我們將使用Flipkart產(chǎn)品數(shù)據(jù)集。
創(chuàng)建表
標(biāo)準(zhǔn)的CREATE TABLE語(yǔ)句可用于創(chuàng)建表。由于我們只希望Superinsight分析名稱、圖片和描述下面的幾列,作為非結(jié)構(gòu)化數(shù)據(jù)進(jìn)行分析,于是我們?yōu)檫@些列使用數(shù)據(jù)類型[TEXT]。此外,每個(gè)表都必須有一個(gè)主鍵,這是Superinsight的要求。
復(fù)制
CREATE TABLE mldb.product (
_id serial PRIMARY KEY,
category varchar(500),
brand varchar(500),
name TEXT,
image TEXT,
description TEXT,
price float8,
url varchar(500)
);
插入記錄
標(biāo)準(zhǔn)SQL Insert語(yǔ)句可用于插入記錄。名稱和描述這兩列的值存儲(chǔ)在數(shù)據(jù)庫(kù)中,但至于圖片,我們存儲(chǔ)的是圖片URL。Superinsight將基于每個(gè)圖片URL自動(dòng)讀取和索引圖片。在本例中,我們將為數(shù)據(jù)庫(kù)添加20條記錄。SQL腳本可以從這里下載:https://docs.superinsight.ai/setup/dataset/?ref=hackernoon.com#products。
原始文本的語(yǔ)義搜索
我們將在表和預(yù)構(gòu)建模型之間使用JOIN語(yǔ)句創(chuàng)建語(yǔ)義搜索查詢。關(guān)鍵字ON表明使用哪一列作為語(yǔ)義搜索模型的輸入。WHERE關(guān)鍵字用于指定要比較的值。最后,我們可以使用predictions.core作為ORDER BY,對(duì)最相關(guān)的結(jié)果進(jìn)行排序。
注意:在我們第一次搜索之前,Superinsight必須將最新的語(yǔ)義搜索模型下載到您的數(shù)據(jù)庫(kù)中。這個(gè)過(guò)程可能需要一兩分鐘,快慢取決于網(wǎng)速。
復(fù)制
SELECT predictions.score, mldb.product.image, mldb.product.name,
mldb.product.description
FROM mldb.product
JOIN model.semantic_search
ON model.semantic_search.inputs = mldb.product.description
WHERE model.semantic_search.similar = 'Something to sit on'
ORDER BY predictions.score DESC

我們對(duì)“可以坐的東西”進(jìn)行語(yǔ)義搜索,得到四個(gè)得分大于0.11的沙發(fā)床記錄。Superinsight與其他關(guān)系數(shù)據(jù)庫(kù)之間最顯著的區(qū)別是,結(jié)果由理解數(shù)據(jù)上下文的機(jī)器學(xué)習(xí)模型來(lái)評(píng)分,從而獲得豐富得多的搜索結(jié)果。
圖片到圖片的語(yǔ)義搜索
圖片搜索就像搜索原始文本一樣。只需要更改WHERE子句值和ON子句條件。我們將使用圖片url作為搜索值,基于圖片相似度查找記錄。
復(fù)制
SELECT predictions.score, mldb.product.image, mldb.product.name,
mldb.product.description
FROM mldb.product
JOIN model.semantic_search
ON model.semantic_search.inputs = mldb.product.image
WHERE model.semantic_search.similar =
'http://img5a.flixcart.com/image/short/u/4/a/altht-3p-21-alisha-38-
original-imaeh2d5vm5zbtgg.jpeg'
ORDER BY predictions.score DESC

注意,第一張圖片的得分是1,因?yàn)樗c我們要找的圖片一模一樣。我們可以看到下面五張圖片非常相似,所以它們的得分都高于0.87。
文本到圖片的語(yǔ)義搜索
我們還可以通過(guò)用文本描述圖片的上下文來(lái)搜索圖片。在下面例子中,我們尋找“女性服裝”圖片。
復(fù)制
SELECT predictions.score, mldb.product.image,
mldb.product.name, mldb.product.description
FROM mldb.product
JOIN model.semantic_search
ON model.semantic_search.inputs = mldb.product.image
WHERE model.semantic_search.similar = 'woman dress'
ORDER BY predictions.score DESC

結(jié)語(yǔ)
Superinsight使存儲(chǔ)和搜索非結(jié)構(gòu)化數(shù)據(jù)變得很簡(jiǎn)單。由于Superinsight基于PostgreSQL,任何支持PostgreSQL協(xié)議的現(xiàn)有應(yīng)用軟件和數(shù)據(jù)可視化工具現(xiàn)在都可以使用Superinsight。欲進(jìn)一步了解Superinsight,請(qǐng)點(diǎn)擊下面的鏈接:
文檔:https://docs.superinsight.ai
GitHub:https://github.com/superinsight/superinsight-db
原文標(biāo)題:Using a Relational Database to Query Unstructured Data,作者:Nelson Chu
文章內(nèi)容僅供閱讀,不構(gòu)成投資建議,請(qǐng)謹(jǐn)慎對(duì)待。投資者據(jù)此操作,風(fēng)險(xiǎn)自擔(dān)。
海報(bào)生成中...
海藝AI的模型系統(tǒng)在國(guó)際市場(chǎng)上廣受好評(píng),目前站內(nèi)累計(jì)模型數(shù)超過(guò)80萬(wàn)個(gè),涵蓋寫實(shí)、二次元、插畫、設(shè)計(jì)、攝影、風(fēng)格化圖像等多類型應(yīng)用場(chǎng)景,基本覆蓋所有主流創(chuàng)作風(fēng)格。
9月9日,國(guó)際權(quán)威市場(chǎng)調(diào)研機(jī)構(gòu)英富曼(Omdia)發(fā)布了《中國(guó)AI云市場(chǎng),1H25》報(bào)告。中國(guó)AI云市場(chǎng)阿里云占比8%位列第一。
9月24日,華為坤靈召開“智能體驗(yàn),一屏到位”華為IdeaHub千行百業(yè)體驗(yàn)官計(jì)劃發(fā)布會(huì)。
IDC今日發(fā)布的《全球智能家居清潔機(jī)器人設(shè)備市場(chǎng)季度跟蹤報(bào)告,2025年第二季度》顯示,上半年全球智能家居清潔機(jī)器人市場(chǎng)出貨1,2萬(wàn)臺(tái),同比增長(zhǎng)33%,顯示出品類強(qiáng)勁的市場(chǎng)需求。