Word ฝังอัลกอริทึมในแง่ของประสิทธิภาพ


11

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

ฉันกำลังคิดจะลองใช้งาน Google word2vecเพราะฉันค่อนข้างแน่ใจว่ามันจะสร้างมิติที่ต่ำกว่าและมีงานแต่งงานที่หนาแน่นมากขึ้น แต่ก่อนหน้านั้นมีงานแต่งงานอื่น ๆ ที่อาจรับประกันดูครั้งแรกหรือไม่? ข้อกำหนดที่สำคัญจะสามารถปรับขนาดได้ประมาณ 60 ล้านวลี (แถว)

ฉันค่อนข้างใหม่ในด้านการใช้คำศัพท์เพื่อช่วยให้คำแนะนำใด ๆ

ฉันควรเพิ่มว่าฉันใช้การสลายตัวของค่าเอกพจน์เพื่อปรับปรุงประสิทธิภาพแล้ว


คุณกำลังใช้ Spark?
eliasah

1
นั่นเป็นหนึ่งในเหตุผลที่ฉันแนะนำ Spark ในตอนแรก ฉันขอโทษฉันใช้มือถือ ฉันไม่สามารถเข้าถึงการอ้างอิงใด ๆ ที่เกี่ยวข้องกับเทคนิค PCA ก่อนการฝัง
eliasah

1
ฉันไม่แน่ใจว่ามันเกินขนาดกับข้อมูลจำนวนนั้น
eliasah

1
การลบโทเค็นที่ฟุ่มเฟือยไม่ควรลดขนาดลงมากนักเนื่องจากคุณเป็นตำราการทำงาน เมื่อพิจารณาจากพจนานุกรมคำศัพท์ 150000 คำการลบคำหยุดต่อตัวอย่างจะเป็นประโยชน์กับคุณเพียงไม่กี่โหล นั่นไม่ได้ช่วยอะไร
eliasah

1
มิฉะนั้นคุณอาจต้องการพิจารณาการสร้างหัวข้อด้วยการจัดสรร Latent Dirichlet เพื่อลดขนาดเวกเตอร์ข้อความของคุณต่อวลี
eliasah

คำตอบ:


3

เมื่อไม่นานมานี้มีงานบางส่วนเกี่ยวกับการกำหนดมิติ word2vec (skip กรัม) แบบไดนามิกโดยใช้เครื่องจักร Boltzmann ลองดูบทความนี้:

"การใส่คำในมิติที่ไม่มีที่สิ้นสุด" - Nalsnick, Ravi

แนวคิดพื้นฐานคือให้ชุดการฝึกของคุณกำหนดขนาดของคำ word2vec ของคุณซึ่งถูกลงโทษโดยคำศัพท์ทั่วไปที่เกี่ยวข้องกับขนาดมิติ

กระดาษด้านบนทำสิ่งนี้เป็นคำศัพท์และฉันอยากรู้ว่ามันทำงานได้ดีแค่ไหนกับวลี

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