คำถามติดแท็ก word2vec

Word2vec เป็นเครือข่ายประสาทที่แสดงถึงคำเป็นเวกเตอร์ในพื้นที่มิติสูง

5
LDA กับ word2vec
ฉันพยายามที่จะเข้าใจความคล้ายคลึงกันระหว่างLatent Dirichlet Allocationและword2vecสำหรับการคำนวณความคล้ายคลึงกันของคำ ดังที่ฉันเข้าใจ LDA จับคู่คำกับเวกเตอร์ของความน่าจะเป็นของหัวข้อแฝงในขณะที่ word2vec จับคู่คำกับเวกเตอร์ของจำนวนจริง (เกี่ยวข้องกับการสลายตัวตามตัวอักษรเอกพจน์ของข้อมูลร่วมกันแบบพอยต์ดูO. Levy, Y. Goldberg) ตามตัวประกอบเมทริกซ์โดยนัย " ; ดูเพิ่มเติมที่word2vec ทำงานอย่างไร? ) ฉันสนใจทั้งในด้านความสัมพันธ์ทางทฤษฎี (สามารถพิจารณาได้ว่าเป็นลักษณะทั่วไปหรือการเปลี่ยนแปลงอื่น ๆ ) และในทางปฏิบัติ (เมื่อใช้อย่างใดอย่างหนึ่ง แต่ไม่ใช่แบบอื่น) ที่เกี่ยวข้อง: อะไรคือวิธีมาตรฐานในการคำนวณระยะห่างระหว่างเอกสาร - DataScience.SE

