Sunday, September 16, 2018

Natural Language Processing เทคโนโลยีเชื่อมโยงปัญญาประดิษฐ์กับมนุษย์ด้วย “ภาษา”

เชื่อว่าผู้อ่านหลายคนคงเคยใช้คำสั่งเสียงบน Smartphone เพื่อทำสิ่งต่างๆ เป็นวิธีลัดแทนการเข้าใช้แบบเดิมๆ เช่น จดบันทึกการนัดหมาย โทรศัพท์หาคนรู้จัก เป็นต้น ซึ่งหลายๆ คนน่าจะทราบกันดีอยู่แล้วว่าเทคโนโลยีเบื้องหลังของกระบวนการเหล่านี้ก็คือ “ปัญญาประดิษฐ์” หรือ “AI” ที่มีความสามารถโดดเด่นในการเรียนรู้ และวิเคราะห์ข้อมูลที่ซับซ้อนต่างๆ ได้ใกล้เคียงกับมนุษย์ อย่างไรก็ตาม การที่ปัญญาประดิษฐ์สามารถรับคำสั่งเสียงของเราไปดำเนินการได้อย่างแม่นยำนั้น จะต้องอาศัยกระบวนการประมวลผลทางภาษาเข้ามาช่วย ซึ่งเป็นที่รู้จักกันดีในชื่อว่า Natural Language Processing (NLP) ซึ่งทำหน้าที่เป็นอีกหนึ่งกลไกสำคัญ ที่ช่วยให้ AI สามารถประมวลผลจากคำสั่งต่างๆ ได้อย่างมีประสิทธิภาพ แม่นยำ รวมถึงแสดงผลการวิเคราะห์ต่างๆ ออกมาเป็นภาษามนุษย์ได้อย่างเป็นธรรมชาติ ซึ่งวันนี้เราจะพาทุกคนมาทำความรู้จักกับ Natural Language Processing (NLP) แบบเจาะลึกครบถ้วนทุกมุมในบทความนี้
Credit: data-science-blog.com
NLP คืออะไร
NLP ย่อมาจาก Natural Language Processing เป็นสาขาหนึ่งของเทคโนโลยีปัญญาประดิษฐ์ (Artificial Intelligence หรือ AI) ที่ทำให้คอมพิวเตอร์เข้าใจภาษามนุษย์เพื่อวัตถุประสงค์ด้านการสื่อสารและวิเคราะห์ข้อมูลที่เป็นภาษา
เหตุที่ต้องพัฒนา NLP เนื่องมาจากเดิมทีนั้นคอมพิวเตอร์ถูกออกแบบมาให้เหมาะกับการเข้าใจข้อมูลตัวเลขหรือรหัสที่มีความหมายนัยหนึ่งชัดเจน ซึ่งไม่ตรงกับวิธีการสื่อสารของมนุษย์ซึ่งอาศัยภาษาเป็นหลัก และภาษามีความซับซ้อนกว่ารหัสที่ใช้กับคอมพิวเตอร์อย่างมาก NLP จึงเกิดขึ้นเพื่อลดช่องว่างในการสื่อสารระหว่างมนุษย์กับคอมพิวเตอร์
NLP รองรับทั้งการอ่านและการฟังโดยอาศัยเทคโนโลยีอื่นเข้าช่วย เช่น Visual Recognisation สำหรับอ่านข้อความ และใช้ Voice Recognisation สำหรับฟังเสียง รวมถึงเทคโนโลยีอื่นๆ เพื่อแสดงผลให้มนุษย์ได้รับทราบ รวมถึงสามารถถ่ายทอดข้อมูลกลับมาหาเราทั้งในรูปของข้อความและเสียงได้ด้วย
Credit: aio-tv.com
กระบวนการเรียนรู้ภาษาของ NLP
สำหรับกระบวนการเรียนรู้ภาษาของเทคโนโลยี NLP มีพื้นฐานมาจากรูปแบบการทำงานของปัญญาประดิษฐ์ (สามารถอ่านเรื่องการทำงานของปัญญาประดิษฐ์ได้ที่ Blog นี้) แต่ต่างตรงที่นำมาใช้กับภาษาซึ่งมีความซับซ้อนและเป็นนามธรรม ซึ่งปัจจุบัน NLP มีกระบวนการเรียนรู้ภาษาทั้งหมด 6 ขั้นตอน ดังนี้
  1. Morphological Level ขั้นเข้าใจตัวอักษร NLP จะถอดคำออกเป็นตัวอักษร หาพยัญชนะ สระ ตัวสะกดเพื่อทำความแม่นยำในขั้นต่อไป
  2. Lexical Level ขั้นเข้าใจคำ หลังจากผสมตัวอักษรแล้วก็จะเริ่มหาความหมายของคำนั้นๆ เพื่อเตรียมตัวสำหรับการทำความเข้าใจทั้งประโยค
  3. Syntactic Level ขั้นเข้าใจประโยค อ้างอิงจากการเข้าใจคำและลำดับโครงสร้างตามมาตรฐานที่ระบุโดยผู้เชี่ยวชาญหรือแบบแผนที่ได้เรียนมา
  4. Semantic Level ขั้นเข้าใจบริบทของคำในประโยค เข้าใจถึงความหมายของคำที่ใช้ในประโยคซึ่งอยู่นอกเหนือโครงสร้างตามมาตรฐานภาษา
  5. Discourse Level ขั้นเข้าใจความเชื่อมโยงของประโยค เข้าใจผลกระทบของประโยคก่อนหน้าต่อความหมายของประโยคที่อ่านอยู่ รวมถึงเข้าใจลำดับการใช้คำในประโยคซึ่งให้ความหมายแตกต่างกันด้วย
  6. Pragmatic Level ขั้นเข้าใจความหมายของคำและประโยคอ้างอิงจากสถานการณ์หรือฐานความรู้เดิม ซึ่งอาจไม่ได้ระบุอยู่ในเนื้อหานั้นๆ เพื่อให้สามารถตีความได้ใกล้เคียงกับมนุษย์ที่สามารถเชื่อมโยงข้อมูลใหม่เข้ากับความรู้เดิมได้ตลอดเวลา
