Kobkrit Viriyayudhakorn

Kobkrit Viriyayudhakorn

Founder and CEO of iApp Technology

Review Paper: AI เขียนบทความวิชาการอัตโนมัติ (PaperRobot: Incremental Draft Generation of Scientific Ideas)

Share on facebook
Facebook
Share on google
Google+
Share on twitter
Twitter
Share on linkedin
LinkedIn

Download: https://arxiv.org/pdf/1905.07870.pdf
ตีพิมพ์เมื่อ 31 May 2019

Why it is interesting

เจอ Paper ตัวนึงน่าสนใจมาก คงตั้งใจจะมาทำให้นักวิจัยตกงานกันเลยทีเดียว

มันคือแนวคิดที่อยู่ในความฝันของคนหลายคน (ผมก็หนึ่งในนั้น) ว่า

ถ้าหากคอมพิวเตอร์สามารถเขียนงานวิจัยได้เอง ซึ่งมันแสนจะอึด ไม่หลับไม่นอน ตีพิมพ์ตลอดเวลาและ ตีพิมพ์ได้อย่างรวดเร็ว 

พัฒนาการของมนุษย์จะไปไกลแค่ไหน

What is it?

PaperRobot เป็น AI ที่ใช้หลักการ Encoder-Decoder สามารถเขียน Paper งานวิชาการใหม่ๆ ในวงการแพทย์และเคมี โดยหลักการคร่าวๆมีดังนี้

(1) อ่านบทความวิชาการเป็นจำนวนมหาศาลแล้ว บันทึกเป็น Knowledge Graphs

(2) พยายามเดาความสัมพันธ์ใหม่ จาก Knowledge Graphs ดูว่ามี Concept ไหนที่ใกล้เคียงกับ Concept ที่มีความรู้ (ความสัมพันธ์) ครบถ้วนกว่า ก็เอาความสัมพันธ์ตัวนี้มาเลียนแบบ แล้วเอามาเป็นไอเดียของ Paper ใหม่ (หลักๆคือใช้ Encoder)

(3) เขียนบทความวิชาการใหม่ จากความสัมพันธ์ที่เดาขึ้นมาในข้อ (2) โดยไล่จากเขียน Title, แล้วเอา Title ไปเขียน Abstract หลังจากนั้นไปเขียน Conclusion แล้วก็เอา Conclusion ไป เขียน Future Works. (หลักๆคือใช้ Decoder)

ปรากฏว่าผลออกมามันเนียนมาก แล้วเอา Abstract ที่ AI เขียนไปทำ Turing Test ไปเทียบกับงานที่นักวิจัย (ที่เป็นมนุษย์) เขียนเองจริงๆให้คนอ่าน แล้วให้คนอ่านเลือกว่า ผลงานอันไหนเป็นของมนุษย์จริงๆ คนปรากฏว่าเลือกของที่ AI เขียน มากถึง 75%

How it works?

เรามาลงรายละเอียดกัน

(1) อ่านบทความวิชาการเป็นจำนวนมหาศาลแล้ว บันทึกเป็น Knowledge Graphs
หากใครไม่รู้จัก Knowledge Graphs จริงมันก็คือแค่ กลุ่มความสัมพันธ์ในรูปแบบ
(A, rel, B) โดยที่ A และ B คือ Concept, Fact, Information หรือ Knowledge อะไรก็ได้
และ Rel คือความสัมพันธ์ อะไรก็ได้ อาทิเช่น (มนุษย์, มี, 2 หู) (มนุษย์, มี, หัวใจ) หรือ (หัวใจ, มี, เธอ) 🙂  

ไอ้ Knowledge ที่เป็นชิ้นๆนี้ เอามาต่อเป็นกราฟได้ ถ้าปลายข้างนึงมันคือ Concept เดียวกัน สามารถเชื่อมกันได้ อาทิเช่น

คราวนี้มันก็เริ่มเป็นกราฟแล้ว พอเป็นต่อไปเรื่อยๆมันก็เป็นกราฟใหญ่ๆ เราก็เรียกว่า Knowledge Graph นั้นเอง

