ในที่เก็บนี้เราฝึกอบรมแบบจำลองภาษาสามแบบบนคลังข้อมูล Canonical Penn Treebank (PTB) คลังข้อมูลนี้แบ่งออกเป็นชุดการฝึกอบรมและการตรวจสอบความถูกต้องของโทเค็นประมาณ 929K และ 73K ตามลำดับ เราใช้งาน (1) แบบจำลอง trigram แบบดั้งเดิมที่มีการแก้ไขเชิงเส้น (2) รูปแบบภาษาที่น่าจะเป็นของระบบประสาทตามที่อธิบายโดย (Bengio et al., 2003) และ (3) เครือข่าย neural ซ้ำ (RNN) ที่มีหน่วยความจำระยะยาวระยะยาว (LSTM) นอกจากนี้เรายังทดลองกับชุดของการดัดแปลงโมเดล LSTM และบรรลุความงุนงง 92.9 ในชุดการตรวจสอบด้วยโมเดลหลายชั้น
ในงานการจำแนกความเชื่อมั่นของ Stanford Sentiment Treebank เราได้รับการจัดเตรียมประโยคจากบทวิจารณ์ภาพยนตร์ แต่ละประโยคได้รับการติดแท็กเป็นบวกลบหรือเป็นกลาง เราติดตาม (Kim, 2014) ในการลบตัวอย่างที่เป็นกลางและกำหนดงานเป็นการตัดสินใจแบบไบนารีระหว่างประโยคบวกและลบ
สำหรับตัวแปรแต่ละรุ่นเราทำนายการทำนายอย่างเป็นทางการ
สำหรับกรณีทดสอบ
เช่น

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

สำหรับทั้งหมด
เนื่องจากเราพิจารณาอินพุตความเชื่อมั่นในเชิงบวกและลบในชุดข้อมูล SST-2 เท่านั้น เราใช้ Pytorch สำหรับการใช้งานทุกรุ่นและทุกรุ่นได้รับการฝึกฝนสำหรับ 10 Epochs แต่ละครั้งโดยใช้แบทช์ขนาด 10, อัตราการเรียนรู้ของ 1E-4, Adam Optimizer และฟังก์ชั่นการสูญเสียความน่าจะเป็นบันทึกเชิงลบ ข้อยกเว้นเพียงอย่างเดียวสำหรับการตั้งค่านี้คือสำหรับ Bayes ไร้เดียงสา Multinomial ซึ่งพอดีในยุคเดียวกับพารามิเตอร์การเรียนรู้
= 1.0.
อนุญาต 

เป็นเวกเตอร์จำนวนฟีเจอร์สำหรับกรณีการฝึกอบรม
ด้วยฉลากการจำแนกประเภท
-
เป็นชุดของคุณสมบัติและ
แสดงถึงจำนวนของคุณลักษณะที่เกิดขึ้น
ในกรณีการฝึกอบรม
- กำหนดเวกเตอร์นับของ
เช่น
-
-
สำหรับพารามิเตอร์การปรับให้เรียบ
- เราติดตาม Wang และ Manning ใน Binarizing the Counts;
- 
- เกี่ยวกับสมการ (1)
เป็นอัตราส่วนบันทึกระหว่างจำนวนตัวอย่างบวกและลบหรือไม่
= บันทึก (
-
) ที่ไหน
และ
เป็นจำนวนของกรณีการฝึกอบรมเชิงบวกและเชิงลบในชุดข้อมูลการฝึกอบรม
คือจำนวนของการป้อนข้อมูลที่เกิดขึ้น
, และ
เป็นฟังก์ชันตัวบ่งชี้ไบนารีที่แผนที่
ถึง 1 ถ้ามากกว่า 0 และ 0 มิฉะนั้น เราพิจารณาเฉพาะ unigrams เป็นคุณสมบัติ
เราเรียนรู้เมทริกซ์น้ำหนักและอคติ
และ
เพื่อเพิ่มประสิทธิภาพ

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

ที่ไหน 

และ 

, และ
-
สำหรับทั้งหมด
เป็นมิติของประโยคที่ฝังและฝังคำตามลำดับ การเข้ารหัสนี้
จากนั้นจะถูกส่งผ่านไปยังเลเยอร์ที่เชื่อมต่ออย่างเต็มรูปแบบเดียวที่แมปโดยตรงไปยังหน่วยเอาต์พุตสองหน่วยแสดงคลาสเอาต์พุตภายใต้การเปิดใช้งาน SoftMax
อนุญาต 

เป็น
-เวกเตอร์คำมิติที่สอดคล้องกับไฟล์
-คำในประโยคอินพุต หลังจากช่องว่างทั้งหมดในชุดอินพุตให้มีความยาวเท่ากัน
, ที่ไหน
เป็นประโยคความยาวสูงสุดของประโยคทั้งหมดในชุดแต่ละประโยคจะถูกแสดงเป็น

