โมเดลภาษาความหมาย

เสร็จสมบูรณ์เมื่อ

Note

ดูแท็บ ข้อความและรูปภาพ สําหรับรายละเอียดเพิ่มเติม!

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

วิธีการสร้างแบบจําลองข้อความที่ใช้เวกเตอร์นี้กลายเป็นเรื่องปกติในเทคนิคต่างๆ เช่น Word2Vec และ GloVe ซึ่งโทเค็นข้อความจะแสดงเป็นเวกเตอร์หนาแน่นที่มีหลายมิติ ในระหว่างการฝึกโมเดล ค่ามิติจะถูกกําหนดให้สะท้อนถึงลักษณะความหมายของแต่ละโทเค็นตามการใช้งานในข้อความการฝึกอบรม ความสัมพันธ์ทางคณิตศาสตร์ระหว่างเวกเตอร์สามารถนําไปใช้ประโยชน์เพื่อทํางานวิเคราะห์ข้อความทั่วไปได้อย่างมีประสิทธิภาพมากกว่าเทคนิคทางสถิติล้วนๆ ที่เก่ากว่า ความก้าวหน้าล่าสุดในแนวทางนี้คือการใช้เทคนิค ที่เรียกว่าความสนใจ เพื่อพิจารณาโทเค็นแต่ละตัวในบริบท และคํานวณอิทธิพลของโทเค็นรอบตัว การฝังตาม บริบท ที่เกิดขึ้น เช่น ที่พบในตระกูลโมเดล GPT เป็นพื้นฐานของ Generative AI ที่ทันสมัย

การแสดงข้อความเป็นเวกเตอร์

เวกเตอร์แสดงจุดในพื้นที่หลายมิติ ซึ่งกําหนดโดยพิกัดตามหลายแกน เวกเตอร์แต่ละตัวอธิบายทิศทางและระยะทางจากจุดกําเนิด โทเค็นที่คล้ายคลึงกันทางความหมายควรส่งผลให้เวกเตอร์มีทิศทางที่คล้ายคลึงกัน – กล่าวอีกนัยหนึ่งคือพวกเขาชี้ไปในทิศทางที่คล้ายคลึงกัน

ตัวอย่างเช่น พิจารณาการฝังสามมิติต่อไปนี้สําหรับคําทั่วไปบางคํา:

คำ เวกเตอร์
dog [0.8, 0.6, 0.1]
puppy [0.9, 0.7, 0.4]
cat [0.7, 0.5, 0.2]
kitten [0.8, 0.6, 0.5]
young [0.1, 0.1, 0.3]
ball [0.3, 0.9, 0.1]
tree [0.2, 0.1, 0.9]

เราสามารถเห็นภาพเวกเตอร์เหล่านี้ในพื้นที่สามมิติดังที่แสดงไว้ที่นี่:

ไดอะแกรมของการแสดงภาพ 3 มิติของเวกเตอร์คํา

เวกเตอร์สําหรับ "dog" และ "cat" คล้ายกัน (สัตว์เลี้ยงทั้งคู่) เช่นเดียวกับ "puppy" และ "kitten" (สัตว์เล็กทั้งสอง) คํา "tree"ว่า , "young", และ ball" มีการวางแนวเวกเตอร์ที่แตกต่างกันอย่างชัดเจน ซึ่งสะท้อนถึงความหมายที่แตกต่างกัน

ลักษณะความหมายที่เข้ารหัสในเวกเตอร์ทําให้สามารถใช้การดําเนินการตามเวกเตอร์ที่เปรียบเทียบคําและเปิดใช้งานการเปรียบเทียบเชิงวิเคราะห์ได้

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

ตัวอย่างเช่น ในการกําหนด "คี่ออก" ระหว่าง "dog", "cat", และ "tree"คุณสามารถคํานวณความคล้ายคลึงกันของโคไซน์ระหว่างคู่ของเวกเตอร์ได้ ความคล้ายคลึงกันของโคไซน์คํานวณได้ดังนี้:

cosine_similarity(A, B) = (A · B) / (||A|| * ||B||)

โดยที่ผลคูณดอทและ||A||ขนาดของเวกเตอร์ A อยู่ที่ไหนA · B

