Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Redis

ค้นพบ Redis สำหรับการค้นหาความคล้ายคลึงกันของเวกเตอร์

ที่ RedisDays NY 2022 เราได้ประกาศการแสดงตัวอย่างความสามารถใหม่ในการค้นหาความคล้ายคลึงกันของเวกเตอร์ (VSS) VSS เป็นส่วนหนึ่งของ RediSearch 2.4 และพร้อมใช้งานในการสมัครใช้งานแบบคงที่และฟรีของ Docker, Redis Stack และ Redis Enterprise Cloud

ในบทความนี้ ผมจะแนะนำคุณเกี่ยวกับพื้นฐานของความคล้ายคลึงกันของเวกเตอร์ ตลอดจนแอปพลิเคชัน และแบ่งปันทรัพยากรเพื่อให้คุณเริ่มต้นใช้งาน Redis VSS!

ค้นพบ Redis สำหรับการค้นหาความคล้ายคลึงกันของเวกเตอร์ ความคล้ายคลึงกันของเวกเตอร์คืออะไร

พูดง่ายๆ ก็คือ เป็นการวัดว่าเวกเตอร์สองตัวหรือมากกว่าต่างกัน (หรือคล้ายกัน) ต่างกันอย่างไร คิดว่าเวกเตอร์เป็นรายการของตัวเลข

เหตุใดการค้นหาความคล้ายคลึงกันของเวกเตอร์จึงได้รับความนิยม

การค้นหาเวกเตอร์ช่วยให้นักพัฒนาสามารถดึงข้อมูลตามเสียง ภาษาธรรมชาติ รูปภาพ คลิปวิดีโอ การบันทึกเสียง และข้อมูลประเภทอื่นๆ อีกมากมาย การค้นหาข้อมูลที่ไม่มีโครงสร้างทำให้ VSS เป็นเทคโนโลยีพื้นฐานในการสร้างประสบการณ์การค้นหาที่มีความคล้ายคลึงขั้นสูง

เวกเตอร์เหล่านี้สร้างขึ้นสำหรับข้อมูลของฉันอย่างไร

ด้วยความก้าวหน้าใน AI นักวิทยาศาสตร์ด้านข้อมูลสามารถสร้างแบบจำลองที่สามารถแปลง "เอนทิตี" ของข้อมูลเกือบทั้งหมดให้กลายเป็นการแสดงเวกเตอร์ได้ เอนทิตีที่นี่อาจเป็นธุรกรรม โปรไฟล์ผู้ใช้ รูปภาพ เสียง ข้อความยาวๆ (ประโยคหรือย่อหน้า) อนุกรมเวลา หรือกราฟ สิ่งเหล่านี้สามารถเปลี่ยนเป็น "เวกเตอร์คุณลักษณะ" หรือที่เรียกว่า "การฝัง" ได้

การฝังเหล่านี้หมายความว่าอย่างไร

การฝังเวกเตอร์เป็นการแสดงตัวเลขของข้อมูล พวกเขารวบรวมคุณลักษณะที่สำคัญที่สุดของเอนทิตีในลักษณะที่คอมพิวเตอร์และฐานข้อมูลสามารถเปรียบเทียบได้อย่างง่ายดาย ส่วนที่น่าสนใจในที่นี้คือ หากโมเดลสร้างการฝังสองตัวที่คล้ายกัน (เวกเตอร์) สำหรับสองเอนทิตี คุณสามารถอนุมานได้ว่าเอนทิตีดั้งเดิมทั้งสองมีความคล้ายคลึงกันในลักษณะพื้นฐานบางอย่าง

ฉันต้องเป็นนักวิทยาศาสตร์ข้อมูลเพื่อสร้างการฝังเหล่านี้หรือไม่