(2) Existing Paper Reading พยายามเดาความสัมพันธ์ใหม่ จาก Knowledge Graphs ดูว่ามี Concept ไหนที่ใกล้เคียงกับ Concept ที่มีความรู้ (ความสัมพันธ์) ครบถ้วนกว่า ก็เอาความสัมพันธ์ตัวนี้มาเลียนแบบ แล้วเขียน ไอเดียของ Paper ใหม่ (ผู้เขียนแจ้งว่ามนุษย์ก็ใช้วิธีนี้แหละในการเขียน Paper ในสาขาชีวภาพและเคมี เป็นจำนวนมากถึง 60% ของ เปเปอร์ทั้งหมดจำนวน 6.4 ล้านเปเปอร์)

      1. นำ Knowledge Graphs ที่มีอยู่ในมือ แล้วหา Concept Node ที่สมบูรณ์หนึ่งอันขึ้นมาเป็น Concept Node ตั้งต้น

      2. แล้วนำความรู้รอบๆ Concept Node อันนั้นมาเป็น Features แล้วมาลองใส่ลง Concept Node อีกอันนึง (ดังเช่นในรูป 3, Calcium กับ Zinc เป็นคู่ Concept Node ที่ใกล้เคียงกัน Paper เลยลองทำนายว่า Calcium น่าจะมีผลต่อ CD14 และ neuropillin 2 ได้เหมือนที่ Zinc ทำได้)

 —— START OF AI HARDCORE MODE ——

       เขียนแบบสรุปแบบข้างต้นมันก็ดู Magic ไป Paper ค่อนข้างเข้าใจยาก ผมพยายามหยิบประเด็นสำคัญๆมาสรุปให้อ่านนะครับ

       ผู้เขียนได้ยืมหลักการ Seq2Seq (Encoder-Decoder) ในการให้ AI เขียน Paper ใหม่ออกมา โดยทุกคนทราบแล้วใช่ไหมครับว่า Encoder คือการแปลงหรือย่อข้อมูลให้เล็กลง เพื่อให้เหลือแต่ Hidden State ที่มี Feature สำคัญๆของ Paper นั้นๆ ในทางกลับกัน เราสามารถนำ Hidden State มาขยายเขียนกลับเป็นข้อมูลเดิมด้วย Decoder

      1 Graph Structure Encoder (ย่อข้อมูลโครงสร้างกราฟ)

       จาก Concept Node ใดๆ ที่ถูกเลือก Features ของ Concept Node นั้นๆ มาใช้ในการเขียน Paper ใหม่ ผู้เขียนใช้ Self-Attention แบบ Multi-head Attention (หากใครสนใจลองอ่าน  https://arxiv.org/abs/1706.03762 “Attention is All Your Need” ของ Velickovi ˇ c et al. ´ , 2018 ได้เลย)  มาคำนวณระหว่าง Feature ทั้งหมดกับ Concept Node นั้นๆ แล้วนำข้อมูล Feature เหล่านั้นมาเป็นข้อมูลตัวแทนในความรู้โครงสร้างกราฟ

      2 Contextual Text Encoder (ย่อข้อความรอบๆเนื้อหา)

      เอาข้อความใน Paper รอบๆเนื้อหา Concept Node นั้นมาทำ Encoder โดยใช้ Bi-Directional LSTM มาย่อให้เลือก Hidden States ขนาดเล็ก และใช้  Bi-Linear Attention ให้เลือกความสำคัญของ Hidden State ในแต่ละ Time Step ของ LSTM นั้นมาเป็นข้อมูลตัวแทนข้อความบริบท

      3 Gated-based Combination เสร็จแล้วนำ 1 ข้อมูลตัวแทนในความรู้โครงสร้างกราฟ และ 2 ข้อมูลตัวแทนข้อความบริบท มารวมกับแบบคล้ายๆกับ Weight Average แบบถ่วงน้ำหนัก เราก็จะได้ตัวแทนความรู้ที่ย่อออกมาได้แล้ว

      4 Link Prediction ทำการค้นหา Concept Node ที่จะมาถูกเพิ่มเติมความรู้ ด้วยหลักการที่ว่าหา Concept Node อันไหนที่ใกล้เคียงกับ Concept Node ตั้งต้นบ้าง โดยใช้หลักการ Distance Score ระหว่าง 2 Concept Node มาคำนวณ และเพิ่มความรู้ใหม่เข้าไปใน Knowledge Graph ตามเท่าที่จำนวน Concept Node ที่ใกล้เคียงมี

 —— END OF AI HARDCORE MODE ——

 (3). นำกราฟความรู้ที่เพิ่มเติมความรู้ใหม่แล้ว มาเลือก Concept Node ที่จะถูกมาเขียนเป็น Paper ใหม่ โดยทำการ หัวข้อ paper (Title) ของ Concept Node ที่ถูกเพิ่มเติมความรู่ทั้งหมด ว่าอันไหนใกล้เคียงกับ Title ของ Concept Node ตั้งต้นมากที่สุด 10 อันดับ ก็จะเอาอันนั้นมาเขียน Paper 

การเขียน Paper อัตโนมัติ เราจะใช้หลัก Decoder จาก Hidden State ที่ได้จากข้อ (2) มาเขียนต่อครับ หลักการคือใข้ Title-to-Abstract Generation กล่าวคือทำการสร้าง Title ใหม่มาก่อนทดแทนชื่อ Concept Node จากของเก่าเป็นของอันใหม่ เสร็จแล้วก็เอาข้อมูล Hidden Staste ทั้งหมดในข้อ 2 ค่อยมาทำใช้ในการทำ Generate Abstract ในตอนสุดท้ายด้วย Decoder โดยใช้หลักการ Mem2Seq และ Pointer Generator

 —— START OF AI HARDCORE MODE ——

เขียนแบบสรุปแบบข้างต้นมันก็ดู Magic ไป Paper ค่อนข้างเข้าใจยาก ผมพยายามหยิบประเด็นสำคัญๆมาสรุปให้อ่านนะครับ

  1. Reference Encoder 

       นำหัวข้อ paper (Title) ของ Concept Node ที่ถูกคัดเลือก 10 อันดับมาแปลงเป็นเวกเตอร์ซะ แล้วใช้ Bi-Directional GRU ทำเป็น Encoder มาสร้าง Hidden State 

  2.  Decoder Hidden State Initialization

       ใช้ Memory-based Multi-Hop Attention เพื่อเซ็ตค่า Weight เริ่มต้น (Weight Initialization) สำหรับ Decoder

  3.  Memory Network

       การใช้ Decoder เพื่อแปลงดึงข้อมูลจาก Hidden State ที่ทำมาจากข้อ (1) ใช้หลักการ Attention Weight ของแต่ละ Concept Node และปรับปรุง Weight หลายๆรอบด้วย Memory Network

  4.  Reference Attention

       เสร็จแล้วหา Contribution ของแต่ละคำใน Title จากข้อ (1) ที่สามารถส่งต่อไปยัง Abstract ที่เป็น Output  ในทุกๆ Timestep ตัว Decoder จะได้รับข้อมูลของคำที่แล้ว

  5. Generator

      นำข้อมูลจาก (3) และ (4) มา Generate Abstract   

  6. Repetition Removal 

      ใช้ Coverage loss ช่วยในการป้องกันในการหยิบคำซ้ำ โดยเฉพาะอย่างยิ่งคำของ Concept Node นั้นมักจะออกมาเรื่อยๆ ใช้หลัก Beam Search ในการคัดเลือกประโยคที่ออกมาเหมาะสมที่สุด 

 —— END OF AI HARDCORE MODE ——

Results

ใช้ Turing test ทดสอบเลยทีเดียว พิสูจน์โดยให้คนตัดสินใจว่า งานเขียนที่ทำด้วย AI นี้เป็นงานเขียนที่ทำด้วยคอมพิวเตอร์ (Different) หรือเขียนด้วยคน (Same)  ถ้า Same เยอะแสดงว่าหลอกได้เยอะ

ปรากฏว่า 

Domain Expert ไม่สามารถแยก Abstract ได้ถึง 75% (30 บทความ จาก 40 บทความ)
Non-Domain Expert ไม่สามารถแยก Abstract ได้ถึง 34.7% (16 บทความ จาก 46 บทความ)

กลายเป็นว่า Domain Expert แยกไม่ค่อยออกซะงั้น ฮ่าๆ

อันนี้คือตัวอย่างงานที่ AI เขียนครับ

จริงๆ iApp ก็ทำตัว Text Generation ภาษาไทย ช่วยเขียนบทความอัตโนมัติอยุ่เหมือนกันนะครับ หากใครสนใจลองติดต่อมาดูได้นะครับ info@iapp.co.th หากต้องมาลองเล่น AI ของเรา ลองเข้าไปดูได้ที่ https://ai.iapp.co.th ได้เลยนะครับ ขอบคุณมากครับ #iApp #AI #ThaiNLP

หากชอบงานเขียนแนวนี้ ฝากกด Like และกด Share บทความนี้ด้วยนะครับ

More to explorer

Review Paper: AI แยกเสียงร้อง เสียงกลอง เสียงเบส จากเพลงต้นฉบับอัตโนมัติ!! (มี Demo สร้างเพลงคาราโอเกะให้เล่นได้ด้วย)

หากคุณอยากจะฝึกร้องเพลงแบบ Karoke จากเพลงต้นฉบับที่ออกมาสดๆร้อนๆ จะทำอย่างไร? Paper งานวิจัยนี้เหมาะสำหรับทางสายดนตรีมากๆ จากทีมนักวิจัยของ Facebook AI Research (FAIR) เค้าได้พัฒนา AI ที่มีความสามารถคัดแยกเสียงจากเพลงต้นฉบับที่ออกโดยค่ายเทป อาทิเช่น เพลง รักติดไซเรน (อันนี้ลูกสาวผมชอบมาก)   เพลงต้นฉบับ (Input) อันนี้คือส่วนที่ตัดออกมาเพื่อทำการให้

Chochae.AI Version 1.1 Release Note

Chochae.AI โปรแกรมแชทบอท E-commerce สำหรับพ่อค้าแม่ค้า Online สร้างแชทบอทได้ด้วยตัวเอง ได้พัฒนามาถึง Version 1.1 แล้วค่า เชิญเข้ามาทดลองใช้ได้เลยค่ะที่ https://chochae.ai Feature ใหม่ของ Chochae 1.1 1. ตอบคำถามสินค้าใดๆ ด้วย AI Automatic QA

อิโมติคอนส่งผลต่อผู้ใช้แชทบอทได้อย่างไร

สวัสดีครับ ผมกอบกฤตย์ CEO ของ บริษัท ไอแอพพ์และเจ๊าะแจะแชทบอทนะครับ วันนี้ผมเพิ่งอ่านบทความวิชาการที่น่าสนใจเกี่ยวกับจิตวิทยาดิจิทัล “การบริการด้วยอิโมติคอน: การตีความของลูกค้าในการใช้อิโมติคอนในบริการออนไลน์” ตาม Link นี้ https://academic.oup.com/jcr/article-abstract/45/5/973/4924869 Key Ideas การใช้อิโมติคอนที่เหมาะสม อุตสาหกรรมอุตสาหกรรมที่เหมาะสม: การดูแลธุรกิจเกี่ยวกับมิตรภาพและสมาคม (สโมสร, สมาคม, ความบันเทิง)อุตสาหกรรมที่ไม่เหมาะสม: การดูแลธุรกิจบนความเป็นมืออาชีพ (ธนาคาร,

0 Comments
    en_USEnglish
    thไทย en_USEnglish