ทำไมต้อง WORD2VEC?

ข้อความตัวอักษร (Text) นั้นไม่สามารถวิเคราะห์ได้เหมือนข้อมูล (data) ทั่วไป (เช่น Numerical data, Classical data เป็นต้น) ทั้งที่ตัวอักษรเหล่านี้คือแหล่งข้อมูลชั้นดีที่สามารถจะนำมาวิเคราะห์ได้หลายมุมมอง ดังนั้น จะดีแค่ไหนถ้าเราสามารถก้าวผ่านข้อจำกัดเดิมๆแล้วสามารถนำตัวอักษรมาวิเคราะห์ร่วมกับ typical data ได้โดยที่ความหมายหรือนัยสำคัญที่แฝงอยู่ในตัวอักษรนั้นไม่หายไประหว่างถูกกลั่นกรองหรือแปรรูปไปให้เป็นข้อมูลชนิดเดียวกับ typical data เพียงเท่านี้เราก็สามารถวิเคราะห์ข้อมูลที่แฝงอยู่ในรูปของตัวอักษรที่ประกอบกันเป็นคำหลายๆ คำ จนกลายเป็นข้อความประโยค หรือแม้กระทั่งเรียงความได้แล้ว (ในบทความนี้ขอกล่าวถึงการวิเคราะห์คำเท่านั้น)

คำถามต่อมาคือ “เราสามารถแปรรูปคำให้กลายเป็นตัวเลขได้อย่างไร?

ผู้ที่คิด Word2Vec ขึ้นมานั้นอาศัยแนวคิดเรื่อง neural network มาช่วยแปรรูปคำให้กลายเป็นตัวเลข เนื่องจากคำๆหนึ่งมีความหมายได้หลายความหมายขึ้นอยู่กับบริบทของประโยคที่คำนั้นปรากฎอยู่ เพราะฉะนั้นแทนที่จะแปรรูปคำให้กลายเป็นตัวเลขธรรมดา การแปลงเป็น Vector ซึ่งมีหลายมิตินั้นดูจะเข้าท่ากว่าเพราะค่าของตัวเลขในแต่ละมิติจะสื่อความหมายของคำๆนั้นในมุมมองที่แตกต่างกันได้ ทั้งนี้ Vector ที่เป็นตัวแทนของคำแต่ละคำนั้นจะถูกคำที่ปรากฎอยู่รอบตัวมัน (บริบท) เป็นแรงกระตุ้นโดยตรงที่ทำให้ค่าในแต่ละมิติของ Vector นั้นๆ แปรเปลี่ยนไป เช่น ถ้าเรานำคำในประโยคต่อไปนี้ “ฉันกินข้าว”, “ฉันทานข้าว”, “ฉันชอบทานข้าว”, “ฉันกินข้าวทุกวัน” มาแปรรูปเป็น Vector แล้วสิ่งที่คาดคะเนได้ก็คือ Vector ของคำว่า “กิน” และ “ทาน” นั้นจะมีความคล้ายกันมากที่สุด เพราะอะไร? ทำไมคอมพิวเตอร์ถึงสามารถรู้ว่าคำว่า “กิน” และ “ทาน” มีความหมายใกล้เคียงกันมากที่สุด คำตอบคือเพราะว่าคำที่ถูกใช้เป็นบริบทนั้นส่วนมากเป็นคำๆเดียวกัน คอมพิวเตอร์เรียนรู้จากประโยคทั้งหมดที่เราใส่เข้าไป ยิ่งคำไหนที่ปรากฎในบริบทที่คล้ายๆกันบ่อย Word2Vec ก็ยิ่งแปรรูปพวกมันให้ออกมาใกล้เคียงกันมากเท่านั้น

ถ้าอยากรู้จัก Word2Vec อย่างละเอียดมากขึ้น ขอเชิญอ่านต่อที่  https://arxiv.org/pdf/1310.4546.pdf (Mikolov, 2013)

ขอแนะนำว่าควรมีความรู้พื้นฐานเรื่อง Machine Learning หรือสถิติที่ค่อนข้างแข็งแรงก่อนเพราะมิฉะนั้นอาจจะทำความเข้าใจได้ยาก สำหรับคนที่เข้าใจภาพรวมและอยากนำ Word2Vec ไปลองใช้กับข้อมูลเลยขอแนะนำ Library สำเร็จรูปสองตัวต่อไปนี้คือ fastText และ gensim ซึ่งใช้งานง่าย มีประสิทธิภาพสูงและที่สำคัญคือเป็น open source สุดท้ายที่อยากฝากไว้ก็คือ Word2Vec ทำหน้าที่แปรรูปคำให้กลายเป็น Vector โดยที่ยังคงความหมายของคำไว้ในรูปของตัวเลข ส่วนการนำไปกระยุกต์ใช้นั้น ไม่มีข้อจำกัดใดๆทั้งสิ้น แล้วแต่จินตนาการของผู้ใช้ว่าอยากนำไปต่อยอดให้เกิดประโยชน์อย่างไร

By | 2018-09-14T15:22:46+00:00 พฤศจิกายน 23rd, 2017|Articles|