自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

知識圖譜+向量數(shù)據(jù)庫:打造更智能的RAG系統(tǒng)

人工智能
本文將探討如何結(jié)合知識圖譜和向量數(shù)據(jù)庫構(gòu)建更智能的圖RAG系統(tǒng),讓AI回答更準確、更可靠。

在當(dāng)今AI時代,檢索增強生成(RAG)已成為提升大語言模型回答質(zhì)量的關(guān)鍵技術(shù)。本文將探討如何結(jié)合知識圖譜和向量數(shù)據(jù)庫構(gòu)建更智能的圖RAG系統(tǒng),讓AI回答更準確、更可靠。

圖RAG是什么?為什么需要它?

想象一下,傳統(tǒng)RAG就像是一個勤奮但視野有限的圖書管理員,只能根據(jù)關(guān)鍵詞匹配找到相關(guān)書籍。而圖RAG則像是一位博學(xué)多才的專家,不僅知道每本書的內(nèi)容,還了解它們之間錯綜復(fù)雜的關(guān)聯(lián)。

傳統(tǒng)RAG雖然能從海量文檔中檢索相關(guān)片段,但它就像戴著眼罩看世界—看到了內(nèi)容,卻看不到內(nèi)容間的聯(lián)系。圖RAG通過引入知識圖譜這把"魔法鑰匙",打開了數(shù)據(jù)關(guān)系的大門,讓AI不僅理解"是什么",還能理解"為什么"和"怎么樣",從而提供更全面、更深入的回答。

目前主要有三種實現(xiàn)圖RAG的方式:

一是基于向量的檢索,將知識圖譜向量化存儲在向量數(shù)據(jù)庫中,通過相似度匹配檢索。二是相關(guān)實體提示查詢檢索使用LLM將自然語言轉(zhuǎn)換為SPARQL或Cypher查詢語句,直接查詢知識圖譜。最后就是二者結(jié)合的混合方法,結(jié)合兩者優(yōu)勢,先用向量搜索初步檢索,再用知識圖譜進行篩選優(yōu)化。

圖片

實驗比較:三種方法的優(yōu)劣

我們以電子商務(wù)產(chǎn)品推薦系統(tǒng)為例,對比三種方法在語義搜索、相似度計算和RAG方面的表現(xiàn)。

方法一:向量數(shù)據(jù)庫檢索

首先,我們將產(chǎn)品描述和用戶評論向量化存入Milvus向量數(shù)據(jù)庫:

# 定義數(shù)據(jù)模式 
collection_name = "products" 
dim = 1536  
# OpenAI embedding維度  
# 創(chuàng)建集合 
collection = Collection(name=collection_name) 
collection.create_field(FieldSchema("id", DataType.INT64, is_primary=True)) 
collection.create_field(FieldSchema("title", DataType.VARCHAR, max_length=200)) 
collection.create_field(FieldSchema("description", DataType.VARCHAR, max_length=2000)) 
collection.create_field(FieldSchema("embedding", DataType.FLOAT_VECTOR, dim=dim))  
# 寫入數(shù)據(jù) 
with collection:     
  for index, row in df.iterrows():         
  embedding = get_embedding(row.title + " " + row.description)         collection.insert([             [index], [row.title], [row.description], [embedding]         ])

語義搜索測試:搜索"輕便防水運動鞋"時,返回相關(guān)產(chǎn)品:

《超輕透氣跑步鞋》

《防水戶外徒步鞋》

《多功能運動訓(xùn)練鞋》

這里向量數(shù)據(jù)庫展現(xiàn)了良好的語義理解能力,能找到功能相關(guān)的產(chǎn)品,即

使它們的描述用詞不完全一致。

當(dāng)用戶詢問"推薦適合雨天跑步的鞋子"時,系統(tǒng)檢索出相關(guān)產(chǎn)品并生成建議:

以下是幾款適合雨天跑步的鞋子推薦: 
- 防水透氣跑步鞋XYZ采用特殊橡膠外底,提供優(yōu)異抓地力 
- 全天候運動鞋ABC配備防潑水面料,輕量設(shè)計適合長跑 
- 專業(yè)越野跑鞋DEF具有排水設(shè)計,即使踩水也能快速干燥

然而,我們發(fā)現(xiàn)一個問題:向量數(shù)據(jù)庫可能會返回視覺上相似但功能不匹配的產(chǎn)品(如時尚休閑鞋),這會導(dǎo)致"上下文污染",使LLM生成的推薦不夠精準。

方法二:知識圖譜檢索

接下來,我們將同樣的數(shù)據(jù)構(gòu)建成知識圖譜:

# 創(chuàng)建實體和關(guān)系 
g.add((product_uri, RDF.type, Product)) 
g.add((product_uri, name, Literal(row['title']))) 
g.add((product_uri, description, Literal(row['description'])))  
# 添加產(chǎn)品屬性和分類關(guān)系 
for feature in features:     
  feature_uri = create_valid_uri("http://example.org/feature", feature)     
  g.add((feature_uri, RDF.type, Feature))    
  g.add((product_uri, hasFeature, feature_uri))

語義搜索測試:我們不僅搜索"防水"標簽,還利用產(chǎn)品本體的層級關(guān)系,同時搜索相關(guān)概念如"防潑水"和"快干":

