สวัสดีค่ะทุกท่าน^^ ในช่วง 2-3 วันที่ผ่านมามีประเด็นร้อนแรง ธปท. มีมาตรการอายัดบัญชีที่เกี่ยวข้องกับบัญชีม้า ซึ่งแสดงให้เห็นว่าภาครัฐ และสถาบันการเงินได้มีการยกระดับการใช้เทคโนโลยีเพื่อปราบปรามอาชญากรรมทางการเงินอย่างจริงจัง แต่จากมาตรการนี้ยังมีปัญหาทางเทคนิค และกระบวนการที่ต้องแก้ไข โดยเฉพาะการทำให้ระบบมีความแม่นยำมากขึ้นเพื่อไม่ให้กระทบกับประชาชนเป็นวงกว้าง,, ในบทความนี้นิกเลยจะมาชวนทุกท่านรู้จักกับ AI Algorithm ที่ให้ตรวจจับความผิดปกติในธุรกรรมการเงินต่างๆ ที่เรียกว่า Fraud Detection กันค่ะ ( •̀ .̫ •́ )✧
#0 Fraud/Anomaly Detection คืออะไร?
Fraud Detection คือการตรวจจับความผิดปกติ (Anomaly) หรือการค้นหาข้อมูล/เหตุการณ์ที่ผิดปกติ และแตกต่างจากรูปแบบที่คาดการณ์ (Predict) ไว้ ซึ่งโดยทั่วไปมักจะถูกนำมาใช้ในภาคการเงิน/การธนาคาร และประกันภัย (BFSI) เพื่อระบุการฉ้อโกงซึ่งถือเป็นหนึ่งในความผิดปกติของ Transaction ทางการเงิน หรือบัตรเครดิต โดยเฉพาะอย่างยิ่งธุรกรรมที่เกิดขึ้นโดยไม่ได้รับอนุญาต แต่การ Detect แบบนี้ถือเป็นงานที่ค่อนข้างท้าทายสำหรับผู้ที่เกี่ยวข้อง เนื่องจากข้อจำกัดต่างๆ ดังนี้ค่ะ:
- ข้อมูลมีข้อจำกัด: การเข้าถึงข้อมูลที่ถูกระบุว่าเป็นธุรกรรมฉ้อโกงนั้นมีจำกัด ทำให้การ Train AI ทำได้ยาก
- ความผิดปกติที่เกิดขึ้นได้ยาก: ธุรกรรมที่ผิดปกติเกิดขึ้นน้อยมากเมื่อเทียบกับธุรกรรมปกติส่วนใหญ่ (ตัวนี้ก่อให้เกิดปัญหาเรื่อง imbalance data ในการ train model ได้ค่ะ)
- ความแม่นยำของ AI: การสร้าง AI Model และการตรวจสอบความถูกต้องผลลัพธ์ให้มีความแม่นยำเป็นเรื่องซับซ้อนและค่อนข้างใช้เวลา ใช้จำนวน transaction ในปริมาณมาก
- ความเป็นส่วนตัว: การจัดการข้อมูลส่วนบุคคล (PII) เนื่องจากเป็นข้อมูลส่วนบุคคลของลูกค้า
ดังนั้นระบบ Fraud Detection ที่ดีจะต้องสามารถตรวจสอบ signals ต่างๆ และรูปแบบธุรกรรมที่ได้รับมาอย่างต่อเนื่องเพื่อหา Anomaly ที่อาจบ่งชี้ถึงธุรกรรมที่โดนฉ้อโกง โดยระบบที่ดีควรสามารถคาดการณ์ความเป็นไปได้ของธุรกรรมน่าสงสัย เพื่อให้ระบุกิจกรรมฉ้อโกงได้อย่างแม่นยำยิ่งขึ้น สามารถตรวจจับความผิดปกติได้ในลักษณะ Near real-time และลดการแจ้งเตือนผิดพลาด (false positive) กรณีเป็นบริการสำหรับธุรกรรมที่ถูกต้อง
#1 การทำ Fraud Detection ด้วย AI
จากเดิมที่การตรวจจับความผิดปกติของธุรกรรมทางการเงินอยู่ในรูปแบบของ Rules-based ซึ่งส่วนใหญ่จะเป็นกระบวนการทางสถิติที่เคยใช้งานได้ดีในอดีต แต่ในปัจจุบันด้วยความซับซ้อนของพฤติกรรม (ทั้งแบบปกติ และไม่ปกติ) ของ Users ที่มีการเปลี่ยนแปลงไป ทำให้กระบวนการที่เป็น Rules-based แบบเดิมไม่เพียงพอ
เลยเป็นที่มาของการใช้ AI เข้ามามีส่วนร่วม ทำให้เราสามารถตรวจจับ และระบุความผิดปกติที่เกิดขึ้นได้อย่างแม่นยำมากยิ่งขึ้น ซึ่งการ Detect ความผิดปกติด้วย AI ก็มีหลาย Models ให้เลือกใช้กัน ขึ้นอยู่กับลักษณะข้อมูล และผลลัพธ์ที่เราต้องการ โดยแบ่งกลุ่ม Machine Learning Algorithm ที่เอาไว้ใช้สร้าง AI โมเดลออกเป็น 2 กลุ่มหลักๆ ดังนี้ค่ะ
- Supervised Learning: เป็นการเรียนรู้แบบมีผู้สอน หรือพูดง่ายๆ ค่ะว่าเราจะมีการทำ Labels ไว้ให้กับชุดข้อมูล ว่าแบบไหนเป็น Normal แบบไหนเป็น Anomaly โดยใช้ข้อมูลที่เอามา Train จากชุดข้อมูลเดิม โดยมีรายละเอียดการทำงานดังนี้
- การทำงาน: โมเดลจะถูก Train ด้วย Training Data ที่มีการ Labels เอาไว้ เพื่อเรียนรู้รูปแบบของธุรกรรมที่เป็นความผิดปกติ หรือมีการฉ้อโกง แล้วใช้ Predict ว่าธุรกรรมใหม่ที่ทำเข้ามาเป็นการฉ้อโกงหรือธรุกรรมปกติ
- Examples Algorithm:
- Random Forest: หรือต้นไม้ตัดสินใจ (หลายต้น–> ต่อยอดจาก Decision Tree ที่มีต้นเดียว) วิธีนี้มีประสิทธิภาพในการจัดการข้อมูลที่เป็น High Dimension (มีหลายๆ Features) อย่างมีประสิทธิภาพ เพราะสามารถป้องกันการเกิด Overfit (Model ทำนายได้ดีเฉพาะข้อมูลที่ถูก Train มา แต่พอเจอข้อมูลอื่นแล้วเอ๋อ) ได้
- Support Vector Machine (SVM): เป็นการค้นหาเส้นแบ่งข้อมูลที่แตกต่างกันออกจากกันด้วย Hyperplane ซึ่งในที่นี้ใช้แยกข้อมูลธุรกรรมปกติ ออกจากแบบผิดปกติค่ะ
- Algorithms อื่นๆ เช่น Hidden Markov Model, Decision Tree. K-Nearest Neighbour Network (k-NN), etc.
- Unsupervised Learning: เป็นการเรียนรู้แบบไม่มีผู้สอน หรือก็คือเป็นการโยนข้อมูลลงไปใน Algorithm ทั้งก้อน โดยที่ไม่มีการทำ Labels ว่าเป็นธุรกรรมที่ปกติ/ผิดปกติ เอาไว้ โดยมีรายละเอียดการทำงานดังนี้:
- การทำงาน: Model จะทำการหา Patterns ของข้อมูลเพื่อตรวจจับหารูปแบบที่เป็นความผิดปกติที่เป็นเหมือน Outliers จากข้อมูลปกติ ซึ่งจากการที่เราไม่ได้ทำการ Labels ไว้ก่อนนี้เองค่ะที่ทำให้การทำ Fraud Detection ด้วยวิธีนี้เหมาะกับการ Detect ความผิดปกติจากการฉ้อโกงรูปแบบใหม่ๆ (ก็เหล่าอาชกรเค้า Create กันเหลือเกินพัฒนาไม่หยุด T T วิธีการแบบนี้เลยเหมาะที่จะใช้มารับมือค่ะ)
#2 Deep Learning Algorithms
อย่างที่นิกเล่ามาในหัวข้อก่อนหน้าค่ะว่า ในปัจจุบันนี้ทั้งพฤติกรรมของ Users และแนวทางการโกงมีความซับซ้อนมากยิ่งขึ้นมากๆ ทำให้ทั้งวิธีการแบบ Rules-based แล AI เพียวๆ อาจไม่สามารถ Detect บาง transaction ที่มีความผิดปกติได้ หรือแม้แต่ transaction นี้ปกตินะ แต่ AI ก็ detect มา
เลยเป็นที่มาของอีกหนึ่ง Algorithms ที่จะมาเพิ่มความแม่นยำค่ะ นั่นคือ Deep Learning Algorithms โดยเฉพาะ Recurrent Neural Networks (RNN) และ Long Short-Term Memory (LSTM) ที่ค่อนข้างมีประสิทธิภาพในการหา Patterns ของข้อมูลที่เป็น Time series data (AI Model ที่นิกอธิบายมาใน #1 มักจะมอง transaction แต่ละครั้งแยกออกจากกันค่ะ แต่สิ่งที่เราเจอจากข้อมูลคือ Fraud มักเป็นธุรกรรมที่ต่อเนื่องกัน) ซึ่งนิกขออธิบายเพิ่มเติมสำหรับ RNN และ LSTM ให้ทุกท่านเห็นภาพมากยิ่งขึ้น ดังนี้ค่ะ
1. RNN: หรือชื่อภาษาไทยแบบเห็นภาพว่า “โครงข่ายประสาทเทียมแบบวนซ้ำ” ถูกสร้างขึ้นมาให้มีการจดจำข้อมูลที่อยู่ก่อนหน้าได้
ทุกท่านลองนึกภาพตามนะคะว่าเหมือนเวลาเราอ่านหนังสือ แต่ละคำที่เราอ่านจะมีความหมายที่สัมพันธ์กับคำก่อนหน้า เช่น ถ้าเราอ่านคำว่า “วันนี้บัญชี….” เราก็จะคาดเดาได้ว่าคำต่อไปอาจจะเป็น “โดนอายัด” หรือ “มีเงินเข้า” ซึ่ง RNN ก็ทำงานคล้ายกันเลยค่ะ โดยจะมี “หน่วยความจำภายใน” ที่คอยเก็บข้อมูลจาก State ก่อนหน้า แล้วนำมาประมวลผลกับข้อมูลปัจจุบัน ☜(゚ヮ゚☜)
ซึ่งความสามารถนี้มีประโยชน์สุดๆ ในงาน Fraud Detection ค่ะทุกท่าน เพราะทำให้โมเดลเข้าใจ พฤติกรรมของ Transaction ที่ปกติ ของ User นั้นๆ ที่ได้จากข้อมูลในอดีต และเมื่อมีพฤติกรรมผิดปกติ หรือ Fraud เกิดขึ้น เช่น ลูกค้าคนนี้ไม่เคยซื้อของออนไลน์ แต่อยู่ดีๆ ก็ซื้อของจากต่างประเทศ หรือมีเงินโอนเข้าแปลกๆ เข้ามา (เคสคล้ายๆ สถานการณ์ปัจจุบันเลยใช่ไหมคะ) RNN ก็จะสามารถระบุได้ทันทีว่า Transaction นี้ไม่เหมือนปกติ (ที่เคยเป็น) และแจ้งเตือนได้
2. LSTM: สำหรับ Model นี้ถูกพัฒนาขึ้นมาต่อยอด เพื่อแก้ปัญหาความจำสั้นของ RNN ค่ะ เพราะตัว RNN เองมีข้อจำกัดอยู่บ้างที่เรียกว่า Vanishing Gradient หรือพูดง่ายๆ ค่ะว่า RNN ค่อนข้างขี้ลืม ถ้าข้อมูลอยู่ไกลกันมากๆ RNN ก็จะจำไม่ได้ว่าเคยเจออะไรมาบ้าง 🤣🤣
ซึ่งเป็นปัญหาใหญ่ในงานที่ต้องพิจารณาพฤติกรรมระยะยาว เช่น การทำ Fraud detection สำหรับบ้าง user ที่ไม่ค่อยมี transaction ค่ะ
LSTM ที่มีหน่วยความจำเฉพาะที่ซับซ้อนกว่า สามารถคัดแยกได้ว่า data ไหนที่ควร เก็บ ลืม หรือส่งต่อเข้าประตู (gate) ไปยัง state ถัดไป เลยสามารถแก้ปัญหาขี้ลืมของ RNN ได้ โดยเฉพาะอย่างยิ่งในบริบทของการตรวจจับ Fraud ที่มีพฤติกรรมซับซ้อน และเกิดขึ้นเป็นช่วงๆ หรือ Transaction เล็กๆ หลายครั้ง เช่นการโอนเงินเข้าจากบัญชีแปลกๆ ก่อนการเกิด Fraud ครั้งใหญ่ ค่ะ
Last but not Least..
อ่านมาถึงตรงนี้ นิกเชื่อว่าหลายท่านคงเห็นภาพแล้วว่าการทำ Fraud Detection AI หรือตรวจจับความผิดปกติในธุรกรรมการเงินถือด้วยปัญญาประดิษฐ์ ถือเป็นหนึ่ง Algorithms ที่ช่วยเพิ่มประสิทธิภาพของการตรวจจับได้ แต่อย่างไรก็ตามการพัฒนาด้านเทคนิค และกระบวนการทำงาน ได้ยังคงมีความสำคัญมากๆ เพื่อให้สามารถป้องกัน/ปราบปรามอาชญากรรมทางการเงินได้อย่างมีประสิทธิภาพและไม่กระทบต่อ User ทั่วไปดังที่เป็นอยู่ในสถานการณ์ปัจจุบันนี้ค่ะ
ทั้งนี้หากเพื่อนๆ ท่านไหนอยากลอง Code เล่นๆ สามารถเข้าไปที่ Github นี้ แล้ว Fork โค้ดไปลองเล่นกันได้เลยค่ะ 😎😀