โพสต์นี้สรุปบทเรียนบางส่วนที่ได้เรียนรู้ขณะทำงานกับการใช้งาน Word2Vec ของ Spark คุณอาจสนใจโพสต์ก่อนหน้า “ปัญหาที่พบกับ Spark ml Wod2Vec

บทที่ 1: Word2Vec getVectors ของ Spark ส่งคืนการฝังที่ไม่ซ้ำใคร

ดังที่ได้กล่าวไว้ในตอนที่ 2 ฟังก์ชันการแปลงมีวัตถุประสงค์เพื่อส่งคืนเวกเตอร์สำหรับคำในประโยคที่กำหนด หากคุณต้องการโมเดลที่ได้รับการฝึกจริง และด้วยเหตุนี้จึงเป็นคำเฉพาะสำหรับการแสดงเวกเตอร์ คุณควรใช้ฟังก์ชัน getVectors

บทที่ 2: พาร์ติชันเพิ่มเติม == ความเร็วมากขึ้น == คุณภาพน้อยลง

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

บทที่ 3: ทำซ้ำมากขึ้น == ความเร็วน้อยลง == คุณภาพมากขึ้น

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

บทที่ 4: อัลกอริธึมการเรียนรู้ของเครื่องต้องใช้ฮาร์ดแวร์จำนวนมาก

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

บทที่ 5: เก็บสิ่งของไว้บนไม้ปาร์เก้

ทำไม การบีบอัดข้อมูลที่มีประสิทธิภาพซึ่งสร้างขึ้นเพื่อการจัดการข้อมูลจำนวนมากทำให้ปัญหาหน่วยความจำน้อยลง

บทที่ 6: Spark ml Word2Vec ไม่สามารถเยาะเย้ยได้

หากคุณกำลังเขียนการทดสอบสำหรับงาน Spark ของคุณ ซึ่งคุณควรทำ คุณอาจจะลองจำลองการใช้งาน Word2Vec ของ Spark เนื่องจากไม่สามารถกำหนดได้ ในไม่ช้าคุณจะได้รับการต้อนรับด้วยข้อความแสดงข้อผิดพลาดที่ระบุว่า Word2Vec ไม่สามารถจำลองได้ จากนั้นคุณจะพบอย่างรวดเร็วว่านี่คือคลาสสุดท้ายในไลบรารี ml เพื่อแก้ไขปัญหานี้ คุณสามารถรวมการเรียกของคุณไปที่ Word2Vec ในฟังก์ชันและแทรกลงในฟังก์ชันที่คุณกำลังทดสอบได้

เผยแพร่ครั้งแรกที่ intothedeepsofdataengineering.wordpress.com เมื่อวันที่ 26 มิถุนายน 2017