3
ใช้คำว่า embeddings กับเอกสารทั้งหมดเพื่อรับเวกเตอร์คุณลักษณะ
ฉันจะใช้คำศัพท์เพื่อฝังแผนที่เอกสารกับเวกเตอร์ฟีเจอร์ได้อย่างไรเหมาะสำหรับใช้กับการเรียนรู้ภายใต้การดูแล ฝังคำแผนที่แต่ละคำเพื่อเวกเตอร์ที่บางจำนวนไม่มากเกินไปขนาดใหญ่ (เช่น 500) ที่เป็นที่นิยมembeddings คำได้แก่word2vecและถุงมือwwwv∈Rdv∈Rdv \in \mathbb{R}^dddd ฉันต้องการใช้การเรียนรู้ภายใต้การดูแลเพื่อจำแนกเอกสาร ขณะนี้ฉันกำลังทำแผนที่เอกสารแต่ละฉบับกับเวกเตอร์คุณลักษณะโดยใช้การแทนคำถุงจากนั้นจึงใช้ตัวจําแนกแบบลักษณนาม ฉันต้องการแทนที่เวกเตอร์คุณลักษณะถุงคำ - คำด้วยการฝังคำที่มีการฝึกอบรมไว้ล่วงหน้าเพื่อใช้ประโยชน์จากความรู้เชิงความหมายที่มีอยู่ในการฝังคำ มีวิธีมาตรฐานในการทำเช่นนั้น? ฉันสามารถจินตนาการถึงความเป็นไปได้บ้าง แต่ฉันไม่รู้ว่ามีบางอย่างที่สมเหตุสมผลที่สุดหรือไม่ วิธีการสมัครที่ฉันเคยพิจารณา: ฉันสามารถคำนวณเวกเตอร์สำหรับแต่ละคำในเอกสารและเฉลี่ยพวกเขาทั้งหมด อย่างไรก็ตามดูเหมือนว่ามันอาจสูญเสียข้อมูลจำนวนมาก ตัวอย่างเช่นด้วยการใช้ถุงแทนคำถ้ามีคำไม่กี่คำที่มีความเกี่ยวข้องอย่างสูงกับงานการจัดหมวดหมู่และคำที่ไม่เกี่ยวข้องส่วนใหญ่ตัวจําแนกสามารถเรียนรู้ได้ง่าย ถ้าฉันเฉลี่ยเวกเตอร์สำหรับคำทั้งหมดในเอกสารตัวจําแนกไม่มีโอกาส การต่อเวกเตอร์เข้ากับคำทั้งหมดไม่ทำงานเพราะจะไม่นำไปสู่เวกเตอร์ที่มีขนาดคงที่ นอกจากนี้ดูเหมือนว่าเป็นความคิดที่ไม่ดีเพราะมันจะไวเกินไปต่อการจัดวางคำเฉพาะ ฉันสามารถใช้คำนั้นเพื่อจัดกลุ่มคำศัพท์ของทุกคำให้เป็นกระจุกกลุ่มคงที่พูดกันว่า 1000 กลุ่มซึ่งฉันใช้ความคล้ายคลึงโคไซน์บนเวกเตอร์เพื่อวัดความคล้ายคลึงกันของคำ จากนั้นแทนที่จะเป็นถุงคำคำฉันสามารถมีถุงแบบกลุ่ม: เวกเตอร์คุณลักษณะที่ฉันจัดหาให้กับ classifer อาจเป็น 1000- เวกเตอร์ซึ่งองค์ประกอบที่นับจำนวนคำในเอกสารที่ เป็นส่วนหนึ่งของคลัสเตอร์ฉันiiiiii ป.ร. ให้คำเหล่านี้ embeddings คำให้ฉันคำนวณชุดของด้านบน 20 มากที่สุดคำที่คล้ายกันและคะแนนความคล้ายคลึงกันของพวกเขา{20} ฉันสามารถปรับเวกเตอร์ลักษณะคล้ายคำถุงด้วยการใช้สิ่งนี้ เมื่อผมเห็นคำว่าที่นอกเหนือไปจากการเพิ่มองค์ประกอบที่สอดคล้องกับคำโดย , ฉันยังสามารถเพิ่มองค์ประกอบที่สอดคล้องกับคำโดย , เพิ่มองค์ประกอบที่สอดคล้องกับคำโดยและอื่น ๆwwww1,…,w20w1,…,w20w_1,\dots,w_{20}s1,…,s20s1,…,s20s_1,\dots,s_{20}wwwwww111w1w1w_1s1s1s_1w2w2w_2s2s2s_2 มีวิธีการเฉพาะที่น่าจะทำงานได้ดีสำหรับการจำแนกเอกสารหรือไม่? ฉันไม่ได้กำลังหาย่อหน้า 2vec หรือ …

1
ฉันควรทำให้เวกเตอร์คำของ word2vec เป็นปกติก่อนที่จะใช้หรือไม่
หลังการฝึกอบรมคำเวกเตอร์ด้วย word2vec จะดีกว่าหรือไม่ที่จะทำให้ปกติก่อนใช้สำหรับแอพพลิเคชั่นดาวน์สตรีม คืออะไร pros / cons ของ normalizing พวกเขาคืออะไร?

3
R: การสุ่มฟอเรสต์การโยน NaN / Inf ในข้อผิดพลาด“ การเรียกฟังก์ชันต่างประเทศ” แม้จะไม่มีชุดข้อมูลของ NaN [ปิด]
ฉันใช้คาเร็ตเพื่อรันฟอเรสต์แบบสุ่มที่ผ่านการตรวจสอบความถูกต้องข้ามชุดข้อมูล ตัวแปร Y เป็นปัจจัย ไม่มีชุดข้อมูลของ NaN, Inf's หรือ NA ในชุดข้อมูลของฉัน อย่างไรก็ตามเมื่อใช้ป่าสุ่มฉันได้รับ Error in randomForest.default(m, y, ...) : NA/NaN/Inf in foreign function call (arg 1) In addition: There were 28 warnings (use warnings() to see them) Warning messages: 1: In data.matrix(x) : NAs introduced by coercion 2: In data.matrix(x) : NAs …