# 獲取防水的相關(guān)概念 
related_concepts = get_all_related_concepts("WaterProof", depth=2) 
# 將所有概念轉(zhuǎn)為URI進行查詢 
feature_terms = [convert_to_feature_uri(term) for term in flat_list]

結(jié)果返回:

《全天候防水徒步鞋》(標簽:防水、耐磨、戶外)

《速干涉水溯溪鞋》(標簽:快干、防滑、水上運動)

《Gore-Tex專業(yè)跑鞋》(標簽:防潑水、透氣、專業(yè)跑步)

知識圖譜的優(yōu)勢在于結(jié)果可解釋性強,我們知道每個產(chǎn)品為什么被選中。

方法三:混合方法

最后,我們結(jié)合兩種方法的優(yōu)勢:

將產(chǎn)品描述、評論和特性標簽一起向量化:
# 創(chuàng)建包含產(chǎn)品特性的向量表示 
collection = Collection(name="products_with_features") 
collection.create_field(FieldSchema("id", DataType.INT64, is_primary=True)) 
collection.create_field(FieldSchema("title", DataType.VARCHAR, max_length=200)) 
collection.create_field(FieldSchema("description", DataType.VARCHAR, max_length=2000)) 
collection.create_field(FieldSchema("features", DataType.VARCHAR, max_length=500)) 
collection.create_field(FieldSchema("product_uri", DataType.VARCHAR, max_length=200)) 
collection.create_field(FieldSchema("embedding", DataType.FLOAT_VECTOR, dim=dim))
先用向量搜索獲取初步結(jié)果:
# 搜索適合雨天跑步的鞋子 
search_params = {     "metric_type": "COSINE",     "params": {"nprobe": 10} } 
results = collection.search(     [get_embedding("適合雨天跑步的鞋子")],     "embedding",     search_params,     limit=20,     
output_fields=["title", "description", "features", "product_uri"] )
再用知識圖譜篩選和排序:
# 篩選出真正具備防水和跑步功能的產(chǎn)品 
query = """ SELECT ?product ?title ?description WHERE {   ?product hasFeature ?feature1.   ?product hasFeature ?feature2.   ?product name ?title.   ?product description ?description.   FILTER (?product IN (%s) && ?feature1 IN (%s) && ?feature2 IN (%s)) } """

這種混合方法解決了上下文污染問題,最終返回的都是真正適合雨天跑步的專業(yè)鞋款:

《GTX防水專業(yè)馬拉松跑鞋》

《全天候防潑水競速跑鞋》

《防滑防水越野跑步鞋》

結(jié)論與實踐建議

從上面的對比,我們可以看到,向量數(shù)據(jù)庫優(yōu)勢是部署簡單快速,Milvus提供高性能向量檢索,特別適合大規(guī)模產(chǎn)品庫。缺點是結(jié)果不可解釋,且存在上下文污染風(fēng)險。知識圖譜優(yōu)勢,是結(jié)果高度可控和可解釋,可以精確過濾無關(guān)內(nèi)容。缺點是需要構(gòu)建和維護知識圖譜,查詢編寫復(fù)雜。而對于混合方法,則利用Milvus的高效檢索和知識圖譜的精確性,既保證了檢索速度,又提高了推薦質(zhì)量。

在實際應(yīng)用推薦上,比如做內(nèi)容推薦,同時考慮主題相似性和內(nèi)容關(guān)聯(lián)性,避免推薦表面相似但實質(zhì)不相關(guān)的內(nèi)容,又或者對于客戶服務(wù),確保回答不僅相關(guān),還能考慮到產(chǎn)品間的兼容性和搭配關(guān)系。

圖RAG不僅是技術(shù)的組合,更是提升AI系統(tǒng)智能程度的飛躍。通過Milvus的高效向量檢索和知識圖譜的關(guān)系理解,我們的AI不再是簡單的"關(guān)鍵詞匹配機器",而是真正理解用戶需求的"智能顧問"。

責(zé)任編輯:龐桂玉 來源: 口袋大數(shù)據(jù)
相關(guān)推薦

2024-09-02 10:13:54

2025-04-01 07:30:00

2025-01-09 10:52:23

RAG知識圖譜人工智能

2020-12-18 11:59:21

人工智能知識圖譜

2024-02-26 00:00:00

RAG系統(tǒng)圖譜

2024-10-07 08:49:25

2024-10-12 08:03:25

2024-08-06 08:43:17

2025-03-06 10:41:32

2023-05-22 09:18:04

2019-01-18 16:02:33

知識圖譜圖數(shù)據(jù)庫AI

2017-03-06 16:48:56

知識圖譜構(gòu)建存儲

2021-01-19 10:52:15

知識圖譜

2025-04-27 00:10:00

AI人工智能知識圖譜

2024-01-09 14:05:15

大型語言模型RAG向量數(shù)據(jù)庫

2021-01-25 10:36:32

知識圖譜人工智能

2025-04-18 12:49:58

知識圖譜大模型人工智能

2025-04-03 16:02:14

2018-01-09 08:43:14

圖譜存儲系統(tǒng)

2025-04-08 03:45:00

點贊
收藏

51CTO技術(shù)棧公眾號