ไม่เลย! มีโมเดลและไลบรารี AI ที่ใช้งานได้ฟรีหลายตัวที่อนุญาตให้นักพัฒนาสร้างการฝังจากข้อความ รูปภาพ หรือข้อมูลอนุกรมเวลา ตัวอย่างเช่น คุณสามารถใช้ HuggingFace Sentence Transformers เพื่อสร้างการฝังสำหรับประโยค, Img2Vec เพื่อสร้างการฝังสำหรับรูปภาพ และ Facebook Kats เพื่อสร้างการฝังสำหรับข้อมูลอนุกรมเวลา ผู้ปฏิบัติงาน AI/ML คุ้นเคยกับแนวคิดในการสร้างการแสดงคุณลักษณะ "หนาแน่น" (การฝังที่เรียกว่า) สำหรับเอนทิตีข้อมูลของตน ตอนนี้พวกเขาสามารถจัดเก็บเวกเตอร์คุณลักษณะเหล่านี้ใน Redis และทำการค้นหาความคล้ายคลึงกับพวกมันได้

ค้นพบ Redis สำหรับการค้นหาความคล้ายคลึงกันของเวกเตอร์ แอปพลิเคชันประเภทใดที่สามารถสร้างได้ด้วยการค้นหาความคล้ายคลึงกันของเวกเตอร์ ?

มีแอปพลิเคชั่นในชีวิตประจำวันหลายตัวที่คุณโต้ตอบกับการค้นหาความคล้ายคลึงกันของเวกเตอร์

ตั้งแต่การค้นหาด้วยภาพบนเว็บไซต์อีคอมเมิร์ซไปจนถึงแชทบอทอัตโนมัติ / ระบบถาม &ตอบ และระบบแนะนำหลายประเภท โดยทั่วไปแล้ว คุณจะพบว่า VSS มีประโยชน์ในแอพใดๆ ก็ตามที่การระบุความคล้ายคลึงในแบบเรียลไทม์เป็นสิ่งสำคัญในการปลดล็อคมูลค่า กรณีการใช้งานทั่วไปบางรายการมีการระบุไว้ด้านล่าง:

– คำแนะนำอีคอมเมิร์ซ:ใช้ความคล้ายคลึงทางภาพและ/หรือความคล้ายคลึงทางความหมายเพื่อขับเคลื่อนประสบการณ์การค้นหาขั้นสูงและคำแนะนำผลิตภัณฑ์

– ความคล้ายคลึงกันทางความหมาย:สร้างประสบการณ์การค้นหาที่ซับซ้อน แชทบอท หรือแม้แต่ระบบคำถามและคำตอบ

– ความคล้ายคลึงกันในข้อมูลอนุกรมเวลา:ค้นพบความคล้ายคลึงกันของรูปแบบการแพร่กระจายของโรคหรือโอกาสในการซื้อขายโดยพิจารณาจากความคล้ายคลึงกันในรูปแบบทางประวัติศาสตร์

– ความคล้ายคลึงกันในข้อมูลกราฟ:เปิดเผยรูปแบบการเชื่อมต่อที่คล้ายคลึงกันในกลุ่มนักแสดงหรือเครือข่ายต่างๆ (อาจไม่เกี่ยวข้อง)

– ความคล้ายคลึงกันของการทำธุรกรรม:ตรวจจับการฉ้อโกงหรือภัยคุกคามที่อาจเกิดขึ้นตามความคล้ายคลึงกันกับการฉ้อโกง/ความพยายามในการคุกคามที่ตรวจพบก่อนหน้านี้

– ความคล้ายคลึงของโปรไฟล์ผู้ใช้หรือผลิตภัณฑ์:สร้างคำแนะนำส่วนบุคคล ปรับแต่งการแบ่งกลุ่มลูกค้าของคุณตามรูปแบบที่เปิดเผยโดยข้อมูลการฝัง

ค้นพบ Redis สำหรับการค้นหาความคล้ายคลึงกันของเวกเตอร์ Redis ใช้การค้นหาความคล้ายคลึงกันของเวกเตอร์อย่างไร