1
การสุ่มตัวอย่างเชิงลบทำงานอย่างไรใน word2vec
ฉันพยายามอย่างหนักที่จะเข้าใจแนวคิดของการสุ่มตัวอย่างเชิงลบในบริบทของ word2vec ฉันไม่สามารถแยกแยะความคิดในการสุ่มตัวอย่าง [เชิงลบ] ตัวอย่างเช่นในเอกสารของ Mikolovความคาดหวังการสุ่มตัวอย่างเชิงลบนั้นถูกกำหนดเป็น เข้าสู่ระบบσ( ⟨ w , c ⟩ ) + k ⋅ Eคยังไม่มีข้อความ~ PD[ บันทึกσ( - ⟨ w , cยังไม่มีข้อความ⟩ ) ]เข้าสู่ระบบ⁡σ(⟨W,ค⟩)+k⋅Eคยังไม่มีข้อความ~PD[เข้าสู่ระบบ⁡σ(-⟨W,คยังไม่มีข้อความ⟩)].\log \sigma(\langle w,c\rangle ) + k \cdot \mathbb E_{c_N\sim PD}[\log\sigma(−\langle w,c_N\rangle)]. ฉันเข้าใจคำศัพท์ด้านซ้ายแต่ฉันไม่เข้าใจแนวคิดของการสุ่มตัวอย่างคำศัพท์บริบทบริบทเชิงลบlogσ(⟨w,c⟩)log⁡σ(⟨w,c⟩)\log \sigma(\langle w,c\rangle)


4
การตีความความเหมือนโคไซน์เชิงลบ
คำถามของฉันอาจจะโง่ ดังนั้นฉันจะขออภัยล่วงหน้า ฉันพยายามใช้แบบจำลอง GLOVE ที่ผ่านการฝึกอบรมโดยกลุ่ม Stanford NLP ( ลิงก์ ) อย่างไรก็ตามฉันสังเกตเห็นว่าผลลัพธ์ที่คล้ายคลึงกันของฉันแสดงจำนวนลบ นั่นทำให้ฉันดูไฟล์ข้อมูล word-vector ทันที เห็นได้ชัดว่าค่าในคำว่าเวกเตอร์ได้รับอนุญาตให้เป็นค่าลบ นั่นอธิบายว่าทำไมฉันเห็นความเหมือนโคไซน์ลบ ฉันคุ้นเคยกับแนวคิดของความเหมือนโคไซน์ของความถี่เวกเตอร์ซึ่งค่าถูก จำกัด อยู่ใน [0, 1] ฉันรู้สำหรับความจริงที่ว่าดอทโปรดัคและฟังก์ชันโคไซน์สามารถเป็นบวกหรือลบได้ขึ้นอยู่กับมุมระหว่างเวกเตอร์ แต่ฉันมีความเข้าใจยากมากและตีความความคล้ายคลึงเชิงลบโคไซน์นี้ ตัวอย่างเช่นถ้าฉันมีคู่ของคำที่ให้ความเหมือนกันของ -0.1 พวกเขาจะคล้ายกันน้อยกว่าคู่อื่นที่มีความคล้ายคลึงกันคือ 0.05? วิธีการเปรียบเทียบความคล้ายคลึงกันของ -0.9 ถึง 0.8? หรือฉันควรดูที่ค่าสัมบูรณ์ของความแตกต่างมุมน้อยที่สุดจาก ? ค่าสัมบูรณ์ของคะแนน?n πnπn\pi ขอบคุณมาก ๆ