นอกจากการทำความเข้าใจในแต่ละจุดแล้ว NLP ยังมีช่องทางการเรียนภาษาอีกได้ 3 รูปแบบ ซึ่งจำลองมาจากการเรียนภาษาของมนุษย์ ได้แก่
  • Symbolic เป็นพื้นฐานของการเข้าใจภาษาของมนุษย์ โดย AI ต้องทำความเข้าใจคำศัพท์จนถึงโครงสร้างของภาษานั้นๆ ขั้นนี้นักพัฒนาสามารถนำความรู้จากผู้เชี่ยวชาญใส่ลงไปใน AI ได้โดยตรง
  • Statistical หลังจากเรียนรู้พื้นฐานของภาษาแล้ว ขั้นต่อไป AI จะออกไปเก็บข้อมูลการใช้ภาษาของที่ต่างๆ จากนั้นนำมาวิเคราะห์รูปแบบด้วยวิธีการทางสถิติ เช่น การดูความถี่ของคำที่ใช้ ดูวิธีเรียงลำดับประโยคที่พบบ่อย แล้วนำมาสังเคราะห์เป็นความรู้ใหม่ วิธีนี้จะช่วยให้ AI ปรับปรุงภาษาได้ตามความนิยมในปัจจุบัน และเข้าใจการใช้ภาษาในสาขาที่เฉพาะทางอย่างด้านวิทยาศาสตร์ การเงิน หรือเอกสารวิชาการต่างๆ เป็นต้น
  • Connectionist AI จะเอากระบวนการเรียนรู้ภาษาในขั้น Statistical มาเชื่อมโยงกับขั้น Symbolic เพื่อการสื่อสารและทำความเข้าใจที่สมบูรณ์มากขึ้น โดยตั้งต้นจากความรู้เดิมที่เก็บได้ในขั้น Symbolic และดัดแปลงด้วยข้อมูลใหม่ที่ได้รับจากขั้น Statistical
