ความแตกต่างระหว่าง RNNs การสร้างข้อความที่อิงกับคำและการเขียนคืออะไร?


15

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

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

คำตอบ:


15

นี่คือสิ่งที่ฉันเรียนรู้เมื่อเร็ว ๆ นี้

เห็นได้ชัดว่าเมื่อพูดถึงการสร้างข้อความ RNN เรากำลังพูดถึงโมเดลภาษา RNN เมื่อถามเกี่ยวกับคำ / ถ่านตาม RNNs รุ่นข้อความเราจะถามเกี่ยวกับคำ / ถ่านตามรุ่น RNN ภาษา (LM)

LMs ที่ทำงานด้วย Word จะแสดงความแม่นยำที่สูงขึ้นและต้นทุนการคำนวณที่ต่ำกว่าLM ที่ใช้ถ่าน

การลดลงของประสิทธิภาพนี้ไม่น่าเป็นไปได้เนื่องจากความยากลำบากสำหรับแบบจำลองระดับตัวอักษรในการจับภาพหน่วยความจำระยะสั้นนานขึ้นเนื่องจากเครือข่ายที่เกิดขึ้นอีกต่อไปของหน่วยความจำระยะสั้น (LSTM) ทำงานได้ดีขึ้น

นี่เป็นเพราะ RNN LM ที่ใช้ถ่านต้องใช้เลเยอร์ที่ซ่อนอยู่ที่ใหญ่กว่ามากในการสร้างแบบจำลองการพึ่งพาระยะยาวซึ่งหมายถึงต้นทุนการคำนวณที่สูงขึ้น

ดังนั้นเราสามารถพูดได้ว่า

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

อย่างไรก็ตามถ่านตามเหลือ RNN ภาษารูปแบบที่ดีขึ้นด้วยลักษณะทางสัณฐานวิทยาที่อุดมไปด้วยเช่นเสร็จสิ้นตุรกี, รัสเซีย ฯลฯ การใช้คำตาม RNN เหลือรูปแบบภาษาเช่นเป็นเรื่องยากถ้าเป็นไปได้ที่ทุกคนและไม่ควร

การวิเคราะห์ข้างต้นเหมาะสมโดยเฉพาะอย่างยิ่งเมื่อคุณดูข้อความผลลัพธ์ที่สร้างโดยRNN ที่ใช้ถ่าน:

ความประหลาดใจในการลงทุนไม่ได้ไปหาเงิน ฉันไม่ใช่ บริษัท ที่มีเวลาน่าสนใจอย่างรวดเร็วไม่จำเป็นต้องออกโปรแกรมเมอร์คนเดียวกัน

ในขณะที่LM Likelihood สูงสุดแบบอิงถ่านแบบง่ายๆพร้อมหน้าต่าง 13 ตัวอักษรมอบสิ่งนี้:

และเมื่อเธอทำอิฐแข็งหลายก้อน เขาซ้อนกันในกองและเท้าของเธอกระทืบ แพทย์วินิจฉัยเขาด้วยค้างคาว ผู้หญิงกับแฟนถามเธอ

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

Char-based RNN LMs สามารถเลียนแบบการเรียงลำดับไวยากรณ์ที่ถูกต้องสำหรับภาษาที่หลากหลายต้องการเลเยอร์ที่ใหญ่กว่าและมีราคาแพงกว่าในขณะที่RNN LMs ที่ใช้คำพูดจะฝึกได้เร็วขึ้นและสร้างข้อความที่สอดคล้องกันมากขึ้น .


1
ความคิดเห็นที่ยอดเยี่ยม ควรเพิ่มว่าสำหรับปัญหาบางอย่างอย่างใดอย่างหนึ่งอาจทำให้รู้สึกเพิ่มเติมโดยไม่คำนึงถึงข้อกังวลเกี่ยวกับการคำนวณ ตัวอย่างเช่นหากเป้าหมายของคุณคือศึกษาเวกเตอร์คำเพื่อหาความสัมพันธ์ระหว่างคำหรือถ้าคุณต้องการสร้างข้อความตามหัวข้อคำคุณต้องไปกับ RNN ที่อิงคำ และในทางกลับกันอาจมีปัญหาที่ RNN แบบใช้ถ่านเป็นวิธีที่จะไป นอกจากนี้ยังขึ้นอยู่กับสิ่งที่ผู้ใช้พยายามทำ
Ricardo Cruz

ฉันไม่เข้าใจความคิดเห็นที่ผ่านมาของคุณ: "RNN LM (Char) ที่มาจาก Char ล้มเหลวเมื่อพูดถึงเรื่องจริง" ฉันไม่ได้เห็น RNN ที่อิงกับคำศัพท์ แต่อย่างใด ทำไมคุณถึงแยกรุ่นที่ใช้ถ่านได้ที่นี่
Ricardo Cruz

ฉันได้อัปเดตตอนจบที่ไม่ชัดเจนแล้ว
แร่ธาตุ

คำตอบที่ดี! แน่นอนว่าบางคนสามารถเพิ่มได้อย่างง่ายดายว่ามันขึ้นอยู่กับงานที่เกี่ยวข้องขนาดของชุดข้อมูลภาษาและระดับของการประมวลผลล่วงหน้าที่คุณยินดีทำ ตัวอย่างเช่นในการประมวลผลภาษาสัณฐานที่สมบูรณ์ยิ่งขึ้นและเพื่อจัดการกับคำศัพท์ (OOV) คุณยังสามารถใช้คำว่าแบบจำลองด้วยการแทรกคำย่อการติดแท็ก pos และเพิ่มคำนำหน้าคำต่อท้าย ฯลฯ
Claude COULOMBE

5

มีการเขียนที่ดีขึ้นเกี่ยวกับการเป็นภาษาการสร้างแบบจำลองพันล้านคำ ด้านล่างเป็นข้อความที่ตัดตอนมาบางส่วน:

แบบจำลองระดับคำมีข้อได้เปรียบที่สำคัญมากกว่าแบบจำลองระดับตัวอักษร
ใช้ลำดับดังต่อไปนี้เป็นตัวอย่าง (อ้างจาก Robert A. Heinlein):

ความคืบหน้าไม่ได้เกิดจากผู้ตื่นเช้า มันทำโดยคนขี้เกียจที่พยายามหาวิธีที่ง่ายกว่าในการทำอะไรบางอย่าง

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

ข้อได้เปรียบหลักของตัวละครเหนือแบบจำลองคำศัพท์คือพวกมันมีคำศัพท์ที่เล็กมาก ตัวอย่างเช่นชุดข้อมูล GBW จะมีอักขระประมาณ 800 ตัวเมื่อเปรียบเทียบกับ 800,000 คำ (หลังจากตัดโทเค็นความถี่ต่ำ) ในทางปฏิบัติหมายความว่าแบบจำลองตัวละครจะต้องใช้หน่วยความจำน้อยกว่าและมีการอนุมานเร็วกว่าคำคู่ ข้อได้เปรียบอีกประการหนึ่งคือไม่ต้องใช้โทเค็นเป็นขั้นตอนก่อนการประมวลผล


1

ในความคิดของฉันตัวละครที่ใช้ RNNs จะทำงานได้ดีขึ้น แต่พวกเขาต้องการข้อมูลมากกว่าแบบจำลองคำและตัวละครที่ต้องอาศัยการฝึกฝนเป็นระยะเวลานาน ฉันจะบอกว่ามันเป็นการทดลองและข้อผิดพลาดมากกว่ารวมถึงการแลกเปลี่ยนระหว่างข้อมูลและพลังการคำนวณที่มีอยู่

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.