2
วิธีการ. similarity ใน SpaCy คำนวณอย่างไร
ไม่แน่ใจว่านี่เป็นไซต์สแต็กที่ถูกต้องหรือไม่ วิธีการ. ความคุ้นเคยทำงานอย่างไร ว้าว spaCy ยอดเยี่ยมมาก! รูปแบบ tfidf นั้นง่ายกว่า แต่ w2v มีโค้ดเพียงบรรทัดเดียว! ในบทช่วยสอน 10 บรรทัดของเขา บน spaCy andrazhribernik แสดงให้เราเห็นถึงวิธีการ. similarity ที่สามารถเรียกใช้บนโทเค็น, เซ็นต์, การส่งคำ, ชิ้นคำและเอกสาร หลังจากnlp = spacy.load('en')และdoc = nlp(raw_text) เราสามารถทำ. สอบถามความคล้ายคลึงกันระหว่างโทเค็นและชิ้น อย่างไรก็ตามการคำนวณอะไรที่อยู่เบื้องหลังของฉากใน.similarityวิธีนี้? SpaCy มีความเรียบง่ายอย่างไม่น่าเชื่อ.vectorซึ่งคำนวณเวกเตอร์ w2v ที่ผ่านการฝึกอบรมจากแบบจำลอง GloVe (วิธี.tfidfหรือ.fasttextวิธีการที่ยอดเยี่ยมจะเป็นอย่างไร) แบบจำลองนั้นคำนวณความคล้ายคลึงโคไซน์ระหว่างสอง w2v, .vector, เวกเตอร์หรือการเปรียบเทียบเมทริกซ์อื่น ๆ หรือไม่? ข้อมูลเฉพาะไม่ชัดเจนในเอกสาร ; ความช่วยเหลือใด ๆ ชื่นชม!

3
ทำไม softmax แบบลำดับขั้นดีกว่าสำหรับคำที่ไม่บ่อยนักในขณะที่การสุ่มตัวอย่างเชิงลบจะดีกว่าสำหรับคำที่ใช้บ่อย
ฉันสงสัยว่าทำไม softmax แบบลำดับชั้นนั้นดีกว่าสำหรับคำที่ไม่บ่อยนักในขณะที่การสุ่มตัวอย่างเชิงลบจะดีกว่าสำหรับคำที่ใช้บ่อยใน CBOW ของ word2vec และโมเดล skip-gram ฉันได้อ่านข้อเรียกร้องในhttps://code.google.com/p/word2vec/

3
แบบจำลอง skip-gram ของ Word2Vec สร้างเวกเตอร์เอาต์พุตได้อย่างไร
ฉันมีปัญหาในการทำความเข้าใจโมเดลอัลกอริทึมของ 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 …

1
Word ฝังอัลกอริทึมในแง่ของประสิทธิภาพ
ฉันพยายามฝังวลีประมาณ60 ล้านวลีลงในช่องว่างเวกเตอร์จากนั้นคำนวณความคล้ายคลึงโคไซน์ระหว่างพวกเขา ฉันใช้ sklearn CountVectorizerพร้อมกับฟังก์ชั่น tokenizer ที่สร้างขึ้นเองที่สร้าง unigrams และ bigrams ปรากฎว่าการได้รับการรับรองที่มีความหมายฉันต้องยอมให้มีคอลัมน์จำนวนมหาศาลเป็นเส้นตรงในจำนวนแถว สิ่งนี้นำไปสู่เมทริกซ์กระจัดกระจายอย่างไม่น่าเชื่อและกำลังฆ่าประสิทธิภาพ มันจะไม่เลวร้ายนักหากมีคอลัมน์ประมาณ 10,000 คอลัมน์เท่านั้นซึ่งฉันคิดว่าค่อนข้างสมเหตุสมผลสำหรับการจัดเรียงคำ ฉันกำลังคิดจะลองใช้งาน Google word2vecเพราะฉันค่อนข้างแน่ใจว่ามันจะสร้างมิติที่ต่ำกว่าและมีงานแต่งงานที่หนาแน่นมากขึ้น แต่ก่อนหน้านั้นมีงานแต่งงานอื่น ๆ ที่อาจรับประกันดูครั้งแรกหรือไม่? ข้อกำหนดที่สำคัญจะสามารถปรับขนาดได้ประมาณ 60 ล้านวลี (แถว) ฉันค่อนข้างใหม่ในด้านการใช้คำศัพท์เพื่อช่วยให้คำแนะนำใด ๆ ฉันควรเพิ่มว่าฉันใช้การสลายตัวของค่าเอกพจน์เพื่อปรับปรุงประสิทธิภาพแล้ว

