เวกเตอร์คำมีการฝึกอบรมร่วมกับเวกเตอร์ย่อหน้าใน doc2vec DBOW อย่างไร

ฉันไม่เข้าใจว่าเวกเตอร์คำเกี่ยวข้องอย่างไรในกระบวนการฝึกอบรมกับ doc2vec ในโหมด DBOW (dm=0) ฉันรู้ว่ามันถูกปิดใช้งานโดยค่าเริ่มต้นด้วย dbow_words=0 แต่จะเกิดอะไรขึ้นเมื่อเราตั้งค่า dbow_words เป็น 1

ในความเข้าใจของฉันเกี่ยวกับ DBOW คำในบริบทจะถูกทำนายโดยตรงจากเวกเตอร์ย่อหน้า ดังนั้นพารามิเตอร์เดียวของโมเดลคือเวกเตอร์ย่อหน้า N p มิติ บวกกับพารามิเตอร์ของตัวแยกประเภท

แต่แหล่งข้อมูลหลายแห่งบอกเป็นนัยว่าเป็นไปได้ในโหมด DBOW เพื่อฝึกเวกเตอร์คำและเอกสารร่วมกัน ตัวอย่างเช่น:

แล้ววิธีนี้ทำอย่างไร? การชี้แจงใด ๆ จะได้รับการชื่นชมอย่างมาก!

หมายเหตุ: สำหรับ DM เวกเตอร์ย่อหน้าจะถูกเฉลี่ย/ต่อด้วยเวกเตอร์คำเพื่อคาดเดาคำเป้าหมาย ในกรณีดังกล่าว จะเห็นได้ชัดว่าเวกเตอร์คำได้รับการฝึกฝนไปพร้อมกับเวกเตอร์เอกสาร และมีพารามิเตอร์ N*p + M*q + classifier (โดยที่ M คือขนาดคำศัพท์และ q พื้นที่เวกเตอร์สลัว)


person Antoine    schedule 09.04.2019    source แหล่งที่มา


คำตอบ (1)


หากคุณตั้งค่า dbow_words=1 การฝึกข้ามคำ-เวกเตอร์แบบข้ามแกรมจะถูกเพิ่มในลูปการฝึก โดยแทรกกับการฝึก PV-DBOW ปกติ

ดังนั้นสำหรับคำเป้าหมายที่กำหนดในข้อความ ประการแรก doc-vector ของผู้สมัครจะถูกใช้ (เพียงอย่างเดียว) เพื่อพยายามทำนายคำนั้น โดยมีการปรับเปลี่ยนการเผยแพร่กลับ จากนั้นจะเกิดขึ้นกับโมเดล & doc-vector จากนั้น แต่ละคำที่อยู่รอบๆ จะถูกใช้ทีละคำในรูปแบบข้ามกรัม เพื่อพยายามคาดเดาคำเป้าหมายเดียวกันนั้น โดยมีการปรับเปลี่ยนตามมา

จากนั้น คำเป้าหมายถัดไปในข้อความจะได้รับ PV-DBOW บวกกับการใช้ข้ามกรัมแบบเดียวกัน และอื่นๆ เรื่อยๆ

เนื่องจากผลที่ตามมาเชิงตรรกะบางประการของสิ่งนี้:

  • การฝึกอบรมใช้เวลานานกว่า PV-DBOW ธรรมดา - ประมาณหนึ่งปัจจัยเท่ากับพารามิเตอร์ window

  • word-vectors โดยรวมได้รับความสนใจในการฝึกอบรมมากกว่า doc-vectors อีกครั้งด้วยปัจจัยที่เท่ากับพารามิเตอร์ window