RediSearch เป็นโมดูล Redis ที่ให้ความสามารถในการสืบค้น การจัดทำดัชนีรอง และการค้นหาข้อความแบบเต็มสำหรับข้อมูล Redis ที่จัดเก็บในรูปแบบแฮช Redis หรือรูปแบบ JSON ด้วย Redis 2.4 Redis ได้แนะนำการสนับสนุนสำหรับการค้นหาความคล้ายคลึงกันของเวกเตอร์

ด้วย RediSearch 2.4 นักพัฒนา Redis สามารถ:
– ข้อมูลเวกเตอร์ดัชนีและแบบสอบถามที่จัดเก็บเป็น BLOB ใน Redis hashes

– ใช้วิธีการสร้างดัชนียอดนิยมสองวิธี:FLAT และ HNSW

– ใช้ตัววัดระยะทางเวกเตอร์ทั่วไปสามตัว:โคไซน์ ผลิตภัณฑ์ภายใน และระยะแบบยุคลิด

– ดำเนินการค้นหาแบบไฮบริดซึ่งรวมความคล้ายคลึงของเวกเตอร์เข้ากับความสามารถในการกรอง RediSearch แบบดั้งเดิมบนข้อมูล GEO, NUMERIC, TAG หรือ TEXT ตัวอย่างทั่วไปของข้อความค้นหาแบบผสมในการตั้งค่าอีคอมเมิร์ซคือ "ค้นหาสินค้าที่มีลักษณะคล้ายกับรูปภาพข้อความค้นหาที่กำหนดซึ่งจำกัดเฉพาะสินค้าที่มีอยู่ในตำแหน่ง GEO และภายในช่วงราคา"

มีการสาธิตหรือไม่

หากคุณคุ้นเคยกับ Python ให้ลองใช้สิ่งเหล่านี้:
– ความคล้ายคลึงกันของภาพและความหมายในชุดข้อมูล Amazon สาธารณะ

– การวิเคราะห์ความเชื่อมั่นและความคล้ายคลึงกันของความหมายในบทความข่าวการเงิน

สำหรับ Java คุณสามารถลองใช้การสาธิตพื้นฐานนี้ ซึ่งแสดงวิธีสร้างดัชนี โหลดข้อมูล และสืบค้น

ฉันจะเรียนรู้เพิ่มเติมได้ที่ไหน

ลองดูรีเพลย์ของสองช่วง RedisDays 2022 เหล่านี้:
ประเด็นสำคัญ :ใส่ AI แบบเรียลไทม์ลงในแอปพลิเคชัน "บริการทางการเงิน" ของคุณ

เบื้องหลัง: การใช้ AI เพื่อเปิดเผยสัญญาณการซื้อขายที่ฝังอยู่ในเอกสารที่ยื่นต่อบริษัท

เซสชั่นสามารถดูได้ตามต้องการ คุณสามารถตรวจสอบเอกสารประกอบของ RediSearch ได้ที่ “การทำงานกับเวกเตอร์”

ค้นพบ Redis สำหรับการค้นหาความคล้ายคลึงกันของเวกเตอร์ ฉันจะเริ่มต้นได้อย่างไร

มีสามวิธีง่ายๆ ในการสร้างฐานข้อมูล Redis ด้วย RediSearch 2.4

จากเทอร์มินัลของคุณ คุณสามารถรับได้ด้วยวิธีใดวิธีหนึ่งต่อไปนี้:
1) นักเทียบท่า – “docker run -p 6379:6379 redislabs/redisearch:2.4.5”

2) Redis Stack – “brew install redis-stack” (จาก Mac OS) สำหรับระบบปฏิบัติการอื่น ให้ลอง "เริ่มต้นใช้งาน Redis Stack"

3) สุดท้าย คุณยังสามารถสร้างการสมัครใช้งานฟรีด้วย Redis Enterprise Cloud

หากคุณใช้เส้นทางการสมัครใช้งาน Redis Enterprise Cloud อย่าลืมใช้ “Redis Stack ” เนื่องจากมี RediSearch 2.4.