2
วิธีการกำหนดพารามิเตอร์สำหรับ t-SNE สำหรับการลดขนาด?
ฉันใหม่มากที่จะแต่งงานคำ ฉันต้องการเห็นภาพว่าเอกสารกำลังเรียนรู้อย่างไร ฉันอ่านว่า t-SNE เป็นวิธีการที่จะทำ ฉันมีเอกสาร 100K ขนาด 250 เท่าของการฝัง มีหลายแพ็คเกจเช่นกัน อย่างไรก็ตามสำหรับ t-SNE ฉันไม่ทราบว่าการวนซ้ำหรือค่าของ alpha หรือค่า perpexility ที่ฉันควรเรียนรู้มากขึ้นเท่าไร พารามิเตอร์ไฮเปอร์เหล่านี้หรืออาจถูกกำหนดโดยคุณลักษณะบางอย่าง?

2
การจัดการคำที่ไม่รู้จักในงานสร้างแบบจำลองภาษาโดยใช้ LSTM
สำหรับภารกิจการประมวลผลภาษาธรรมชาติ (NLP) มักใช้เวกเตอร์ word2vecเพื่อฝังคำ อย่างไรก็ตามอาจมีคำที่ไม่รู้จักจำนวนมากที่ไม่ได้ถูกจับโดย word2vec vector เพียงเพราะคำเหล่านี้ไม่ได้เห็นบ่อยในข้อมูลการฝึกอบรม (การใช้งานจำนวนมากใช้การนับขั้นต่ำก่อนเพิ่มคำลงในคำศัพท์) นี่อาจเป็นกรณีที่มีข้อความจากเช่น Twitter ซึ่งคำมักสะกดผิด ควรจัดการคำที่ไม่รู้จักเช่นนั้นอย่างไรเมื่อสร้างแบบจำลองงาน NLP เช่นการคาดการณ์ความเชื่อมั่นโดยใช้เครือข่ายระยะสั้นระยะยาว (LSTM) ฉันเห็นสองตัวเลือก: การเพิ่มโทเค็น 'คำที่ไม่รู้จัก' ในพจนานุกรม word2vec การลบคำที่ไม่รู้จักเหล่านี้ออกไปเพื่อที่ LSTM จะไม่รู้แม้แต่คำนั้นในประโยค วิธีที่เหมาะสมในการจัดการคำเหล่านี้คืออะไร?