ที่ไหน
คือการดำเนินการต่อเนื่อง อนุญาต
เป็นตัวแทนของการต่อคำ
-
-
- ในเครือข่ายประสาทของ Convolutional เราใช้การดำเนินการ Convolution 

ด้วยขนาดตัวกรอง
ในการผลิตคุณสมบัติที่ขนาดตัวกรองมีขนาดหน้าต่างของคำที่จะโน้มน้าวใจได้อย่างมีประสิทธิภาพ อนุญาต
เป็นคุณสมบัติที่สร้างขึ้นโดยการดำเนินการนี้ แล้ว

ที่ไหน
เป็นคำอคติและ
เป็นฟังก์ชั่นหน่วยเชิงเส้น (RELU) ที่แก้ไขแล้ว ใช้ขนาดความยาวตัวกรอง
เหนือหน้าต่างที่เป็นไปได้ทั้งหมดของคำในประโยคอินพุตของเราจะสร้างแผนที่คุณสมบัติ

ในการดำเนินการของเราเราเชื่อในขนาดตัวกรอง 

จากนั้นเชื่อมต่อคุณสมบัติของแต่ละ
เป็นเวกเตอร์เดียว เราใช้การดำเนินงานการรวมตัวสูงสุด (Collobert et al, 2011) กับเวกเตอร์ของแผนที่คุณสมบัติที่ต่อกันนี้แสดงแทน
และได้รับ
= สูงสุด (
- จากนั้นเราจะสมัครออกกลางคันกับ
= 0.50 ถึง
ในฐานะที่เป็นตัววัดการทำให้เป็นมาตรฐานกับการ overfitting ให้ส่งผ่านไปยังเลเยอร์ที่เชื่อมต่ออย่างสมบูรณ์และคำนวณ softmax ผ่านเอาต์พุต
ในที่สุดเราก็นำไปใช้กับชุดของการดัดแปลงสถาปัตยกรรม CNN เพื่อให้การปรับปรุงประสิทธิภาพเล็กน้อยในชุดข้อมูล SST-2 ในการดำเนินการนี้เราใช้เวกเตอร์ที่ผ่านการฝึกอบรมมาก่อนของสแตนฟอร์ด (Pennington et al., 2014) เราทำการเปลี่ยนแปลงเหล่านี้:
ต่อไปนี้ (Kim, 2014) เราใช้สองสำเนาของตารางการฝังคำในระหว่างขั้นตอนการประชุมและการเจาะสูงสุด-หนึ่งที่ไม่คงที่หรืออัปเดตในระหว่างการฝึกอบรมเป็นโมดูลปกติในโมเดลและอีกอันที่ถูกตัดออกจากเครื่องมือเพิ่มประสิทธิภาพและเก็บรักษาไว้เป็นแบบคงที่ตลอดการฝึกอบรม ในการส่งผ่านไปข้างหน้าของโมเดลชุดฝังตัวทั้งสองนี้จะถูกรวมเข้าด้วยกันตามมิติ "ช่อง" จากนั้นก็ผ่านเข้าไปในชั้นสามของ convolutional เป็นเทนเซอร์เดี่ยวโดยมีค่าสองค่าสำหรับแต่ละมิติ 300 ในรูปแบบถุงมือ
หลังจากผลิตเวกเตอร์คุณลักษณะที่รวมกันซึ่งแสดงถึงคุณสมบัติสูงสุดที่ผ่านมาจากเมล็ดพันธุ์ convolutional ทั้งสามเราเพียงแค่เพิ่มจำนวนคำที่ไม่ได้ติดตั้งของอินพุตเป็นมิติพิเศษเดียวทำให้เกิดเทนเซอร์ 301 มิติซึ่งได้รับการแมปกับเอาต์พุต 2 หน่วย จากมุมมองทางวิศวกรรมเราพบว่าสิ่งนี้ช่วยปรับปรุงประสิทธิภาพเล็กน้อยในชุดข้อมูล SST-2 โดยเฉลี่ยประโยคบวกนั้นยาวกว่าคำที่เป็นลบเล็กน้อย-19.41 คำเทียบกับ 19.17 ยังไม่ชัดเจนว่าสิ่งนี้จะเก็บไว้ในชุดข้อมูลที่แตกต่างกันหรือไม่หรือเฉพาะเจาะจงกับ SST-2 (แม้ว่ามันจะไม่ชัดเจนทั้งหมดที่จะไม่และดูเหมือนจะบ่งบอกถึงคำถามคลังข้อมูลที่น่าสนใจ-ประโยค "บวก" โดยทั่วไปนานกว่าคำว่า "ลบ"?)
นอกเหนือจากการเปลี่ยนแปลงทั้งสองที่อธิบายไว้ข้างต้นแล้วเรายังทดลองกับการปรับเปลี่ยนอื่น ๆ ที่หลากหลายในสถาปัตยกรรม CNN รวมถึง:
การรวมโมเดล CBOW เข้ากับสถาปัตยกรรม CNN โดยการเชื่อมต่อเวกเตอร์ CNN MaxPooled ด้วยเวกเตอร์ CBOW เฉลี่ยก่อนที่จะทำแผนที่ไปยังหน่วยเอาท์พุทสุดท้าย
แทนที่ถุงมือฝังตัวด้วย googlenews embeddings (Mikolov et al., 2013) ความคิดนี้มาจากความคิดที่ว่าอาจมีความเฉพาะเจาะจงของโดเมนที่มีประโยชน์สำหรับ PTB เนื่องจากการฝังตัวเหล่านี้ได้รับการฝึกฝนเกี่ยวกับบทความข่าว
นำไปใช้การฝัง“ หลายช่องทาง” ตามที่อธิบายโดย (Kim, 2014) ในบริบทของสถาปัตยกรรม CNN แทนที่จะใช้เลเยอร์ฝังตัวเดียวที่ได้รับการปรับปรุงในระหว่างการฝึกอบรมเมทริกซ์น้ำหนักที่ได้รับการฝึกอบรมมาก่อนจะถูกคัดลอกออกเป็นสองเลเยอร์ฝังแยกกัน: หนึ่งที่ได้รับการปรับปรุงระหว่างการฝึกอบรมและอีกอันที่ถูกละเว้นจากเครื่องมือเพิ่มประสิทธิภาพ ในระหว่างการทำดัชนีคำผ่านไปข้างหน้าจะถูกแมปกับแต่ละตารางแยกกันและจากนั้นเทนเซอร์ทั้งสองจะถูกต่อกันตามมิติการฝังเพื่อสร้างเทนเซอร์ฝังตัว 600 มิติเดียวสำหรับแต่ละโทเค็น
ทดลองด้วยวิธีการที่แตกต่างกันในการแบตช์ แทนที่จะสร้างแบบจำลองคลังข้อมูลเป็นลำดับเดียวที่ไม่แตกหักในระหว่างการฝึกอบรม (เช่น BPTTIterator ของ Torchtext) เราพยายามแยกคลังข้อมูลออกเป็นแต่ละประโยคแล้วสร้างกรณีการฝึกอบรมแยกต่างหากสำหรับแต่ละโทเค็นในแต่ละประโยค ตัวอย่างเช่นสำหรับประโยค“ ฉันชอบแมวดำ” เราผลิตบริบทห้าประการ:
. “ <SOS> ฉัน”
ข. “ <SOS> ฉันชอบ”
ค. “ <SOS> ฉันชอบสีดำ”
d. “ <SOS> ฉันชอบแมวดำ”
ก. “ <SOS> ฉันชอบแมวดำ <EOS> ”
และโมเดลได้รับการฝึกฝนให้ทำนายโทเค็นสุดท้ายในแต่ละบริบทที่เวลา T ขั้นตอน t จากโทเค็น T -1 แรก เราใช้ฟังก์ชั่น pack_padded_sequence ของ Pytorch เพื่อจัดการอินพุตความยาวตัวแปรกับ LSTM ในทางปฏิบัติสิ่งนี้น่าดึงดูดเพราะทำให้ง่ายต่อการสร้างคุณสมบัติที่หลากหลายจากบริบทก่อนคำ -ตัวอย่างเช่นมันง่ายที่จะใช้ LSTM แบบสองทิศทางด้วยการส่งต่อและย้อนหลังมากกว่าบริบท T -1 ซึ่งความรู้ของเรานั้นยากหรือเป็นไปไม่ได้ภายใต้ BPTTIterator การฝึกอบรมดั้งเดิม เราตระหนักว่าหลังจากลองทำสิ่งนี้แล้วว่ามันจะไม่สามารถแข่งขันกับการเป็นตัวแทนอย่างต่อเนื่องของคลังข้อมูลของ BPTTIterator ได้เนื่องจากประโยคในคลังข้อมูลถูกจัดกลุ่มตามบทความ- และในระดับใจ / แนวคิด ซึ่งหมายความว่าโมเดลสามารถเรียนรู้ข้อมูลที่เป็นประโยชน์ในขอบเขตประโยคเกี่ยวกับประเภทของคำที่ควรมาต่อไป
ทดลองใช้กลยุทธ์การทำให้เป็นมาตรฐานที่แตกต่างกันเช่นการเปลี่ยนแปลงเปอร์เซ็นต์การออกกลางคันโดยใช้การออกกลางคันกับเลเยอร์ฝังตัวเริ่มต้น ฯลฯ
ไม่มีการเปลี่ยนแปลงเหล่านี้ดีขึ้นในชั้นเดี่ยวเริ่มต้น LSTM 1,000 ยูนิต รูปแบบที่มีประสิทธิภาพดีที่สุดของเราคือรูปแบบที่อธิบายไว้ในส่วน 3.4 ความงุนงงที่เราประสบความสำเร็จกับแต่ละโมเดลส่วนที่ 3 ของเราได้อธิบายไว้ในตารางที่ 1
| แบบอย่าง | ความงุนงง |
|---|---|
| trigram ที่มีการแก้ไขเชิงเส้น | 178.03 |
| รูปแบบภาษาประสาท (5 กรัม) | 162.2 |
| LSTM 1 ชั้น | 101.5 |
| การเชื่อมต่อ LSTM + 3 ชั้น | 92.9 |
แม้ว่า LSTM แบบหลายชั้นที่มีการเชื่อมต่อจะเอาชนะพื้นฐาน LSTM ที่เรียบง่าย แต่เราไม่สามารถทำซ้ำประสิทธิภาพการตรวจสอบความน่าสะพรึงกลัว 78.4 ที่อธิบายโดย (Zaremba et al., 2015) โดยใช้คลังข้อมูลเดียวกันและสถาปัตยกรรมที่คล้ายกัน กล่าวคือเมื่อใช้การกำหนดค่าที่อธิบายไว้ในกระดาษ (2 ชั้น, สถาปัตยกรรม 650- และ 1,500 หน่วย) โมเดลของเรา overfit ภายใน 5-6 Epochs แม้เมื่อใช้การออกกลางคันในลักษณะที่ตรงกับวิธีการที่อธิบายไว้ในกระดาษ ในทางตรงกันข้าม (Zaremba et al., 2015) พูดถึงการฝึกอบรมสำหรับมากถึง 55 Epochs)
เราฝึกอบรมแบบจำลองสี่ประเภท - แบบจำลอง trigram แบบดั้งเดิมที่มีการแก้ไขเชิงเส้นโดยมีน้ำหนักที่เรียนรู้จากการเพิ่มความคาดหวังสูงสุด รูปแบบภาษาเครือข่ายประสาทที่เรียบง่ายดังต่อไปนี้ (Bengio et al., 2003); พื้นฐาน LSTM ชั้นเดียว; และส่วนขยายของรุ่นนี้ที่ใช้สามชั้นที่มีขนาดต่างกันข้ามการเชื่อมต่อสำหรับสองชั้นแรกและการทำให้เป็นมาตรฐานตามที่อธิบายโดย (Zaremba et al., 2015) โมเดลสุดท้ายประสบความสำเร็จที่ 92.9 เมื่อเทียบกับ 78.4 และ 82.7 รายงานโดย (Zaremba et al., 2015) โดยใช้พารามิเตอร์ที่เทียบเท่ากัน
Y. Bengio, R. Ducharme, P. Vincent, C. Jauvin “ รูปแบบภาษาที่น่าจะเป็นของระบบประสาท” วารสารการวิจัยการเรียนรู้ของเครื่อง 3 หน้า 1137–1155 2546.
D. Jurafsky “ การสร้างแบบจำลองภาษา: บทนำสู่ N-Grams” การบรรยาย มหาวิทยาลัยสแตนฟอร์ด CS124 2555.
Y. Kim “ เครือข่ายประสาทเทียมสำหรับการจำแนกประโยค” การดำเนินการของการประชุมปี 2014 เกี่ยวกับวิธีการเชิงประจักษ์ในการประมวลผลภาษาธรรมชาติ (EMNLP), หน้า 1746–1751 2014.
T. Mikolov, K. Chen, G. Corrado, J. Dean “ การประมาณค่าการแสดงคำอย่างมีประสิทธิภาพในพื้นที่เวกเตอร์” arxiv preprint arxiv: 1301.3781 2013.
J. Pennington, R. Socher, C. Manning “ ถุงมือ: เวกเตอร์ทั่วโลกสำหรับการเป็นตัวแทนคำ” การดำเนินการของการประชุมปี 2014 เกี่ยวกับวิธีการเชิงประจักษ์ในการประมวลผลภาษาธรรมชาติ (EMNLP), หน้า 1532-1543 2014.
W. Zaremba, I. Sutskever, O. Vinyals 2558. “ การทำให้เป็นมาตรฐานของเครือข่ายประสาทอีกครั้ง” arxiv preprint arxiv: 1409.2329 2558.