ฟีเจอร์เมทริกซ์ใน word2vec คืออะไร?


10

ฉันเป็นผู้เริ่มต้นในเครือข่ายประสาทและตอนนี้ฉันกำลังสำรวจรุ่น word2vec อย่างไรก็ตามฉันมีช่วงเวลาที่ยากลำบากในการทำความเข้าใจว่าคุณลักษณะของเมทริกคืออะไร

ป้อนคำอธิบายรูปภาพที่นี่

ฉันเข้าใจได้ว่าเมทริกซ์แรกนั้นเป็นเวกเตอร์ที่เข้ารหัสร้อนแรงสำหรับคำที่กำหนด แต่เมทริกซ์ที่สองมีความหมายอย่างไร โดยเฉพาะอย่างยิ่งแต่ละค่าเหล่านั้น (เช่น 17, 24, 1 ฯลฯ ) หมายถึงอะไร


ฉันมีคำถามเกี่ยวกับ W ที่สร้างโดย Google คุณสามารถให้ข้อมูลเพิ่มเติมเกี่ยวกับค่าที่ได้รับจาก google ได้หรือไม่ คุณลักษณะนี้ใช้งานอะไร ขอบคุณสำหรับความช่วยเหลือของคุณ
hambi

คำตอบ:


8

คิดที่อยู่เบื้องหลัง word2vec คือการแสดงคำโดยเวกเตอร์ของตัวเลขที่แท้จริงของมิติd ดังนั้นเมทริกซ์ที่สองคือการแสดงคำเหล่านั้น

ฉันบรรทัด -th ของเมทริกซ์นี้เป็นตัวแทนของเวกเตอร์ของฉันคำ -th

สมมติว่าในตัวอย่างของคุณคุณมี 5 คำ: ["Lion", "Cat", "Dog", "Horse", "Mouse"] จากนั้นเวกเตอร์แรก [0,0,0,1,0] หมายความว่าคุณ กำลังพิจารณาคำว่า "ม้า" และดังนั้นการเป็นตัวแทนของ "ม้า" คือ [10, 12, 19] ในทำนองเดียวกัน [17, 24, 1] เป็นตัวแทนของคำว่า "Lion"

สำหรับความรู้ของฉันไม่มี "ความหมายของมนุษย์" โดยเฉพาะกับตัวเลขแต่ละตัวในการเป็นตัวแทนเหล่านี้ หมายเลขหนึ่งไม่ได้แสดงว่าคำนั้นเป็นคำกริยาหรือไม่คำคุณศัพท์หรือไม่ ... มันเป็นเพียงน้ำหนักที่คุณเปลี่ยนเพื่อแก้ปัญหาการเพิ่มประสิทธิภาพของคุณเพื่อเรียนรู้การเป็นตัวแทนของคำศัพท์ของคุณ

บทช่วยสอนนี้อาจช่วย: http://mccormickml.com/2016/04/19/word2vec-tutorial-the-skip-gram-model/แม้ว่าฉันคิดว่าภาพที่คุณใส่มาจากลิงค์นี้

นอกจากนี้คุณยังสามารถตรวจสอบสิ่งนี้ได้ซึ่งอาจช่วยให้คุณเริ่มต้นใช้งานคำเวกเตอร์กับ TensorFlow: https://www.tensorflow.org/tutorials/word2vec


5

TL; DR :

เมทริกซ์แรกแสดงถึงเวกเตอร์อินพุตในรูปแบบร้อนหนึ่งรูปแบบ

เมทริกซ์ที่สองหมายถึงน้ำหนัก synaptic จากเซลล์ประสาทชั้นป้อนข้อมูลไปยังเซลล์ประสาทชั้นซ่อน

รุ่นที่ยาวกว่า :

"คุณลักษณะของเมทริกคืออะไร"

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

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

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

ส่วนแรก [0 0 0 1 0 ... 0] หมายถึงคำที่ป้อนเป็นเวกเตอร์ร้อนหนึ่งและเมทริกซ์อื่น ๆ แสดงน้ำหนักสำหรับการเชื่อมต่อของแต่ละเซลล์ชั้นข้อมูลเข้ากับเซลล์ประสาทชั้นที่ซ่อนอยู่

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

เมื่อการฝึกเสร็จสมบูรณ์คุณต้องใช้เมทริกซ์น้ำหนักนี้เท่านั้นใช้ [0 0 1 0 0 ... 0] เพื่อพูดว่า 'dog' แล้วคูณด้วยเมทริกซ์น้ำหนักที่ได้รับการปรับปรุงเพื่อให้ได้เวกเตอร์ที่แสดงถึง 'dog' ในมิติ = ไม่มีเซลล์ชั้นที่ซ่อนอยู่

ในแผนภาพที่คุณนำเสนอจำนวนของเซลล์ประสาทชั้นที่ซ่อนอยู่คือ 3

ทางด้านขวามือนั้นก็คือเวกเตอร์คำ

เครดิตรูปภาพ: http://www.datasciencecentral.com/profiles/blogs/matrix-multiplication-in-neural-networks

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