1
อนุพันธ์ของการสูญเสียเอนโทรปีใน word2vec
ฉันกำลังพยายามหาทางแก้ไขปัญหาชุดแรกของเนื้อหาหลักสูตรออนไลน์ของ cs224d stanford และฉันมีปัญหาบางอย่างเกี่ยวกับปัญหา 3A: เมื่อใช้แบบจำลองข้าม word2vec กับฟังก์ชั่นการทำนายแบบ softmax และฟังก์ชั่นการสูญเสียเอนโทรปี ต้องการคำนวณการไล่ระดับสีเทียบกับเวกเตอร์คำที่คาดคะเน เมื่อได้รับฟังก์ชั่น softmax: wi^=Pr(wordi∣r^,w)=exp(wTir^)∑|V|jexp(wTjr^)wi^=Pr(wordi∣r^,w)=exp⁡(wiTr^)∑j|V|exp(wjTr^) \hat{w_i} = \Pr(word_i\mid\hat{r}, w) = \frac{\exp(w_i^T \hat{r})}{\sum_{j}^{|V|}exp(w_j^T\hat{r})} และฟังก์ชั่นข้ามเอนโทรปี: CE(w,w^)=−∑kwklog(wk^)CE(w,w^)=−∑kwklog(wk^)CE(w, \hat{w}) = -\sum\nolimits_{k} w_klog(\hat{w_k}) เราจำเป็นต้องคำนวณ∂CE∂r^∂CE∂r^\frac{\partial{CE}}{\partial{\hat{r}}} ขั้นตอนของฉันมีดังนี้: CE(w,w^)=−∑|V|kwklog(exp(wTkr^)∑|V|jexp(wTjr^))CE(w,w^)=−∑k|V|wklog(exp⁡(wkTr^)∑j|V|exp(wjTr^))CE(w, \hat{w}) = -\sum_{k}^{|V|} w_klog(\frac{\exp(w_k^T \hat{r})}{\sum_{j}^{|V|}exp(w_j^T\hat{r})}) =−∑|V|kwklog(exp(wTkr^)−wklog(∑|V|jexp(wTjr^))=−∑k|V|wklog(exp⁡(wkTr^)−wklog(∑j|V|exp(wjTr^))= -\sum_{k}^{|V|} w_klog(\exp(w_k^T \hat{r}) - w_klog(\sum_{j}^{|V|}exp(w_j^T\hat{r})) ตอนนี้ได้รับwkwkw_kเป็นหนึ่งเวกเตอร์ร้อนและฉันเป็นชั้นที่ถูกต้อง: CE(w,w^)=−wTir^+log(∑|V|jexp(wTjr^))CE(w,w^)=−wiTr^+log(∑j|V|exp(wjTr^))CE(w, \hat{w}) = - w_i^T\hat{r} + log(\sum_{j}^{|V|}exp(w_j^T\hat{r})) ∂CE∂r^=−wi+1∑|V|jexp(wTjr^)∑|V|jexp(wTjr^)wj∂CE∂r^=−wi+1∑j|V|exp(wjTr^)∑j|V|exp(wjTr^)wj\frac{\partial{CE}}{\partial{\hat{r}}} …

1
การไล่ระดับสีสำหรับ skipgram word2vec
ฉันกำลังประสบปัญหาในปัญหาการมอบหมายการเรียนรู้อย่างลึกของ Stanford NLP http://cs224d.stanford.edu/assignment1/assignment1_soln ฉันพยายามที่จะเข้าใจคำตอบของ 3a ที่พวกเขากำลังหาอนุพันธ์ของเวกเตอร์สำหรับคำกลาง สมมติว่าคุณได้คำทำนายเวกเตอร์ตรงกับคำกลางcสำหรับ skipgram และการคาดคะเนคำจะทำกับฟังก์ชัน softmax ที่พบในรุ่น word2vecvcvcv_{c} y^o=p(o|c)=exp(uTovc)∑Ww=1exp(uTwvc)y^o=p(o|c)=exp(uoTvc)∑w=1Wexp(uwTvc)\hat{y}^{o} = p(o | c) = \frac {exp(u_{o}^{T} v_{c})}{\sum_{w=1}^{W}exp(u_{w}^{T} v_{c})} โดยที่wหมายถึงคำ w-th และ (w = 1,..., W) คือเวกเตอร์คำว่า "เอาท์พุท" สำหรับคำทั้งหมดในคำศัพท์ สมมติว่าค่าใช้จ่ายข้ามเอนโทรปีถูกนำไปใช้กับการทำนายนี้และคำoเป็นคำที่คาดหวังuwuwu_w โดยที่คือเมทริกซ์ของเวกเตอร์เอาต์พุตทั้งหมดและให้เป็นเวกเตอร์คอลัมน์ของการคาดคะเนคำ softmax และyเป็นป้ายกำกับที่ร้อนแรงที่สุดซึ่ง ยังเป็นเวกเตอร์คอลัมน์U=[u1,u2,⋅⋅⋅,uW]U=[u1,u2,···,uW]U = [u_1,u_2, · · · ,u_W ]y^y^\hat{y} ที่เอนโทรปีของการข้ามคือCE(y,y^)=−∑iyilog(y^i)CE(y,y^)=−∑iyilog⁡(y^i)CE(y, \hat{y}) = − \sum_iy_i\log(\hat{y}_i) …
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.