แบบจำลอง skip-gram ของ Word2Vec สร้างเวกเตอร์เอาต์พุตได้อย่างไร


11

ฉันมีปัญหาในการทำความเข้าใจโมเดลอัลกอริทึมของ Word2Vec

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

อย่างไรก็ตามในกรณีของ skip-gram คุณจะได้รับเวกเตอร์คำอินพุตโดยการคูณการเข้ารหัสแบบร้อนกับเมทริกซ์อินพุตและจากนั้นคุณควรจะได้เวกเตอร์ C (= ขนาดหน้าต่าง) สำหรับคำบริบทโดยการคูณ การแทนค่าเวกเตอร์อินพุทด้วยเมทริกซ์เอาต์พุต W '

สิ่งที่ฉันหมายถึงคือการมีคำศัพท์ขนาดและการเข้ารหัสขนาด ,อินพุตเมทริกซ์และเป็นเมทริกซ์เอาต์พุต ให้คำว่าด้วยการเข้ารหัสหนึ่งร้อนด้วยคำบริบทและ (กับ reps หนึ่งร้อนและ ) ถ้าคุณคูณด้วยเมทริกซ์อินพุตคุณจะได้รับตอนนี้คุณจะสร้างเวกเตอร์คะแนนจากสิ่งนี้ได้อย่างไรN W R V × N W 'R N × V W ฉันx ฉันW J W H x J x H x ฉัน W H : = x T ฉัน W = W ( ฉัน, )R N CVNWRV×NWRN×VwixiwjwhxjxhxiWh:=xiTW=W(i,)RNC

คำตอบ:


7

ฉันมีปัญหาเดียวกันกับการทำความเข้าใจ ดูเหมือนว่าเวกเตอร์คะแนนผลลัพธ์จะเหมือนกันสำหรับคำศัพท์ C ทั้งหมด แต่ความแตกต่างของข้อผิดพลาดกับเวกเตอร์ที่เป็นตัวแทนร้อนแรงแต่ละอันจะแตกต่างกัน ดังนั้นเวกเตอร์ข้อผิดพลาดจะถูกใช้ในการกระจายกลับเพื่อปรับปรุงน้ำหนัก

โปรดแก้ไขฉันด้วยถ้าฉันผิด

แหล่งที่มา: https://iksinc.wordpress.com/tag/skip-gram-model/


ดังนั้น ? WRN×(VC)
Fabich

0

ในทั้งสองแบบคะแนนเอาท์พุทขึ้นอยู่กับฟังก์ชั่นคะแนนที่คุณใช้ สามารถมีฟังก์ชั่นสองคะแนน softmax หรือการสุ่มตัวอย่างเชิงลบ ดังนั้นคุณใช้ฟังก์ชันคะแนน softmax คุณจะได้รับขนาดฟังก์ชันคะแนนเป็น N * D นี่ D คือมิติของเวกเตอร์คำ N คือจำนวนตัวอย่าง แต่ละคำเป็นเหมือนคลาสในสถาปัตยกรรมตาข่ายประสาท


0

ในโมเดล skip-gram คำที่เข้ารหัสหนึ่งคำร้อนจะถูกป้อนเข้ากับตาข่ายสองชั้นตื้น เนื่องจากอินพุตเป็นแบบเข้ารหัสร้อนเดียวเลเยอร์ที่ซ่อนอยู่มีเพียงหนึ่งแถวของเมทริกซ์น้ำหนักที่ซ่อนอยู่ในอินพุต (สมมุติว่าแถวเพราะแถวk t hของเวกเตอร์อินพุตเป็นหนึ่ง)kthkth

คะแนนสำหรับแต่ละคำคำนวณโดยสมการต่อไปนี้

u=WTh

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

p(wc,j=wO,c|wI)=expuc,jj=1Vexpuj

อย่างที่คุณเห็นการกระจายทั้งหมดนั้นแตกต่างกัน (สำหรับข้อมูลเพิ่มเติม: https://arxiv.org/pdf/1411.2738.pdf ) ความจริงแล้วนี่จะชัดเจนมากขึ้นหากพวกเขาจะใช้บางอย่างดังรูปต่อไปนี้C

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

References:

  • Xin Rong อธิบายการเรียนรู้พารามิเตอร์ของ Word2Vec

ดังนั้นเมทริกซ์ W จึงเป็นคำว่าเวกเตอร์ (เอาต์พุตของอัลกอริทึม) และ W 'เป็นเมทริกซ์ที่แตกต่างกันโดยสิ้นเชิงที่เราทิ้งไป?
Nadav B

W 'ยังเป็นคำพาหะที่ดีเท่ากัน
user3108764

1
p(wc,j=wO,c|wI)=expuc,jj=1Vexpuj=expujj=1Vexpuj
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.