person gojomo    schedule 09.04.2019
comment
ขอบคุณมากสำหรับคำตอบที่รวดเร็วและเป็นประโยชน์! (1) ฉันเข้าใจว่าในการตั้งค่านี้ เวกเตอร์คำและเอกสารได้รับการฝึกฝนในเวลาเดียวกันจริง ๆ แต่พวกมันจะไม่โต้ตอบกัน ดังนั้นในแง่ของคุณภาพอาจไม่มีการปรับปรุงเทียบกับคำฝึกอบรมและเวกเตอร์เอกสารแยกกัน (2) ฉันสรุปว่าเมื่อ dm=0 และ dbow_words=0 เวกเตอร์คำยังคงถูกสร้างขึ้น แต่ไม่เคยใช้/ฝึกฝน คุณรู้หรือไม่ว่าจะกำจัดมันเพื่อลดขนาดโมเดลบนดิสก์และ RAM ได้อย่างไร? - person Antoine; 10.04.2019
comment
อธิบายเพิ่มเติมใน (1): ฉันอาจเข้าใจผิดบางสิ่งบางอย่าง แต่คำอธิบายของคุณไม่ได้ว่าเวกเตอร์คำและเอกสารได้รับการฝึกฝนพร้อมกัน แต่ไม่มีการโต้ตอบซึ่งขัดแย้งกับผลลัพธ์ที่นำเสนอใน กระดาษ (ส่วนที่ 5) ที่เวกเตอร์คำก่อนการฝึกอบรมช่วยปรับปรุงคุณภาพของเวกเตอร์ dbow doc หรือไม่ หากไม่มีการรั่วไหลระหว่างสองงานนี้ก็ไม่น่าจะเปลี่ยนแปลงอะไรใช่ไหม? - person Antoine; 10.04.2019
comment
ไม่มีวิธีที่รองรับในการละทิ้ง word-vectors ที่จัดสรรและไม่ได้รับการฝึกฝนในกรณี dbow_words=0 หากคุณเสร็จสิ้นทั้งการฝึกอบรมและการอนุมาน (ซึ่งเป็นการฝึกอบรมประเภทหนึ่ง) และจำเป็นต้องเข้าถึง doc-vectors ที่ผ่านการฝึกอบรมแล้ว เท่านั้น คุณอาจ del คุณสมบัติ d2v_model.wv ที่เกี่ยวข้อง - แต่นั่น อาจป้องกันไม่ให้การดำเนินการ save()/load() อื่นๆ ทำงาน ฉันไม่แน่ใจ - person gojomo; 10.04.2019
comment
ในโหมด dbow_words=1 word-vectors จะถูกฝึกด้วยคู่ (context_word-›target_word) บางคู่ จากนั้น doc-vectors จะถูกฝึกด้วยคู่ (doc_tag-›target_word) จากนั้นจะถูกทำซ้ำในลักษณะแทรกสลับ ดังนั้นจึงไม่มีตัวอย่างการฝึกอบรมรายบุคคลที่เกี่ยวข้องกับทั้งสองอย่าง แต่นั่นก็เป็นกรณีของหลาย ๆ คำในการฝึกคำศัพท์ปกติ - แต่คำเหล่านั้นยังคงอยู่ในตำแหน่งสัมพันธ์ที่เป็นประโยชน์ นั่นเป็นเพราะว่าตัวอย่างการฝึกอบรมทั้งหมดแชร์เลเยอร์เอาท์พุตที่ซ่อนอยู่ของโครงข่ายประสาทเทียมร่วมกัน ดังนั้น ตัวอย่างที่ตัดกันคือแต่ละตัวอย่างเปลี่ยนแปลงพารามิเตอร์ที่ใช้ร่วมกัน และทางอ้อมส่งผลกระทบซึ่งกันและกัน - person gojomo; 10.04.2019
comment
การเพิ่ม dbow_words ช่วยหรือทำให้เสียหายจะขึ้นอยู่กับข้อมูล เป้าหมาย และพารามิเตอร์เมตาของคุณโดยเฉพาะ การเพาะโมเดล Doc2Vec ด้วยเวกเตอร์คำศัพท์ที่ผ่านการฝึกอบรมมาแล้วจะช่วยหรือไม่ ซึ่งเป็นตัวเลือกที่ไม่มีการสนับสนุนอย่างเป็นทางการจาก gensim จะขึ้นอยู่กับว่าคำศัพท์ที่ได้รับการฝึกอบรมล่วงหน้าเหมาะสมกับเอกสารของคุณหรือไม่ และโหมดโมเดล และในโหมด dbow_words=0 word-vectors ที่โหลดไว้ล่วงหน้า ไม่สามารถ มีผลกระทบใดๆ ทั้งทางตรงและทางอ้อมต่อ doc-vectors - เท่าที่กระดาษแนะนำว่า มันสับสน (ฉันยังกล่าวถึงประเด็นนี้ที่: groups.google.com/d/ msg/gensim/4-pd0iA_xW4/UzpuvBOPAwAJ ) - person gojomo; 10.04.2019
comment
คุณสามารถค้นหาข้อกังวลของฉันเพิ่มเติมเกี่ยวกับการอ้างสิทธิ์/การทดสอบ/ช่องว่างเฉพาะของเอกสารนั้นได้ในการสนทนาบางส่วนที่ปัญหา GitHub ของโครงการ เริ่มต้นที่ github.com/RaRe-Technologies/gensim/issues/ – และในลิงก์กลุ่มสนทนาอื่นๆ จากปัญหานั้น - person gojomo; 10.04.2019
comment
ขอบคุณมากที่สละเวลาให้คำอธิบายโดยละเอียดและลิงก์ที่เป็นประโยชน์ ถือเป็นการชื่นชมอย่างมาก แน่นอนคุณพูดถูกเกี่ยวกับสิ่งที่มีอิทธิพลทางอ้อม ฉันไม่ได้พิจารณาถึงความจริงที่ว่าเมทริกซ์การฉายภาพ->เอาท์พุตนั้นถูกแชร์ทั้งโดยเวกเตอร์คำและเอกสาร ขอบคุณอีกครั้ง! - person Antoine; 11.04.2019