การคํานวณความคล้ายคลึงกันระหว่างสามคํา:

  • dog [0.8, 0.6, 0.1] และ cat [0.7, 0.5, 0.2]:

    • ผลิตภัณฑ์จุด: (0.8 × 0.7) + (0.6 × 0.5) + (0.1 × 0.2) = 0.56 + 0.30 + 0.02 = 0.88
    • ขนาดของ dog: √(0.8² + 0.6² + 0.1²) = √(0.64 + 0.36 + 0.01) = √1.01 ≈ 1.005
    • ขนาดของ cat: √(0.7² + 0.5² + 0.2²) = √(0.49 + 0.25 + 0.04) = √0.78 ≈ 0.883
    • ความคล้ายคลึงกันของโคไซน์: 0.88 / (1.005 × 0.883) ≈ 0.992 (ความคล้ายคลึงกันสูง)
  • dog [0.8, 0.6, 0.1] และ tree [0.2, 0.1, 0.9]:

    • ผลิตภัณฑ์จุด: (0.8 × 0.2) + (0.6 × 0.1) + (0.1 × 0.9) = 0.16 + 0.06 + 0.09 = 0.31
    • ขนาดของ tree: √(0.2² + 0.1² + 0.9²) = √(0.04 + 0.01 + 0.81) = √0.86 ≈ 0.927
    • ความคล้ายคลึงกันของโคไซน์: 0.31 / (1.005 × 0.927) ≈ 0.333 (ความคล้ายคลึงกันต่ํา)
  • cat [0.7, 0.5, 0.2] และ tree [0.2, 0.1, 0.9]:

    • ผลิตภัณฑ์จุด: (0.7 × 0.2) + (0.5 × 0.1) + (0.2 × 0.9) = 0.14 + 0.05 + 0.18 = 0.37
    • ความคล้ายคลึงกันของโคไซน์: 0.37 / (0.883 × 0.927) ≈ 0.452 (ความคล้ายคลึงกันต่ํา)

แผนภาพของการแสดงภาพความคล้ายคลึงกันของโคไซน์ที่แสดงเวกเตอร์สุนัข แมว และต้นไม้

ผลการวิจัยแสดงให้เห็นว่า "dog" มีความ "cat" คล้ายคลึงกันอย่างมาก (0.992) ในขณะที่ "tree" มีความคล้ายคลึงกันต่ํากว่าทั้ง "dog" (0.333) และ "cat" (0.452) ดังนั้นจึง tree เป็นสิ่งที่แปลกอย่างชัดเจน

การแปลเวกเตอร์ผ่านการบวกและการลบ

คุณสามารถเพิ่มหรือลบเวกเตอร์เพื่อสร้างผลลัพธ์แบบเวกเตอร์ใหม่ ซึ่งสามารถใช้เพื่อค้นหาโทเค็นที่มีเวกเตอร์ที่ตรงกัน เทคนิคนี้ช่วยให้ตรรกะตามเลขคณิตที่ใช้งานง่ายสามารถกําหนดคําศัพท์ที่เหมาะสมตามความสัมพันธ์ทางภาษาศาสตร์

ตัวอย่างเช่น การใช้เวกเตอร์จากก่อนหน้านี้:

  • dog + young = [0.8, 0.6, 0.1] + [0.1, 0.1, 0.3] = [0.9, 0.7, 0.4] = puppy
  • cat + young = [0.7, 0.5, 0.2] + [0.1, 0.1, 0.3] = [0.8, 0.6, 0.5] = kitten

แผนภาพการบวกเวกเตอร์แสดงสุนัข + ลูกสุนัข = ลูกสุนัขและแมว + ลูกสุนัข = ลูกแมว

การดําเนินการเหล่านี้ทํางานเนื่องจากเวกเตอร์สําหรับ "young" เข้ารหัสการเปลี่ยนแปลงความหมายจากสัตว์ที่โตเต็มวัยเป็นสัตว์อายุน้อย

Note

ในทางปฏิบัติเลขคณิตเวกเตอร์ไม่ค่อยให้การจับคู่ที่ตรงกันทุกประการ คุณจะค้นหาคําที่มีเวกเตอร์ ใกล้เคียงที่สุด (คล้ายกันมากที่สุด) กับผลลัพธ์แทน

เลขคณิตทํางานในทางกลับกันเช่นกัน:

  • puppy - young = [0.9, 0.7, 0.4] - [0.1, 0.1, 0.3] = [0.8, 0.6, 0.1] = dog
  • kitten - young = [0.8, 0.6, 0.5] - [0.1, 0.1, 0.3] = [0.7, 0.5, 0.2] = cat

การให้เหตุผลเชิงเปรียบเทียบ

เลขคณิตเวกเตอร์ยังสามารถตอบคําถามเปรียบเทียบเช่น "puppy เป็น dog เป็น kitten? "

ในการแก้ปัญหานี้ให้คํานวณ: kitten - puppy + dog

  • [0.8, 0.6, 0.5] - [0.9, 0.7, 0.4] + [0.8, 0.6, 0.1]
  • = [-0.1, -0.1, 0.1] + [0.8, 0.6, 0.1]
  • = [0.7, 0.5, 0.2]
  • = cat

แผนภาพเลขคณิตเวกเตอร์แสดงลูกแมว - ลูกสุนัข + สุนัข = แมว

ตัวอย่างเหล่านี้แสดงให้เห็นว่าการดําเนินการเวกเตอร์สามารถจับความสัมพันธ์ทางภาษาและเปิดใช้งานการให้เหตุผลเกี่ยวกับรูปแบบความหมายได้อย่างไร

การใช้แบบจําลองความหมายสําหรับการวิเคราะห์ข้อความ

โมเดลความหมายตามเวกเตอร์ให้ความสามารถที่มีประสิทธิภาพสําหรับงานวิเคราะห์ข้อความทั่วไปมากมาย

การสรุปข้อความ

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

การแยกคําหลัก

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

การจดจําเอนทิตีที่มีชื่อ

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

การจําแนกข้อความ

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