โพสต์นี้จาก wit.ai (บริษัทที่เฟซบุ๊กซื้อมา 15 เดือนก่อนเปิดตัว Messenger Platform) อธิบายการทำงานของ Bot Engine ที่เฟซบุ๊กใช้ใน Messenger Platform
มีสองคอนเซปต์หลัก คือ Stories กับ Action
Stories คือตัวอย่างของบทสนทนา ที่จะไปแมตช์กับบทสนทนาจริงๆ และทำให้รู้ว่าจะมี Action อะไรเกิดขึ้นได้บ้างจากการคุยนี้
การทำงานของ Bot Engine จะใช้ Stories เหมือนเป็นกฎในการทำงาน ซึ่งก็คือ expert system แบบสมัยก่อนนั่นแหละ เขียนกฎขึ้นมารองรับ use case ต่างๆ
ความต่างระหว่าง Stories กับกฎทั่วไปก็คือ ในระบบ AI แบบ rule-based มันจะเจอปัญหาในการออกแบว่า จะทำกฎไหนก่อนหลัง แล้วถ้ากฎมันขัดกันจะทำยังไง (ความต่างระหว่าง rule-based กับ data-based หยาบๆ ก็คืองี้: rule-based มีกฎน้อยๆ ก็ทำงานได้แล้ว เวลาผ่านไปพอมีกฎเยอะๆ จะปวดหัว จะเพิ่มความฉลาดได้ยาก vs data-based มีข้อมูลน้อยๆ ยังทำงานไม่ได้ ต้องมีข้อมูลเยอะถึงระดับนึงจึงจะเริ่มทำงานได้ พอเวลาผ่านไปจะยิ่งฉลาด)
แต่ใน Bot Engine ตัว Stories มันกึ่งๆ rule กึ่งๆ data คือถ้า Stories ไหนยังไม่มีข้อมูลมาช่วย มันก็จะทำงานเหมือน rule ปกติ แต่พอเวลาผ่านไป พอมีข้อมูลบทสนทนาจำนวนนึงแล้ว ก็จะเอาข้อมูลมาช่วยด้วย ผมเข้าใจว่ามันคือ weighted rule น่ะแหละ
ซึ่งการทำแบบนี้มันก็ไม่ต้องสนใจว่า Stories มันจะขัดกัน ก็ปล่อยมันขัดไป แต่เดี๋ยวตอนทำงาน เครื่องมันจะตัดสินใจได้ว่าจะใช้อันไหนตอนไหน จากน้ำหนักที่ได้จากข้อมูล
แน่นอนว่า Stories (rule) พวกนี้นี่ไม่จำเป็นต้องให้คนเขียน แต่คอมมันเรียนเองได้ แต่จะเรียนได้ดีก็ต้องมีคนมาช่วยไกด์หน่อย (และ Bot Engine เปิดให้ทำตรงนี้ผ่าน Wit Inbox คอนเซปต์ที่สามที่อธิบายในโพสต์นั้น) ที่ผ่านมาข้อมูลการสนทนานั้นเฟซบุ๊กมีอยู่แล้วมหาศาล แต่การเปิด Messenger Platform และให้คนทำบอตผ่าน Bot Engine ของตัวเอง (ไม่เหมือนแพลตฟอร์มอื่นที่ให้นักพัฒนาไปทำข้างนอก) จะทำให้เฟซบุ๊กมี Stories (rule) ไปเรียนได้อีกเยอะ
คือต่อไปจะไม่ใช่แค่ผู้ใช้ที่แชตๆ ที่ทำงานให้เฟซบุ๊ก แต่นักพัฒนาของบริการต่างๆ ที่ใช้ Bot Engine ก็จะทำงานให้เฟซบุ๊กด้วย tongue emoticon
https://wit.ai/blog/2016/04/12/bot-engine
ใครจะค้นต่อเรื่องพวกนี้ลองคีย์เวิร์ด question answering system
ซึ่งก็เหมือนกับระบบ NLP ทั่วไปที่มันจะมี 2 ส่วน คือ natural language understanding (NLU) กับ natural language generation (NLG) เข้าใจว่าบริการทั่วไปของแชตบอตอย่างที่เฟซบุ๊กโฆษณาอยู่ คงไม่ต้องใช้ NLG ที่ซับซ้อนมาก เอาคำยัดใส่ลงเทมเพลตที่เตรียมไว้ล่วงหน้าก็น่าจะได้ (กรณีของ CNN ที่เป็นบริการข่าว น่าจะไปทับกับสาขาที่ตอนนี้ก็เริ่มมีใช้แล้ว คือ robot journalism)
ถ้าสนใจหาข้อมูลไปเล่น ใน TREC มี QA Track อยู่ด้วย ไปโหลดมาเล่นได้
http://trec.nist.gov/data/qa.html
(ของภาษาไทย BEST ยังไม่เคยเปิดแข่งระบบตอบคำถาม แต่อนาคตก็ไม่แน่นะ http://thailang.nectec.or.th/best/ )