NLP กับการใช้งานในปัจจุบัน
ปัจจุบัน NLP ได้เข้ามามีส่วนกับนวัตกรรมต่างๆ ทั้งทางตรงและทางอ้อม โดยนวัตกรรมที่เราพบเห็นได้บ่อยและซึ่งได้รับการปรับปรุงโดย NLP มีดังนี้
  • Chatbot ที่ฉลาดขึ้น เดิมที Chatbot จะโต้ตอบเมื่อได้รับคำที่ระบุไว้ แต่เมื่อได้ใช้เทคโนโลยี NLP ทำให้ Chatbot สามารถโต้ตอบได้มีประสิทธิภาพใกล้เคียงกับมนุษย์มากกว่าเดิม
  • เพิ่มประสิทธิภาพ Search Engine เดิมที Search Engine จะใช้การค้นหาเป็นคำซึ่งขาดความแม่นยำด้านความหมาย แต่หลังจากนำ NLP เข้ามาปรับปรุงทำให้สามารถค้นหาเนื้อหาต่างๆ ได้ตรงตามความหมายมากขึ้น นำไปสู่การค้นหาที่แม่นยำกว่าเดิมนั่นเอง
  • เทคโนโลยีแปลภาษาทั้งประโยค ด้วยเทคโนโลยี NLP ออกแบบให้ทำความเข้าใจภาษาอยู่แล้ว การพัฒนา NLP ให้สามารถรับภาษาหนึ่งมานำเสนอเป็นอีกภาษาหนึ่งย่อมเป็นไปได้ ซึ่งปัจจุบันระบบแปลภาษาทั้งประโยคบนเว็บไซต์เองก็พัฒนาโดยอาศัยเทคโนโลยี NLP เช่นกัน
  • ติดตั้ง Tag และแบ่งประเภทของบทความอัตโนมัติ เนื่องจาก NLP ถูกออกแบบเพื่อทำความเข้าใจเนื้อหาต่างๆ จึงสามารถช่วยเราแบ่งประเภทของบทความตามมาตรฐานที่เราออกแบบไว้ได้
  • กลไกสำคัญของยานยนต์ขับเคลื่อนอัตโนมัติ บนท้องถนนปัจจุบัน เรายังอาศัยการสื่อสารด้วยป้ายสัญญาณที่มีตัวอักษรกำกับอยู่ ดังนั้น เทคโนโลยี NLP จึงมีส่วนเข้ามาช่วยในการทำความเข้าใจป้ายสัญญาณต่างๆ ซึ่งเป็นส่วนสำคัญที่ทำให้ยานยนต์ขับเคลื่อนอัตโนมัติปลอดภัย
Credit: inma.org
คอมพิวเตอร์ที่เข้าใจภาษากับศักยภาพใหม่ที่เกิดขึ้นในอนาคต
หลังจากได้เห็นกระบวนการทำงานและตัวอย่างการใช้งาน NLP ในปัจจุบันไปแล้ว หลายคนน่าจะเริ่มมีคำถามว่าคอมพิวเตอร์ที่รู้ภาษาจะมีศักยภาพต่อการทำงานในอนาคตของเราอย่างไร ซึ่งต้องบอกว่า NLP จะมีบทบาทใหญ่มากในแง่การใช้งานเทคโนโลยีและการจัดการข้อมูล ดังนี้
  • Disrupt รูปแบบการใช้เทคโนโลยี เพราะมนุษย์สื่อสารด้วยภาษา การออกแบบคอมพิวเตอร์ด้วย AI ที่เข้าใจภาษาช่วยให้การใช้คอมพิวเตอร์ของเราง่ายขึ้น เราสามารถอธิบายความต้องการของเราผ่านเสียงหรือข้อความแล้วได้ทำงานตามความต้องการอย่างที่ Siri และ Google Assistant ทำงานบางอย่างให้เราได้แล้วก็เป็นผลมาจากเทคโนโลยี NLP ซึ่งหากเทคโนโลยีนี้สามารถทำงานได้สมบูรณ์ก็นับเป็นการพลิกรูปแบบการใช้งานคอมพิวเตอร์ในปัจจุบันอย่างแน่นอน
  • เป็นส่วนสำคัญในการจัดการ Big Data เป็นที่ทราบกันดีว่าจำนวนข้อมูลดิจิทัลบนโลกนั้น มีอัตราเพิ่มสูงขึ้นเรื่อยๆ ซึ่งต้องมีข้อมูลส่วนหนึ่งเป็นข้อมูลด้านภาษาที่เราจำเป็นต้องเข้าไปจัดระเบียบด้วย โดย AI ที่มี NLP จะสามารถเข้าไปช่วยจัดระเบียบข้อมูลส่วนนี้ได้อย่างมีประสิทธิภาพ อีกทั้ง NLP สามารถพัฒนาร่วมกับเทคโนโลยีอื่นๆ เช่น การวิเคราะห์ภาพและเสียง จึงครอบคลุมการจัดการสื่อด้านภาษาทั้งหมด นับเป็นอีกหนึ่งเทคโนโลยีสำคัญที่เข้ามาช่วยในยุคของ Data
