การไล่ระดับสีสำหรับ skipgram word2vec


9

ฉันกำลังประสบปัญหาในปัญหาการมอบหมายการเรียนรู้อย่างลึกของ Stanford NLP http://cs224d.stanford.edu/assignment1/assignment1_soln

ฉันพยายามที่จะเข้าใจคำตอบของ 3a ที่พวกเขากำลังหาอนุพันธ์ของเวกเตอร์สำหรับคำกลาง

สมมติว่าคุณได้คำทำนายเวกเตอร์ตรงกับคำกลางcสำหรับ skipgram และการคาดคะเนคำจะทำกับฟังก์ชัน softmax ที่พบในรุ่น word2vecvc

y^o=p(o|c)=exp(uoTvc)w=1Wexp(uwTvc)

โดยที่wหมายถึงคำ w-th และ (w = 1,..., W) คือเวกเตอร์คำว่า "เอาท์พุท" สำหรับคำทั้งหมดในคำศัพท์ สมมติว่าค่าใช้จ่ายข้ามเอนโทรปีถูกนำไปใช้กับการทำนายนี้และคำoเป็นคำที่คาดหวังuw

โดยที่คือเมทริกซ์ของเวกเตอร์เอาต์พุตทั้งหมดและให้เป็นเวกเตอร์คอลัมน์ของการคาดคะเนคำ softmax และyเป็นป้ายกำกับที่ร้อนแรงที่สุดซึ่ง ยังเป็นเวกเตอร์คอลัมน์U=[u1,u2,···,uW]y^

ที่เอนโทรปีของการข้ามคือCE(y,y^)=iyilog(y^i)

ดังนั้นคำตอบสำหรับการไล่ระดับสีสำหรับเวกเตอร์ตรงกลางคือJvc=UT(y^y).

ใครช่วยแสดงขั้นตอนในการไปถึงสิ่งนี้ได้บ้าง ฉันใช้คำถามนี้เป็นข้อมูลอ้างอิงอนุพันธ์ของการสูญเสียเอนโทรปีใน word2vecแต่ฉันอยากรู้การแสดงUT(y^y).

คำตอบ:


15

ก่อนอื่นเรามาวางแผนสิ่งที่เรามีและสมมุติฐานของเราเกี่ยวกับรูปร่างของเวกเตอร์ที่ต่างกัน ปล่อย,

  1. |W|เป็นจำนวนคำในคำศัพท์
  2. yและเป็นเวกเตอร์คอลัมน์ของรูปร่างx 1y^|W|
  3. uiและเป็นเวกเตอร์คอลัมน์ของรูปร่าง X 1 ( = มิติของงานแต่งงาน)vjDD
  4. yเป็นเวกเตอร์คอลัมน์ที่มีการเข้ารหัสหนึ่งร้อนของรูปร่างx 1|W|
  5. y^เป็นเวกเตอร์คอลัมน์การคาดคะเน softmax ของรูปร่างx 1|W|
  6. y^i=P(i|c)=exp(uiTvc)w=1Wexp(uwTvc)
  7. การสูญเสียเอนโทรปีข้าม:J=i=1Wyilog(yi^)
  8. U=[u1,u2,...,uk,...uW]เป็นเมทริกซ์ที่ประกอบด้วยเวกเตอร์คอลัมน์uk

ตอนนี้เราสามารถเขียน ง่ายขึ้น ตอนนี้เรารู้แล้วว่านั้นมีการเข้ารหัสร้อนแรงดังนั้นองค์ประกอบทั้งหมด เป็นศูนย์ยกเว้นหนึ่งที่ดัชนี, พูด,ซึ่งหมายความว่ามีคำที่ไม่เป็นศูนย์เพียงคำเดียวในการสรุปข้างต้นที่สอดคล้องกับและคำอื่น ๆ ทั้งหมดในการรวมเป็นศูนย์ ดังนั้นราคาจึงสามารถเขียนเป็น: หมายเหตุ: ข้างบนคือ 1

J=i=1Wyilog(exp(uiTvc)w=1Wexp(uwTvc))
J=i=1Wyi[uiTvclog(w=1Wexp(uwTvc))]
ykthyk
J=yk[ukTvclog(w=1Wexp(uwTvc))]
yk

แก้หา : Jvc

Jvc=[ukw=1Wexp(uwTvc)uwx=1Wexp(uxTvc)]

ซึ่งสามารถจัดใหม่ได้เป็น: การใช้คำจำกัดความ (6) เราสามารถเขียนสมการข้างต้นเป็น:

Jvc=w=1W(exp(uwTvc)x=1Wexp(uxTvc)uw)uk
Jvc=w=1W(y^wuw)uk

ทีนี้ลองมาดูกันว่าสิ่งนี้สามารถเขียนในเมทริกซ์สัญกรณ์ได้ไหมหมายเหตุ:

  1. ukสามารถเขียนเป็นการคูณเวกเตอร์เมทริกซ์:U.y
  2. และเป็นการแปลงเชิงเส้นของเวกเตอร์ในปรับขนาดโดยตามลำดับ สามารถเขียนอีกครั้งในชื่อw=1W(y^wuw)uwUy^wU.y^

ดังนั้นสิ่งทั้งหมดสามารถเขียนรวบรัดเป็น:

U[y^y]

สุดท้ายโปรดทราบว่าเราสันนิษฐานว่า s เป็นเวกเตอร์คอลัมน์ หากเราเริ่มต้นด้วยเวกเตอร์แถวเราจะได้เช่นเดียวกับที่คุณกำลังมองหาuiUT[y^y]


1
แค่อยากจะบอกว่านี่เป็นคำอธิบายที่ยอดเยี่ยมสำหรับการได้มา! มันช่วยเรื่องคณิตศาสตร์ดูดเหมือนฉันจริงๆ ขอบคุณ!
Eric Kim

1
+1 สำหรับคำอธิบายที่น่าทึ่ง!
bragboy

ฉันไม่เข้าใจว่าทำไมสาเหตุนี้:
BATB=A
Parth Tamane

@ParthTamane โปรดดูสิ่งนี้ - math.stackexchange.com/questions/3270789/…
Sachin Tyagi
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.