ค้นหาความหมายด้วยเวกเตอร์
เผยแพร่แล้ว: 2022-11-01หากคุณติดตามข่าวสารล่าสุดในการค้นหา คุณอาจเคยได้ยินเกี่ยวกับการค้นหาเวกเตอร์
และคุณอาจเริ่มเจาะลึกลงไปในหัวข้อเพื่อพยายามเรียนรู้เพิ่มเติมเกี่ยวกับเรื่องนี้ แต่กลับทำให้อีกฝ่ายสับสน คุณไม่ได้ทิ้งคณิตศาสตร์นั้นไว้ในวิทยาลัยเหรอ?
การสร้างการค้นหาเวกเตอร์นั้นยาก ไม่ต้องเข้าใจก็ไม่เป็นไร
และการเข้าใจว่าการค้นหาเวกเตอร์ไม่ใช่อนาคต การค้นหาแบบไฮบริดคือสิ่งที่สำคัญพอๆ กัน
เวกเตอร์คืออะไร?
เมื่อเราพูดถึงเวกเตอร์ในบริบทของการเรียนรู้ของเครื่อง เราหมายถึงสิ่งนี้: เวกเตอร์คือกลุ่มของตัวเลขที่แสดงถึงบางสิ่งบางอย่าง
สิ่งนั้นอาจเป็นภาพ คำ หรือเกือบทุกอย่าง
แน่นอนว่าคำถามคือสาเหตุที่เวกเตอร์เหล่านี้มีประโยชน์และสร้างขึ้นอย่างไร
ลองดูก่อนว่าเวกเตอร์เหล่านั้นมาจากไหน คำตอบสั้น ๆ : การเรียนรู้ของเครื่อง
Jay Alammar อาจมีโพสต์บล็อกที่ดีที่สุดเท่าที่เคยเขียนเกี่ยวกับ เวกเตอร์ว่าคือ อะไร
โดยสรุปแล้ว แมชชีนเลิร์นนิงโมเดลอินพุตรายการ (สมมติว่าเป็นคำจากนี้ไป) และพยายามหาสูตรที่ดีที่สุดเพื่อคาดเดาอย่างอื่น
ตัวอย่างเช่น คุณอาจมีแบบจำลองที่ใช้คำว่า "ผึ้ง" และกำลังพยายามหาสูตรที่ดีที่สุดที่จะทำนายได้อย่างแม่นยำว่า "ผึ้ง" ถูกมองว่าเป็น "แมลง" และ "ตัวต่อ" ในบริบทที่คล้ายคลึงกัน
เมื่อโมเดลนั้นมีสูตรที่ดีที่สุดแล้ว ก็สามารถเปลี่ยนคำว่า "ผึ้ง" ให้เป็นกลุ่มตัวเลขที่คล้ายกับกลุ่มตัวเลขสำหรับ "แมลง" และ "ตัวต่อ" ได้
ทำไมเวกเตอร์ถึงทรงพลัง
เวกเตอร์มีประสิทธิภาพมากด้วยเหตุนี้ โมเดลภาษาขนาดใหญ่ เช่น Generative Pre-trained Transformer 3 (GPT-3) หรือจาก Google คำนึงถึงคำและประโยคหลายพันล้านคำ จึงสามารถเริ่มสร้างการเชื่อมต่อเหล่านี้และกลายเป็นอัจฉริยะอย่างแท้จริง
เข้าใจได้ง่ายว่าทำไมผู้คนถึงตื่นเต้นที่จะใช้ความฉลาดนั้นในการค้นหา
บางคนถึงกับบอกว่า การค้นหาเวกเตอร์จะแทนที่การค้นหาด้วยคำหลักที่ เรารู้จักและชื่นชอบมานานหลายทศวรรษ
แม้ว่าสิ่งนี้คือการค้นหาเวกเตอร์นั้นไม่ได้แทนที่การค้นหาคำหลักทั้งผ้า คิดว่าการค้นหาคำหลักจะไม่รักษาคุณค่าอันยิ่งใหญ่ทำให้มองในแง่ดีมากเกินไปในสิ่งใหม่และเป็นประกาย
การค้นหาเวกเตอร์และการค้นหาคำหลักแต่ละรายการมีจุดแข็งของตนเอง และจะทำงานได้ดีที่สุดเมื่อทำงานร่วมกัน
ค้นหาเวกเตอร์สำหรับแบบสอบถามหางยาว
หากคุณทำงานในการค้นหา คุณน่าจะคุ้นเคยกับข้อความค้นหาที่ยาวเหยียด
แนวคิดนี้ซึ่งเป็นที่ นิยมโดย Chris Anderson เพื่ออธิบายเนื้อหาดิจิทัล กล่าวว่ามีบางรายการ (สำหรับคำค้นหา) ที่ได้รับความนิยมมากกว่าสิ่งอื่นใด แต่มีสินค้าแต่ละรายการจำนวนมากที่ยังมีคนต้องการอยู่
ดังนั้นจึงเป็นกับการค้นหา
ข้อความค้นหาสองสามคำ (หรือที่เรียกว่าข้อความค้นหา "หัว") แต่ละคำมีการค้นหาเป็นจำนวนมาก แต่ข้อความค้นหาส่วนใหญ่มักถูกค้นหาน้อยมาก หรือแม้แต่เพียงครั้งเดียว
ตัวเลขจะแตกต่างกันไปในแต่ละไซต์ แต่ในไซต์โดยเฉลี่ย การค้นหาประมาณหนึ่งในสามของการค้นหาทั้งหมดอาจมาจากข้อความค้นหาเพียงไม่กี่โหล ในขณะที่ปริมาณการค้นหาเกือบครึ่งหนึ่งมาจากข้อความค้นหาที่อยู่นอกเหนือ 1,000 คำที่ได้รับความนิยมมากที่สุด
ข้อความค้นหาแบบหางยาวมักจะยาวกว่า และอาจเป็นข้อความค้นหาภาษาธรรมชาติด้วยซ้ำ
การวิจัยจากบริษัทของฉัน Algolia พบว่า 75% ของข้อความค้นหาเป็นคำสองคำหรือน้อยกว่า 90% ของข้อความค้นหามีสี่คำหรือน้อยกว่านั้น จากนั้นเพื่อให้ได้ข้อความค้นหาถึง 99% คุณต้องมี 13 คำ!
อย่างไรก็ตาม พวกมันไม่ได้ยาวเสมอไป พวกมันอาจคลุมเครือ สำหรับเว็บไซต์แฟชั่นสตรี “เดรสสีม่วง” อาจเป็นข้อความค้นหาแบบหางยาว เพราะผู้คนมักไม่ค่อยถามถึงสีนั้น “Wristlet” อาจเป็นคำถามที่ไม่ค่อยพบเห็น แม้ว่าเว็บไซต์จะมีสร้อยข้อมือขายก็ตาม
การค้นหาเวกเตอร์มักใช้งานได้ดีสำหรับข้อความค้นหาแบบยาว สามารถเข้าใจได้ว่า wristlet นั้นคล้ายกับกำไล และพื้นผิวกำไลแม้จะไม่ได้ตั้งค่าคำพ้องความหมาย โดยอาจแสดงชุดสีชมพูหรือสีม่วงเมื่อมีคนค้นหาบางอย่างที่เป็นสีม่วง
การค้นหาเวกเตอร์สามารถทำงานได้ดีสำหรับข้อความค้นหาที่มีความยาวหรือเป็นธรรมชาติ "สิ่งที่จะทำให้เครื่องดื่มของฉันเย็น" จะแสดงตู้เย็นในการค้นหาเวกเตอร์ที่ปรับแต่งมาอย่างดี ในขณะที่การค้นหาด้วยคำหลัก คุณควรหวังว่าข้อความจะอยู่ที่ไหนสักแห่งในคำอธิบายผลิตภัณฑ์
กล่าวอีกนัยหนึ่ง การค้นหาเวกเตอร์เพิ่มการเรียกคืนผลการค้นหา หรือจำนวนผลลัพธ์ที่พบ
การค้นหาเวกเตอร์ทำงานอย่างไร
การค้นหาเวกเตอร์ทำได้โดยนำกลุ่มของตัวเลขที่เราอธิบายไว้ข้างต้นและให้โปรแกรมค้นหาเวกเตอร์ถามว่า "ถ้าฉันสร้างกราฟกลุ่มของตัวเลขเหล่านี้เป็นเส้น อันไหนจะใกล้เคียงกันมากที่สุด"
วิธีง่ายๆ ในการกำหนดแนวคิดนี้คือคิดถึงกลุ่มที่มีตัวเลขเพียงสองตัว กลุ่ม [1,2] จะใกล้ชิดกับกลุ่ม [2,2] มากกว่าที่จะเป็นกลุ่ม [2,500]
(แน่นอนว่า เนื่องจากเวกเตอร์มีตัวเลขอยู่หลายสิบตัว จึงถูก "สร้างกราฟ" ในหลายมิติ ซึ่งไม่ง่ายนัก)
วิธีการกำหนดความคล้ายคลึงกันนี้มีประสิทธิภาพเพราะเวกเตอร์ที่เป็นตัวแทนของคำเช่น "แพทย์" และ "ยา" จะถูก "ทำกราฟ" คล้ายคลึงกันมากกว่าคำว่า "แพทย์" และ "ร็อค"
ข้อเสียในการค้นหาเวกเตอร์
อย่างไรก็ตาม มีข้อเสียในการค้นหาเวกเตอร์
อย่างแรกคือค่าใช้จ่าย แมชชีนเลิร์นนิงทั้งหมดที่เราพูดถึงข้างต้น? มันมีค่าใช้จ่าย
การจัดเก็บเวกเตอร์มีราคาแพงกว่าการจัดเก็บดัชนีการค้นหาตามคำหลักสำหรับสิ่งหนึ่ง การค้นหาเวกเตอร์เหล่านั้นยังช้ากว่าการค้นหาคำหลักในกรณีส่วนใหญ่