อุปสรรคและความท้าทายของการพัฒนา NLP
การที่ NLP จะมีบทบาทกับชีวิตของเราอย่างเต็มรูปแบบนั้น จำเป็นต้องก้าวผ่านความท้าทายดังนี้
  • ภาษายังพลิกแพลงความหมายตลอดเวลา เพราะภาษาที่เราใช้อยู่ล้วนมีการเปลี่ยนแปลงตลอดเวลา ทั้งการเกิดคำศัพท์ใหม่ การรวมคำ ไปจนถึงการสลับลำดับในประโยคที่ใช้ ที่แม้แต่เราหากไม่ได้อยู่ในสายงานที่เกี่ยวข้องก็อาจจะตามไม่ทัน แต่ NLP จำเป็นต้องเรียนรู้ทั้งหมดนี้เพื่อใช้ในการสื่อสาร จึงนับเป็นความท้าทายที่จะมีการต้องอัพเดทอยู่ตลอดเวลา และคงความถูกต้องของภาษาเอาไว้ด้วย
  • กระบวนการเรียนรู้ภาษา การสอน AI ให้รู้จักกับภาษานั้นเปรียบเสมือนสอนเด็กแรกเกิด เพราะภาษาไม่ได้มีไว้เพียงแค่รับรู้ แต่ต้องอาศัยความเข้าใจตามวัตถุประสงค์นั้นๆ แม้ปัจจุบัน NLP จะได้รับการพัฒนาจนสามารถโต้ตอบกับเราได้ดีขึ้น แต่ยังห่างไกลถ้าเทียบกับความสามารถของมนุษย์ปัจจุบัน
ทั้งหมดนี้คือเรื่องราวของ Natural Language Process ซึ่งเกี่ยวข้องกับการสร้างนวัตกรรมที่ใกล้ตัวเรามากอย่างไม่น่าเชื่อ และยังมีบทบาทอย่างมากกับเราในอนาคตด้วย ซึ่งในส่วนของภาษาไทยนั้น มีทีมนักพัฒนาด้านนี้ที่น่าสนใจอย่าง “InThai” ซึ่งเป็นหนึ่งใน Finalist ในโครงการ U.REKA ที่พัฒนา NLP ภาษาไทยเพื่อให้คนไทยมีเทคโนโลยีนี้ใช้ในอนาคต ในโอกาสหน้า เรายังมีเรื่องราวที่น่าสนใจของเทคโนโลยีชั้นสูงที่น่าสนใจมาฝากกันอีก ติดตามกันได้แน่นอน
ขอบคุณที่มาของข้อมูลจาก sas.com, machinelearningmastery.com และ expertsystem.com

ขอบคุณเนื้อหาจาก http://dv.co.th/blog-th/get-to-know-natural-language-processing-nlp/