ตอนนี้การแฮชสามารถบรรเทาปัญหาทั้งสองนี้ได้
ใช่ เรากำลังแนะนำแนวคิดทางเทคนิคเพิ่มเติม แต่นี่เป็นอีกแนวคิดหนึ่งที่ค่อนข้างง่ายในการทำความเข้าใจพื้นฐาน
การแฮชดำเนินการเป็นชุดของขั้นตอนในการแปลงข้อมูลบางส่วน (เช่น สตริงหรือตัวเลข) เป็นตัวเลข ซึ่งใช้หน่วยความจำน้อยกว่าข้อมูลเดิม
ปรากฎว่าเราสามารถใช้ การแฮชเพื่อลดขนาดของเวกเตอร์ ในขณะที่ยังคงรักษาสิ่งที่ทำให้เวกเตอร์มีประโยชน์: ความสามารถในการจับคู่รายการที่คล้ายคลึงกันตามแนวคิด
การใช้แฮชทำให้การค้นหาเวกเตอร์เร็วขึ้นมากและให้เวกเตอร์ใช้พื้นที่โดยรวมน้อยลง
รายละเอียดเป็นเทคนิคขั้นสูง แต่สิ่งที่สำคัญคือการเข้าใจว่าเป็นไปได้
ประโยชน์อย่างต่อเนื่องของการค้นหาคำสำคัญ
นี้ไม่ได้หมายความว่าการค้นหาคำหลักยังไม่มีประโยชน์! การค้นหาคำหลักโดยทั่วไปจะเร็วกว่าการค้นหาเวกเตอร์
นอกจากนี้ยังง่ายต่อการเข้าใจว่าทำไมผลลัพธ์จึงถูกจัดลำดับตามที่เป็นอยู่
นำตัวอย่างของข้อความค้นหา "เท็กซัส" และ "tejano" และ "รัฐ" เป็นคำที่อาจตรงกัน เห็นได้ชัดว่า “tejano” นั้นใกล้เคียงกว่าหากเราดูการเปรียบเทียบจากมุมมองการค้นหาคำหลักล้วนๆ อย่างไรก็ตาม มันไม่ง่ายนักที่จะบอกได้ ซึ่งน่าจะใกล้เคียงกับวิธีการค้นหาเวกเตอร์มากขึ้น
การค้นหาตามคำหลักเข้าใจคำว่า "เท็กซัส" ว่าคล้ายกับ "tejano" มากกว่าเพราะใช้วิธีการแบบข้อความเพื่อค้นหาบันทึก
หากเรกคอร์ดมีคำที่เหมือนกันทุกประการกับคำในคิวรี (หรือภายในระดับความแตกต่างที่กำหนดสำหรับการพิมพ์ผิด) บันทึกนั้นจะถือว่ามีความเกี่ยวข้องและกลับมาในชุดผลลัพธ์
กล่าวอีกนัยหนึ่ง การค้นหาคำหลักจะเน้นที่ความแม่นยำของผลการค้นหา หรือการตรวจสอบให้แน่ใจว่าระเบียนที่กลับมามีความเกี่ยวข้อง แม้ว่าจะมีจำนวนน้อยกว่าก็ตาม
การค้นหาคำหลักที่เป็นประโยชน์สำหรับการค้นหาหลัก
ด้วยเหตุนี้ การค้นหาคำหลักจึงทำงานได้ดีมากสำหรับข้อความค้นหาหลัก: ข้อความค้นหาที่ได้รับความนิยมมากที่สุด
คำค้นหาหลักมักจะสั้นกว่า และปรับให้เหมาะสมได้ง่ายกว่าด้วย ซึ่งหมายความว่าไม่ว่าด้วยเหตุผลใดก็ตาม คำหลักไม่ตรงกับข้อความที่ถูกต้องภายในบันทึก คำหลักนั้นมักจะตรวจพบโดยการวิเคราะห์ และ คุณสามารถเพิ่มคำพ้องความหมาย ได้
เนื่องจากการค้นหาคำหลักทำงานได้ดีที่สุดสำหรับข้อความค้นหาหลักและการค้นหาเวกเตอร์ทำงานได้ดีที่สุดสำหรับข้อความค้นหาแบบยาว ทั้งสองจึงทำงานได้ดีที่สุด
สิ่งนี้เรียกว่าการค้นหาแบบไฮบริด
การค้นหาแบบผสมคือเมื่อเสิร์ชเอ็นจิ้นใช้ทั้งการค้นหาคำสำคัญและการค้นหาเวกเตอร์สำหรับข้อความค้นหาเดียวและจัดลำดับระเบียนอย่างถูกต้อง ไม่ว่าวิธีการค้นหาแบบใดจะนำมาซึ่งการค้นหา
การจัดอันดับจากแหล่งที่มาของการค้นหา
การจัดอันดับที่มาจากสองแหล่งที่แตกต่างกันนั้นไม่ใช่เรื่องง่าย
ทั้งสองวิธีมีวิธีบันทึกการให้คะแนนที่แตกต่างกันโดยธรรมชาติ
การค้นหาเวกเตอร์จะส่งคืนคะแนน ในขณะที่เอ็นจิ้นตามคำหลักบางรายการจะไม่ส่งคืน แม้ว่าเครื่องมือที่ใช้คำหลักจะส่งคืนคะแนน แต่ก็ไม่มีการรับประกันว่าคะแนนทั้งสองจะเท่ากัน
หากคะแนนไม่เท่ากัน คุณไม่สามารถพูดได้ว่าคะแนน 0.8 จากเครื่องมือคำหลักมีความเกี่ยวข้องมากกว่าคะแนน 0.79 จากเครื่องมือเวกเตอร์
อีกทางเลือกหนึ่งคือการเรียกใช้ผลลัพธ์ทั้งหมดผ่านการให้คะแนนของเวกเตอร์เอ็นจิ้นหรือเอ็นจิ้นคำหลัก
สิ่งนี้มีประโยชน์ในการได้รับการเรียกคืนเพิ่มเติมจาก vector engine แต่ก็มีข้อเสียเช่นกัน ผลลัพธ์ที่เรียกคืนเพิ่มเติมซึ่งมาจากเครื่องมือเวกเตอร์จะไม่ได้รับการจัดประเภทว่ามีความเกี่ยวข้องจากคะแนนคำหลัก มิฉะนั้น ผลลัพธ์เหล่านั้นอาจปรากฏในชุดผลลัพธ์แล้ว
คุณสามารถเรียกใช้ผลลัพธ์ทั้งหมด – คำหลักหรืออย่างอื่น – ผ่านการให้คะแนนเวกเตอร์ แต่การดำเนินการนี้ช้าและมีราคาแพง
การค้นหาเวกเตอร์เป็นการสำรอง
นั่นเป็นสาเหตุที่เสิร์ชเอ็นจิ้นบางตัวไม่พยายามผสมผสานทั้งสองเข้าด้วยกัน แต่จะแสดงผลลัพธ์ของคำหลักก่อนเสมอ แล้วจึงแสดงผลลัพธ์เวกเตอร์เป็นอันดับสอง
แนวคิดในที่นี้คือ หากการค้นหาให้ผลลัพธ์เป็นศูนย์หรือน้อย คุณสามารถถอยกลับไปใช้ผลลัพธ์เวกเตอร์ได้
โปรดจำไว้ว่า การค้นหาเวกเตอร์มุ่งไปที่การปรับปรุงการเรียกคืนหรือค้นหาผลลัพธ์เพิ่มเติม ดังนั้นจึงอาจพบผลลัพธ์ที่เกี่ยวข้องซึ่งการค้นหาคำหลักไม่พบ
นี่เป็นจุดแวะพักที่ดี แต่ไม่ใช่อนาคตของการค้นหาแบบไฮบริดที่แท้จริง
การค้นหาแบบไฮบริดที่แท้จริงจะจัดอันดับแหล่งที่มาของการค้นหาที่แตกต่างกันหลายแห่งในชุดผลลัพธ์เดียวกันโดยสร้างคะแนนที่เปรียบเทียบได้จากแหล่งที่มาต่างๆ
มีงานวิจัยมากมายเกี่ยวกับแนวทางนี้ในปัจจุบัน แต่มีเพียงไม่กี่คนที่ทำได้ดีและนำเสนอเครื่องมือของตนต่อสาธารณะ
สิ่งนี้หมายความว่าอย่างไรสำหรับคุณ?
ตอนนี้ สิ่งที่ดีที่สุดที่คุณสามารถทำได้คือนั่งให้แน่นและติดตามข่าวสารล่าสุดเกี่ยวกับสิ่งที่เกิดขึ้นในอุตสาหกรรม
การค้นหาไฮบริดแบบเวกเตอร์และตามคำหลักกำลังจะมาในปีต่อๆ ไป และจะพร้อมใช้งานสำหรับผู้ที่ไม่มีทีมวิทยาศาสตร์ข้อมูล
ในระหว่างนี้ การค้นหาคำสำคัญยังคงมีคุณค่าและจะดีขึ้นก็ต่อเมื่อการค้นหาเวกเตอร์ถูกนำเข้ามาในภายหลัง
แหล่งข้อมูลเพิ่มเติม:
- การค้นหาเชิงความหมาย: มันทำงานอย่างไร & เหมาะกับใคร
- NLP & NLU ทำงานอย่างไรสำหรับการค้นหาเชิงความหมาย
- เครื่องมือค้นหาทำงานอย่างไร
ภาพเด่น: pluie_r/Shutterstock
