ในช่วงไม่นานมานี้ อีคอมเมิร์ซได้เติบโตอย่างรวดเร็ว ส่งผลให้การฉ้อโกงผ่านการชำระเงินออนไลน์เพิ่มขึ้นตามไปด้วย การฉ้อโกงสร้างความเสียหายให้ธุรกิจต่างๆ ทั่วโลกเป็นมูลค่ากว่า 20,000 ล้านดอลลาร์สหรัฐต่อปีโดยประมาณ นอกจากนี้ สำหรับเงินทุกดอลลาร์ที่เสียไปกับการฉ้อโกง จริงๆ แล้ว ธุรกิจต้องแบกรับค่าใช้จ่ายโดยรวมสูงกว่านั้นมาก เนื่องจากจะมีค่าใช้จ่ายในการดำเนินงาน ค่าธรรมเนียมเครือข่าย และการเลิกใช้บริการของลูกค้าที่เพิ่มขึ้น
การฉ้อโกงไม่เพียงแต่ทำให้มีค่าใช้จ่ายจำนวนมากตามมาเท่านั้น แต่มิจฉาชีพที่เหนือชั้นก็จะคอยหาวิธีการใหม่ๆ มาแสวงหาประโยชน์จากจุดอ่อนต่างๆ อยู่เสมอ ส่งผลให้การรับมือกับการฉ้อโกงเป็นเรื่องท้าทาย ด้วยเหตุนี้ เราจึงพัฒนา Stripe Radar ขึ้นมา ซึ่งเป็นโซลูชันป้องกันการฉ้อโกงด้วยแมชชีนเลิร์นนิงที่ผสานการทำงานเข้ากับแพลตฟอร์ม Stripe ได้อย่างเต็มที่ แมชชีนเลิร์นนิงของ Radar จะใช้ข้อมูลจากการชำระเงินหลายแสนล้านดอลลาร์ที่ประมวลผลผ่านเครือข่าย Stripe ในแต่ละปี เพื่อตรวจจับการฉ้อโกงอย่างแม่นยำและปรับตัวเข้ากับแนวโน้มล่าสุดอย่างรวดเร็ว ซึ่งช่วยให้คุณขยายธุรกิจได้โดยไม่มีการฉ้อโกงเพิ่มขึ้นไปด้วย
คู่มือนี้จะแนะนำ Stripe Radar และวิธีที่เราใช้ประโยชน์จากเครือข่าย Stripe ในการตรวจจับการฉ้อโกง โดยจะให้ภาพรวมเกี่ยวกับเทคนิคแมชชีนเลิร์นนิงต่างๆ ที่เราใช้ อธิบายวิธีคิดของเราเกี่ยวกับประสิทธิผลและประสิทธิภาพของระบบตรวจจับการฉ้อโกง และอธิบายว่าเครื่องมืออื่นๆ ในชุดเครื่องมือ Radar จะช่วยธุรกิจยกระดับประสิทธิภาพในการรับมือกับการฉ้อโกงได้อย่างไร
ข้อมูลเบื้องต้นเกี่ยวกับการฉ้อโกงผ่านบัตรเครดิตทางออนไลน์
การชำระเงินจะถือว่าเป็นการฉ้อโกงเมื่อเจ้าของบัตรไม่ได้อนุมัติการเรียกเก็บเงินรายการนั้น เช่น หากมิจฉาชีพทำการซื้อโดยใช้หมายเลขบัตรที่ขโมยมาแต่ยังไม่มีการรายงาน การชำระเงินนั้นก็อาจได้รับการประมวลผลจนสำเร็จ แต่ต่อมา เมื่อเจ้าของบัตรพบว่ามิจฉาชีพนำบัตรของตนไปใช้ ก็จะโต้แย้งการชำระเงินนั้นกับธนาคารโดยการยื่นเรื่องโต้แย้งการชำระเงิน (หรือที่เรียกว่า "การดึงเงินคืน")
ธุรกิจสามารถคัดค้านการดึงเงินคืนได้โดยส่งหลักฐานที่แสดงให้เห็นว่าการชำระเงินนั้นถูกต้อง แต่ในกรณีของธุรกรรมแบบไม่ใช้บัตร หากเครือข่ายเห็นว่าการชำระเงินนั้นเป็นการฉ้อโกงจริง เจ้าของบัตรก็จะเป็นฝ่ายชนะ ส่วนธุรกิจก็จะต้องแบกรับการเสียสินค้าและค่าธรรมเนียมอื่นๆ
ที่ผ่านมา ธุรกิจใช้กฎแบบเหมารวม (Brute-force rule) เพื่อคาดการณ์และบล็อกการเรียกเก็บเงินที่ต้องสงสัยว่าเป็นการฉ้อโกง แต่กฎที่เถรตรงเกินไป (Hard-coded rule) เช่น การบล็อกบัตรเครดิตทั้งหมดที่ใช้ในต่างประเทศ ก็อาจบล็อกหลายๆ ธุรกรรมที่ถูกต้องไปด้วย แต่แมชชีนเลิร์นนิงสามารถตรวจจับรูปแบบที่ละเอียดซับซ้อนกว่านั้นได้ เพื่อช่วยให้คุณมีรายรับเพิ่มขึ้นถึงขีดสุด ในการใช้แมชชีนเลิร์นนิง ผลลบเท็จ (False negative) จะเกิดขึ้นเมื่อระบบตรวจไม่พบสิ่งที่ออกแบบมาให้ตรวจจับ ซึ่งในกรณีนี้ก็คือธุรกรรมที่เป็นการฉ้อโกง ส่วนผลบวกเท็จ (False positive) จะเกิดขึ้นในกรณีที่ระบบแจ้งเตือนถึงความผิดปกติทั้งที่ไม่ได้ผิดปกติ เช่น การบล็อกลูกค้าที่ตั้งใจจะซื้อจริงๆ ก่อนที่เราจะไปพูดถึงรายละเอียดของแมชชีนเลิร์นนิง เราก็ควรมาทำความเข้าใจเกี่ยวกับข้อดีและข้อเสียต่างๆ ที่เกี่ยวข้องกันก่อน
ในกรณีที่มีผลลบเท็จ ธุรกิจมักต้องรับผิดชอบเป็นจำนวนเงินตามยอดธุรกรรมเดิมพร้อมค่าธรรมเนียมการดึงเงินคืน (ค่าใช้จ่ายในการให้ธนาคารปรับคืนเงินที่ชำระเงินผ่านบัตร) ค่าธรรมเนียมเครือข่ายที่สูงขึ้นอันเนื่องมาจากการโต้แย้งการชำระเงิน และค่าใช้จ่ายในการดำเนินงานที่สูงขึ้นจากการตรวจสอบการเรียกเก็บเงินหรือการคัดค้านการโต้แย้งการชำระเงิน นอกจากนี้ หากคุณมีการโต้แย้งการชำระเงินมากเกินไป คุณก็อาจต้องเข้าร่วมโปรแกรมการตรวจสอบการดึงเงินคืนของเครือข่าย ซึ่งอาจทำให้มีค่าใช้จ่ายสูงขึ้น หรือในบางกรณีก็ทำให้ไม่สามารถรับชำระเงินด้วยบัตรได้
ผลบวกเท็จ (หรือการปฏิเสธการชำระเงินผิดพลาด) จะเกิดขึ้นเมื่อลูกค้าจริงพยายามจะซื้อ แต่ระบบป้องกันไม่ให้ลูกค้าซื้อได้ การปฏิเสธการชำระเงินผิดพลาดเช่นนี้อาจทำให้ธุรกิจเสียทั้งกำไรขั้นต้นและเสื่อมเสียชื่อเสียงได้ จริงๆ แล้ว ในการสำรวจความคิดเห็นครั้งล่าสุด ผู้บริโภค 33% ระบุว่า จะไม่กลับไปซื้อกับร้านเดิมอีกหากถูกปฏิเสธการชำระเงินอย่างไม่ถูกต้อง
คุณจะต้องชั่งน้ำหนักให้ดีระหว่างการป้องกันการโต้แย้งการชำระเงินได้มากขึ้น (ผลลบเท็จ) กับการลดการบล็อกลูกค้าที่ตั้งใจจะซื้อจริงๆ (ผลบวกเท็จ) เพราะยิ่งคุณมีผลลบเท็จน้อยลงเท่าใด คุณก็จะต้องทำใจว่าจะมีผลบวกเท็จมากขึ้นเท่านั้น (ซึ่งก็จะสลับกันไปเช่นนี้) เมื่อคุณป้องกันการฉ้อโกงได้มากขึ้น คุณก็ย่อมมีจำนวนลูกค้าที่ตั้งใจซื้อจริงๆ ที่ถูกบล็อกไปมากขึ้นด้วย แต่การลดจำนวนผลบวกเท็จก็มักจะเพิ่มโอกาสที่การฉ้อโกงจริงๆ จะเล็ดลอดการตรวจจับไปได้มากขึ้น ธุรกิจต่างๆ จึงต้องตัดสินใจว่าจะหาจุดกึ่งกลางระหว่าง 2 อย่างนี้อย่างไร โดยพิจารณาจากส่วนต่างกำไร รูปแบบการเติบโต และปัจจัยอื่นๆ
หากธุรกิจมีส่วนต่างกำไรน้อย (เช่น หากคุณขายอาหารทางออนไลน์) ค่าใช้จ่ายจากธุรกรรมที่เป็นการฉ้อโกงเพียง 1 รายการก็อาจเทียบเท่ากับธุรกรรมที่ดีหลายร้อยรายการทีเดียว ซึ่งทำให้ผลลบเท็จแต่ละครั้งมีราคาที่ต้องจ่ายสูงมาก ธุรกิจที่มีลักษณะเช่นนี้จึงอาจเลือกใช้มาตรการแบบครอบคลุมเผื่อไว้ก่อน (Wide net) เมื่อพยายามยับยั้งการฉ้อโกงที่อาจเกิดขึ้น แต่หากธุรกิจมีส่วนต่างกำไรสูง เช่น ธุรกิจ SaaS ก็จะทำตรงข้ามกัน เพราะรายรับที่เสียไปจากการบล็อกลูกค้าที่อยากใช้บริการจริงๆ เพียงรายเดียวก็อาจมีมูลค่ามากกว่าค่าใช้จ่ายจากการฉ้อโกงที่เพิ่มขึ้น
Stripe Radar และเครือข่าย Stripe
Radar คือโซลูชันป้องกันการฉ้อโกงของ Stripe ที่ช่วยปกป้องธุรกิจจากการฉ้อโกงผ่านบัตรเครดิตทางออนไลน์ โซลูชันนี้ใช้แมชชีนเลิร์นนิงแบบปรับเปลี่ยนได้ ซึ่งเป็นผลที่ได้จากการทำงานหลายปีในด้านวิทยาศาสตร์ข้อมูลและโครงสร้างพื้นฐานของทีมแมชชีนเลิร์นนิงโดยเฉพาะของ Stripe อัลกอริทึมของ Radar จะประเมินความเสี่ยงต่อการฉ้อโกงของทุกธุรกรรมและดำเนินการอย่างเหมาะสม ระบบจะบล็อกการชำระเงินที่มีคะแนนสูงและ Radar for Fraud Teams ก็มีเครื่องมือต่างๆ เพื่อให้ผู้ใช้ระบุได้ว่าควรจะดำเนินการอื่นๆ เมื่อใด
Stripe ประมวลผลการชำระเงินหลายแสนล้านดอลลาร์จากธุรกิจหลายล้านแห่ง และติดต่อธนาคารพาร์ทเนอร์หลายพันแห่งทั่วโลกในแต่ละปี การดำเนินงานที่ครอบคลุมมากเช่นนี้ทำให้เรามักจะเห็นสัญญาณและรูปแบบต่างๆ ได้เร็วกว่าเครือข่ายเล็กๆ เป็นอย่างมาก ระบบจะใช้ข้อมูลแบบผลรวมเกี่ยวข้องกับการฉ้อโกงจากทุกธุรกรรมบน Stripe (ซึ่งเก็บรวบรวมโดยอัตโนมัติผ่านขั้นตอนการชำระเงิน) เพื่อยกระดับการตรวจจับการฉ้อโกงของเราให้ดีขึ้น สัญญาณต่างๆ เช่น ประเทศที่ออกบัตรหรือที่อยู่ IP ที่ใช้ในการชำระเงิน จะให้ข้อมูลเชิงลึกที่เป็นประโยชน์ในการคาดการณ์ว่าการชำระเงินนั้นๆ น่าจะเป็นการฉ้อโกงหรือไม่
ประวัติการใช้งานบัตรในเครือข่าย Stripe มาก่อนยังช่วยให้ข้อมูลจำนวนมหาศาลเพื่อใช้ประกอบการประเมินความเสี่ยงของเราด้วย โดย 90% ของบัตรที่ใช้ในเครือข่าย Stripe เคยมีการใช้งานมาแล้วมากกว่า 1 ครั้ง ซึ่งช่วยให้เรามีข้อมูลที่ครบถ้วนสมบูรณ์ยิ่งขึ้นเพื่อประเมินว่าบัตรเหล่านั้นมีการใช้งานอย่างถูกต้องหรือเป็นการฉ้อโกง
แมชชีนเลิร์นนิงของเรามีข้อได้เปรียบที่สำคัญอีกอย่างหนึ่งก็คือ Radar นั้นติดตั้งมาพร้อมกับ Stripe เลยและใช้งานได้ทันที โซลูชันป้องกันการฉ้อโกงอื่นๆ มักต้องใช้เงินลงทุนจำนวนมาก ไม่ว่าจะจ่ายล่วงหน้าหรือจ่ายเรื่อยๆ ก่อนอื่น ธุรกิจจะต้องผสานการทำงานกับผลิตภัณฑ์ด้านการฉ้อโกง ซึ่งจะมีการทำงานด้านวิศวกรรมเพื่อส่งข้อมูลเกี่ยวกับเหตุการณ์และการชำระเงินที่เกี่ยวข้อง ต่อมา ธุรกิจจะต้องผสานการทำงานให้เสร็จสิ้นเพื่อส่งป้ายกำกับการชำระเงิน (ซึ่งเป็นการจัดว่าธุรกรรมนั้นเป็นการฉ้อโกงหรือไม่) จากผู้ประมวลผลการชำระเงินไปยังผู้ให้บริการป้องกันการฉ้อโกง หรือติดป้ายกำกับการชำระเงินด้วยตนเอง ซึ่งอาจใช้เวลานานมากและเกิดข้อผิดพลาดได้ง่าย แต่ Radar จะได้รับข้อมูล "ที่ถูกต้องตามความเป็นจริง" จากขั้นตอนการชำระเงินตามปกติของ Stripe เลย และใช้ข้อมูลที่ทันต่อเวลาและแม่นยำจากเครือข่ายบัตรและผู้ออกบัตรได้โดยตรง โดยไม่ต้องเสียเวลาไปกับงานวิศวกรรมหรือทำการเขียนโค้ด
เรามาดูรายละเอียดเพิ่มเติมเกี่ยวกับแมชชีนเลิร์นนิงและวิธีที่เราใช้ใน Stripe กัน
ข้อมูลพื้นฐานเกี่ยวกับแมชชีนเลิร์นนิง
แมชชีนเลิร์นนิง คือ ชุดเทคนิคในการนำเอาข้อมูลจำนวนมากมาใช้สร้างโมเดลที่คาดการณ์ผลลัพธ์ต่างๆ เช่น โอกาสที่การเรียกเก็บเงินรายการหนึ่งจะส่งผลให้เกิดการโต้แย้งการชำระเงินเนื่องจากเป็นการฉ้อโกง
การใช้งานหลักๆ อย่างหนึ่งของแมชชีนเลิร์นนิงก็คือการคาดการณ์ กล่าวคือ เราอยากจะคาดการณ์ค่าของตัวแปรเอาต์พุตบางรายการโดยดูจากค่าอินพุตบางอย่าง โดยในกรณีของเรา ค่าเอาต์พุตจะเป็น true หากการชำระเงินเป็นการฉ้อโกง และจะเป็น false หากไม่เป็นการฉ้อโกง (เราเรียกค่าแบบไบนารีแบบนี้ว่าบูลีน) และตัวอย่างค่าอินพุตก็อาจเป็นประเทศที่ออกบัตร หรือจำนวนประเทศต่างๆ ที่มีการนำบัตรนั้นๆ ไปใช้ทั่วเครือข่าย Stripe ในวันที่ผ่านมา เราจะกำหนดวิธีคาดการณ์ตามตัวอย่างข้อมูลอินพุตและเอาต์พุตก่อนหน้านี้
ข้อมูลที่ใช้ในการฝึก (หรือสร้าง) โมเดล ได้แก่ บันทึก (มักได้จากข้อมูลในอดีต) โดยมีทั้งค่าเอาต์พุตและค่าอินพุตต่างๆ ดังที่เราให้ไว้ในตัวอย่างด้านล่างนี้ (แบบง่ายมาก)
|
จำนวนเงินเป็น USD
|
ประเทศของบัตร
|
ประเทศที่มีการนำบัตรไปใช้ (24 ชม.)
|
เป็นการฉ้อโกงหรือไม่
|
|---|---|---|---|
| $10.00 | สหรัฐอเมริกา | 1 | ไม่ใช่ |
| $10.00 | แคนาดา | 2 | ไม่ใช่ |
| $10.00 | แคนาดา | 1 | ไม่ใช่ |
| $10.00 | สหรัฐอเมริกา | 1 | ใช่ |
| $30.00 | สหรัฐอเมริกา | 1 | ใช่ |
| $99.00 | แคนาดา | 1 | ใช่ |
แม้ว่าในตัวอย่างนี้จะมีเพียงสามอินพุต แต่ในทางปฏิบัติแล้ว โมเดลแมชชีนเลิร์นนิงมักจะมีอินพุตเป็นร้อยเป็นพันรายการ ผลลัพธ์ของอัลกอริทึมแมชชีนเลิร์นนิงจึงอาจอยู่ในรูปแบบโมเดลคล้ายๆ กับแผนผังการตัดสินใจ (Decision tree) ต่อไปนี้
เมื่อเราสังเกตเห็นธุรกรรมใหม่ เราจะดูค่าอินพุตและไล่ไปตามต้นไม้ (traverse the tree) “สไตล์เกม 20 คำถาม” จนกว่าจะถึง “ใบ” (leave) ใบหนึ่งของต้นไม้ แต่ละใบประกอบด้วยตัวอย่างทั้งหมดในชุดข้อมูล (ตารางข้างต้น) ที่ตรงกับคู่คำถาม-คำตอบตามเส้นทางที่ไล่ลงมาตามต้นไม้ และความน่าจะเป็นที่ธุรกรรมใหม่นั้นเป็นการฉ้อโกงคือจำนวนตัวอย่างในใบที่เป็นการฉ้อโกง หารด้วยจำนวนตัวอย่างทั้งหมดในใบนั้น พูดอีกอย่างคือ ต้นไม้จะตอบคำถามว่า “จากธุรกรรมในชุดข้อมูลของเราที่มีคุณสมบัติคล้ายกับธุรกรรมที่เรากำลังตรวจสอบอยู่ มีสัดส่วนเท่าใดที่เป็นการฉ้อโกงจริง” ส่วนที่เป็นแมชชีนเลิร์นนิงนั้นเกี่ยวข้องกับการสร้างต้นไม้ ว่าเราจะถามคำถามอะไร ตามลำดับใด เพื่อเพิ่มโอกาสสูงสุดที่เราจะสามารถแยกแยะระหว่างสองกลุ่มได้อย่างแม่นยำ แผนผังการตัดสินใจนั้นง่ายต่อการทำความเข้าใจและให้เหตุผล แต่ก็มีอัลกอริทึมการเรียนรู้ที่แตกต่างกันอีกมากมาย ซึ่งแต่ละอัลกอริทึมก็มีวิธีการเฉพาะตัวในการแสดงความสัมพันธ์ที่เราพยายามสร้างโมเดล
โมเดลแมชชีนเลิร์นนิงในปัจจุบันมีอยู่แพร่หลาย โดยเป็นพลังขับเคลื่อนอยู่เบื้องหลังผลิตภัณฑ์มากมายที่เราใช้งานเป็นประจำ และโดยทั่วไปแล้วมีความซับซ้อนกว่าโมเดลจำลอง (toy model) ข้างต้นมาก:
- Google ให้คำแนะนำการสะกดคำอย่างถูกต้องและแม่นยำด้วยคุณสมบัติ “คุณหมายถึงสิ่งนี้ใช่ไหม” (Did you mean?) ใน Search โดยใช้แมชชีนเลิร์นนิงเพื่อสร้างโมเดลพารามิเตอร์ที่เกี่ยวข้องกับภาษานับล้านรายการในเวลาน้อยกว่าสามวินาที
- Amazon ใช้แมชชีนเลิร์นนิงเพื่อคาดการณ์การซื้อด้วยระบบแนะนำ ที่อิงตามความต้องการ ความชอบ และพฤติกรรมที่เปลี่ยนแปลงไปของผู้ใช้ทั่วทั้งแพลตฟอร์ม แม้แต่สำหรับผู้ใช้ใหม่ที่ไม่มีข้อมูลในอดีต
และที่เกี่ยวข้องกับการพูดคุยนี้มากที่สุดคือ แมชชีนเลิร์นนิงเป็นพื้นฐานสำหรับ Stripe Radar ซึ่งพยายามคาดการณ์ว่าการชำระเงินใดของคุณเป็นการฉ้อโกง
แมชชีนเลิร์นนิงทำงานอย่างไร
หลักสูตรแมชชีนเลิร์นนิงในทางวิชาการมักจะเน้นไปที่กระบวนการสร้างโมเดล ซึ่งเป็นวิธีการแปลข้อมูล (เช่น ตารางข้างต้น) ไปเป็นโมเดล (เช่น แผนผังการตัดสินใจ) ซึ่งเป็นอัลกอริทึมที่บอกคุณว่าค่าอินพุต (ประเทศที่ออกบัตร, จำนวนประเทศที่ใช้บัตร ฯลฯ) จับคู่กับค่าผลลัพธ์ (ธุรกรรมนั้นเป็นการฉ้อโกงหรือไม่) อย่างไร กระบวนการที่นำตารางข้อมูลอินพุตข้างต้นไปสร้าง “ต้นไม้ที่ดีที่สุด” เป็นตัวอย่างของวิธีการแมชชีนเลิร์นนิงที่เฉพาะเจาะจง การสร้างโมเดลประกอบด้วยหลายขั้นตอน ซึ่งขึ้นอยู่กับลักษณะของข้อมูลและโมเดลที่คุณเลือกใช้ แม้ว่าเราจะไม่ลงรายละเอียดมากนัก แต่ต่อไปนี้คือภาพรวมในระดับสูง
ประการแรก เราต้องมีข้อมูลการฝึก ก่อนที่เราจะเริ่มตรวจจับการฉ้อโกงได้โดยอัตโนมัติ เราจำเป็นต้องมีชุดข้อมูลที่มีตัวอย่างของการฉ้อโกง สำหรับแต่ละตัวอย่าง เราจำเป็นต้องบันทึก (หรือสามารถคำนวณย้อนหลังได้) ชุดของคุณสมบัติอินพุตที่อาจเป็นประโยชน์ในการคาดการณ์ค่าผลลัพธ์ในอนาคต คุณสมบัติอินพุตเหล่านี้เรียกว่าคุณสมบัติการรวบรวมอินพุตทั้งหมดสำหรับตัวอย่างหนึ่งๆ เรียกว่าเวกเตอร์คุณสมบัติ (feature vector) ในตัวอย่างข้างต้น เวกเตอร์คุณสมบัติมีความยาวสาม (ประเทศที่ออกบัตร, จำนวนประเทศที่ใช้บัตรในวันที่ผ่านมา และจำนวนเงินที่ชำระเป็น USD)
อย่างไรก็ตาม เวกเตอร์คุณสมบัติที่มีคุณสมบัติหลายร้อยหรือหลายพันรายการก็ไม่ใช่เรื่องแปลก อันที่จริง Radar ใช้คุณสมบัติหลายร้อยรายการ และส่วนใหญ่เป็นค่ารวมที่คำนวณจากทั่วเครือข่าย Stripe เมื่อขนาดเครือข่ายของเราขยายตัว คุณสมบัติแต่ละรายการจะให้ข้อมูลมากขึ้น เนื่องจากข้อมูลการฝึกของเรากลายเป็นตัวแทนของชุดข้อมูลทั้งหมดของคุณสมบัตินั้นมากขึ้น ซึ่งรวมถึงข้อมูลที่ไม่ใช่ของ Stripe ทั้งหมด ค่าผลลัพธ์ ซึ่งในตัวอย่างที่เราใช้อยู่คือค่าบูลีนที่บอกว่าธุรกรรมนั้นเป็นการฉ้อโกงหรือไม่ มักเรียกว่าเป้าหมาย (target) หรือป้ายกำกับ (label) ดังนั้น ข้อมูลการฝึกจึงประกอบด้วยเวกเตอร์คุณสมบัติจำนวนมากและค่าผลลัพธ์ที่สอดคล้องกัน
ประการที่สอง เราต้องฝึกโมเดล เมื่อมีข้อมูลการฝึกแล้ว เราจำเป็นต้องมีวิธีการในการสร้างโมเดลการคาดการณ์ โดยทั่วไปแล้ว ตัวจำแนกประเภทแมชชีนเลิร์นนิงไม่เพียงแต่จะให้ผลลัพธ์เป็นป้ายกำกับคลาส (class label) เท่านั้น แต่โดยทั่วไปจะกำหนดความน่าจะเป็นที่ตัวอย่างนั้นๆ จัดอยู่ในแต่ละคลาสที่เป็นไปได้ ตัวอย่างเช่น ผลลัพธ์ของตัวจำแนกการฉ้อโกงอาจเป็นการประเมินว่าการชำระเงินมีโอกาสเป็นการฉ้อโกง 65% และมีโอกาสเป็นธุรกรรมที่ถูกต้อง 35%
มีเทคนิคแมชชีนเลิร์นนิงมากมายที่สามารถใช้ในการฝึกโมเดลได้ สำหรับแอปพลิเคชันแมชชีนเลิร์นนิงเชิงอุตสาหกรรมส่วนใหญ่ วิธีการแบบดั้งเดิม เช่น การถดถอยเชิงเส้น (linear regression) แผนผังการตัดสินใจ หรือป่าสุ่ม (random forest) ก็ทำงานได้ดี
อย่างไรก็ตาม เทคนิคที่ซับซ้อน ได้แก่ โครงข่ายประสาทเทียม (neural net) และการเรียนรู้เชิงลึก (deep learning) ซึ่งได้รับแรงบันดาลใจจากสถาปัตยกรรมของเซลล์ประสาทในสมอง เป็นผู้อยู่เบื้องหลังความก้าวหน้ามากมายในสาขานี้ รวมถึงการคาดการณ์ของ AlphaFold สำหรับโปรตีนของมนุษย์ทั้งหมด 98% ข้อได้เปรียบที่แท้จริงของโครงข่ายประสาทเทียมจะเกิดขึ้นเมื่อฝึกบนชุดข้อมูลขนาดใหญ่มากเท่านั้น ดังนั้นในทางปฏิบัติ ธุรกิจหลายแห่งจึงไม่สามารถใช้ประโยชน์จากเทคนิคเหล่านี้ได้อย่างเต็มที่ เนื่องจากขนาดของเครือข่าย Stripe จึงสามารถใช้แนวทางที่ล้ำสมัยนี้เพื่อส่งมอบผลลัพธ์ที่แท้จริงให้กับผู้ใช้ของเราได้ โมเดลใหม่ของเราได้ปรับปรุงประสิทธิภาพแมชชีนเลิร์นนิงของ Radar มากกว่า 20% เมื่อเทียบกับปีก่อนหน้า ซึ่งช่วยให้เราตรวจจับการฉ้อโกงได้มากขึ้นในขณะที่รักษาอัตราผลบวกเท็จให้ต่ำ
วิศวกรรมคุณสมบัติ
หนึ่งในส่วนที่ซับซ้อนที่สุดของแมชชีนเลิร์นนิงเชิงอุตสาหกรรมคือวิศวกรรมคุณสมบัติ ซึ่งประกอบด้วยสองส่วน:
(1) การกำหนดคุณสมบัติที่มีมูลค่าเชิงคาดการณ์โดยอิงจากความรู้ที่กว้างขวางในขอบเขตของปัญหานั้น และ (2) การดำเนินการทางวิศวกรรมเพื่อให้ค่าของคุณสมบัติเหล่านั้นพร้อมใช้งานทั้งสำหรับการฝึกโมเดลและการประเมินโมเดลใน “การใช้งานจริง”
ในการกำหนดคุณสมบัติ นักวิทยาศาสตร์ข้อมูลของ Stripe อาจมีความคิดว่าคุณสมบัติที่มีประโยชน์คือการคำนวณว่าการชำระเงินผ่านบัตรมาจากที่อยู่ IP ที่พบบ่อยสำหรับบัตรนั้นๆ หรือไม่ ตัวอย่างเช่น การชำระเงินผ่านบัตรที่มาจากที่อยู่ IP ที่เคยพบมาก่อน (เช่น ที่บ้านหรือที่ทำงานของเจ้าของบัตร) มีแนวโน้มที่จะเป็นการฉ้อโกงน้อยกว่าที่อยู่ IP ที่มาจากรัฐอื่น ในกรณีนี้ ความคิดนั้นเป็นเรื่องที่เข้าใจได้ง่าย แต่โดยทั่วไปแล้ว ความคิดเหล่านี้มาจากการตรวจสอบกรณีการฉ้อโกงหลายพันกรณี ตัวอย่างเช่น คุณอาจแปลกใจที่ได้เรียนรู้ว่าการคำนวณส่วนต่างระหว่างเวลาบนอุปกรณ์ของผู้ใช้กับเวลาสากลเชิงพิกัด (UTC) ในปัจจุบัน หรือจำนวนประเทศที่บัตรได้รับการอนุมัติสำเร็จ ก็ช่วยตรวจจับการฉ้อโกงได้
เมื่อเรามีแนวคิดเกี่ยวกับคุณสมบัติแล้ว เราต้องคำนวณค่าในอดีตของแนวคิดนั้นเพื่อที่จะสามารถฝึกโมเดลใหม่ที่รวมคุณสมบัตินี้เข้าไปด้วย นี่คือกระบวนการเพิ่มคอลัมน์ใหม่ลงใน “ตาราง” ข้อมูลที่เราใช้สร้างโมเดล ในการทำเช่นนี้สำหรับคุณสมบัติตัวเลือก (candidate feature) ของเรา สำหรับการชำระเงินทุกรายการในประวัติของ Stripe เราจำเป็นต้องคำนวณที่อยู่ IP 2 อันดับแรกที่พบบ่อยที่สุดซึ่งมีการชำระเงินด้วยบัตรนั้นก่อนหน้านี้ เราอาจทำสิ่งนี้ในลักษณะแบบแจกแจงด้วย Hadoop job แต่ถึงอย่างนั้น เราอาจพบว่า job นั้นใช้เวลา (หรือหน่วยความจำ) มากเกินไป จากนั้นเราอาจพยายามเพิ่มประสิทธิภาพการคำนวณโดยใช้โครงสร้างข้อมูลเชิงความน่าจะเป็นที่ประหยัดพื้นที่ แม้แต่คุณสมบัติที่เข้าใจง่าย การสร้างข้อมูลสำหรับการฝึกโมเดลก็ต้องใช้โครงสร้างพื้นฐานและเวิร์กโฟลว์โดยเฉพาะ
ไม่ใช่ทุกคุณสมบัติที่จะสร้างขึ้นโดยวิศวกร บางคุณสมบัติอาจปล่อยให้โมเดลคำนวณ แล้วทดสอบในภายหลังก่อนนำไปใช้งานจริง ค่าเชิงหมวดหมู่ (categorical value) เช่น ประเทศต้นทางของบัตรหรือผู้ค้าที่ประมวลผลธุรกรรม (ซึ่งตรงข้ามกับคุณสมบัติเชิงตัวเลข) เหมาะกับแนวทางนี้ คุณสมบัติเหล่านี้มักจะมีค่าที่หลากหลาย และการกำหนดรูปแบบการนำเสนอ (representation) ที่ดีสำหรับคุณสมบัติเหล่านั้นอาจเป็นเรื่องท้าทาย
ที่ Stripe เราฝึกโมเดลของเราให้เรียนรู้ embedding สำหรับผู้ค้าแต่ละรายโดยอิงตามรูปแบบธุรกรรม Embedding อาจเปรียบได้กับพิกัดของผู้ค้ารายนั้นๆ เมื่อเทียบกับผู้อื่น ผู้ค้าที่คล้ายกันมักจะมี Embedding ที่คล้ายกัน (วัดโดยใช้ cosine distance) ซึ่งช่วยให้โมเดลสามารถถ่ายโอนการเรียนรู้จากผู้ค้ารายหนึ่งไปยังรายถัดไปได้ ตารางด้านล่างแสดงให้เห็นว่า Embedding เหล่านี้อาจมีหน้าตาเป็นอย่างไร เมื่อพิจารณาว่า Uber และ Lyft มีแนวโน้มที่จะคล้ายกันมากกว่า Slack ที่ Stripe เราใช้ Embedding สำหรับคุณสมบัติเชิงหมวดหมู่ที่หลากหลาย เช่น ธนาคารผู้ออกบัตร ประเทศของผู้ค้าและผู้ใช้ วันในสัปดาห์ และอื่นๆ
|
ภาพประกอบแสดงพิกัดแบบฝัง
|
|||
|---|---|---|---|
|
Uber
|
2.34 | 1.1 | -3.5 |
|
Lyft
|
2.1 | 1.2 | -2 |
|
Slack
|
7 | -2 | 1 |
การใช้ Embedding เป็นเรื่องที่พบบ่อยมากขึ้นในแอปพลิเคชันแมชชีนเลิร์นนิงเชิงอุตสาหกรรมขนาดใหญ่ ตัวอย่างเช่น Word Embedding เช่นนี้ ช่วยจับความสัมพันธ์ทางความหมายที่ซับซ้อนระหว่างคำ และมีส่วนร่วมในเหตุการณ์สำคัญของการประมวลผลภาษาธรรมชาติ เช่น Word2Vec, BERT และ GPT-3 Stripe สร้าง Embedding เพื่อจับความสัมพันธ์ที่คล้ายคลึงกันระหว่างเอนทิตีต่างๆ ในเครือข่าย Stripe เช่นเดียวกับที่วิธีการข้างต้นจับความคล้ายคลึงกันระหว่างคำ Embedding เป็นวิธีที่มีประสิทธิภาพในการเรียนรู้แนวคิดระดับที่สูงขึ้นโดยไม่ต้องฝึกอย่างชัดแจ้ง ตัวอย่างเช่น รูปแบบการฉ้อโกงมักกระจายตัวไม่สม่ำเสมอตามพื้นที่ทางภูมิศาสตร์ ด้วย Embedding หากระบบของเราตรวจพบรูปแบบการฉ้อโกงใหม่ในบราซิล ระบบจะสามารถระบุรูปแบบเดียวกันนั้นได้โดยอัตโนมัติหากปรากฏในสหรัฐอเมริกา โดยไม่ต้องฝึกเพิ่มเติม ด้วยวิธีนี้ ความก้าวหน้าทางอัลกอริทึมจะช่วยให้ก้าวล้ำนำหน้ารูปแบบการฉ้อโกงที่เปลี่ยนแปลงไป และปกป้องลูกค้าของเรา
หากคุณสนใจที่จะใช้งานผลิตภัณฑ์แมชชีนเลิร์นนิงที่ Stripe โปรดติดต่อเรา!
การประเมินโมเดลแมชชีนเลิร์นนิง
เมื่อเราพัฒนาตัวจำแนกการฉ้อโกงด้วยแมชชีนเลิร์นนิงขึ้นมา ซึ่งใช้คุณลักษณะหลายร้อยอย่างและกำหนดความน่าจะเป็น (หรือคะแนน) ที่การชำระเงินนั้นๆ จะเป็นการฉ้อโกงให้กับธุรกรรมที่เข้ามาทุกรายการ เราก็ต้องดูว่าโมเดลนี้ตรวจจับการฉ้อโกงได้มีประสิทธิภาพมากน้อยเพียงใด
คำศัพท์สำคัญ
การนิยามคำศัพท์สำคัญบางคำมีประโยชน์ในการช่วยให้เข้าใจวิธีที่เราประเมินระบบแมชชีนเลิร์นนิงได้ดีขึ้น
เรามาเริ่มโดยสมมติว่า เราได้วางนโยบายที่จะบล็อกการชำระเงิน หากโมเดลแมชชีนเลิร์นนิงกำหนดว่าธุรกรรมนั้นๆ มีความน่าจะเป็นที่จะเกิดการฉ้อโกงอย่างน้อย 0.7 (เราจะเขียนในรูป P(fraud)>0.7) ค่าต่างๆ บางส่วนที่สามารถใช้เพื่อให้เหตุผลเกี่ยวกับประสิทธิภาพของโมเดลและนโยบายของเราได้มีดังนี้
ความแม่นยำ: ความแม่นยำของนโยบาย คือ สัดส่วนของธุรกรรมที่บล็อกไปแล้วเป็นการฉ้อโกงจริงๆ ยิ่งความแม่นยำสูงเท่าใด ก็จะมีผลบวกเท็จน้อยลงเท่านั้น สมมติว่าจากธุรกรรม 10 รายการ มี 6 รายการที่ P(fraud)>0.7 และใน 6 รายการนั้นมี 4 รายการที่เป็นการฉ้อโกงจริงๆ ความแม่นยำก็จะอยู่ที่ 4/6=0.66
อัตราการตรวจจับ: อัตราการตรวจจับเรียกอีกอย่างว่าความไว (Sensitivity) หรืออัตราผลบวกจริง (True positive rate) อัตราการตรวจจับ คือ สัดส่วนของการฉ้อโกงทั้งหมดที่นโยบายของเราตรวจจับได้ ซึ่งก็คือสัดส่วนของการฉ้อโกงที่มี P(fraud)>0.7 ยิ่งอัตราการตรวจจับสูงเท่าใด ก็จะมีผลลบเท็จน้อยลงเท่านั้น สมมติว่าจากธุรกรรม 10 รายการ มี 5 รายการเป็นการฉ้อโกงจริง หากโมเดลของเรากำหนดให้ธุรกรรม 4 รายการในนั้นมีค่า P(fraud)>0.7 อัตราการตรวจจับก็จะเป็น 4/5=0.8
อัตราผลบวกเท็จ: อัตราผลบวกเท็จ คือ สัดส่วนของการชำระเงินที่ถูกต้องทั้งหมดแต่นโยบายของเราบล็อกผิดไป สมมติว่าจากธุรกรรม 10 รายการ มี 5 รายการเป็นธุรกรรมที่ถูกต้อง หากโมเดลของเรากำหนดให้ธุรกรรม 2 รายการในจำนวนนี้มีค่า P(fraud)>0.7 อัตราผลบวกเท็จก็จะเป็น 2/5=0.4
แม้จะมีการใช้ค่าอื่นๆ ที่ใช้ในการประเมินตัวจำแนก แต่เราจะเน้นที่ 3 ค่านี้
กราฟความแม่นยำ-อัตราการตรวจจับ และ ROC
คำถามปกติที่จะตามมาก็คือ ค่าที่ดีสำหรับความแม่นยำ อัตราการตรวจจับ และอัตราผลบวกเท็จควรเป็นแบบไหน ในโลกอุดมคติเชิงทฤษฎี ความแม่นยำจะอยู่ที่ 1.0 (แสดงว่า 100% ของธุรกรรมที่คุณระบุว่าเป็นการฉ้อโกงนั้นเป็นการฉ้อโกงจริงๆ) ซึ่งจะทำให้อัตราผลบวกเท็จเป็น 0 (คุณไม่ได้ระบุธุรกรรมที่ถูกต้องผิดไปเป็นการฉ้อโกงเลยแม้แต่รายการเดียว) ส่วนอัตราการตรวจจับก็จะอยู่ที่ 1.0 เช่นกัน (การฉ้อโกงทั้ง 100% ได้รับการระบุว่าเป็นการฉ้อโกง)
อันที่จริงแล้ว คุณจะต้องชั่งน้ำหนักให้ดีระหว่างความแม่นยำกับอัตราการตรวจจับ กล่าวคือ เมื่อคุณเพิ่มเกณฑ์ความน่าจะเป็นในการบล็อก ความแม่นยำก็จะเพิ่มขึ้น (เพราะเกณฑ์การบล็อกเข้มงวดขึ้น) แต่อัตราการตรวจจับจะลดลง (เพราะมีธุรกรรมจำนวนน้อยลงที่จะตรงกับเกณฑ์ความน่าจะเป็นในระดับสูง) ทั้งนี้ สำหรับโมเดลหนึ่งๆ กราฟความแม่นยำ-อัตราการตรวจจับจะแสดงให้เห็นการได้อย่างเสียอย่างระหว่างความแม่นยำกับอัตราการตรวจจับเมื่อเกณฑ์นโยบายเปลี่ยนแปลงไป ดังนี้
เมื่อโมเดลปรับปรุงดีขึ้นโดยรวม—เนื่องจากการฝึกข้อมูลจากทั่วเครือข่าย Stripe มากขึ้นเรื่อยๆ การเพิ่มคุณสมบัติที่สามารถคาดการณ์การฉ้อโกงได้ดี และการปรับแต่งพารามิเตอร์อื่นๆ ของโมเดล—กราฟความแม่นยำ-อัตราการตรวจจับจะเปลี่ยนแปลงไปดังที่แสดงในตัวอย่างข้างต้น เนื่องจากโมเดลนี้เป็นตัวควบคุมข้อดีข้อเสียที่ต้องแลกกันสำหรับธุรกิจบน Stripe เราจึงคอยติดตามผลกระทบต่อกราฟความแม่นยำ-อัตราการตรวจจับอย่างใกล้ชิด เมื่อนักวิทยาศาสตร์ข้อมูลและวิศวกรแมชชีนเลิร์นนิงปรับเปลี่ยนโมเดล
เมื่อพิจารณากราฟความแม่นยำ-อัตราการตรวจจับ สิ่งสำคัญคือต้องแยกแยะระหว่างแนวคิดของคำว่า “ประสิทธิภาพ” สองแบบ ตัวโมเดลเองจะดีขึ้นโดยรวมยิ่งอยู่ใกล้ด้านขวาบนของแผนภูมิมากเท่าใด (นั่นคือ จุดที่ทั้งความแม่นยำและอัตราการตรวจจับเป็น 1.0) อย่างไรก็ตาม การนำโมเดลไปใช้งานจริงมักจะต้องเลือกจุดปฏิบัติการบนกราฟความแม่นยำ-อัตราการตรวจจับ (ในกรณีนี้คือเกณฑ์นโยบายสำหรับการบล็อกธุรกรรม) ซึ่งจะควบคุมผลกระทบที่เป็นรูปธรรมของการใช้โมเดลที่มีต่อธุรกิจ
พูดง่ายๆ ก็คือ ปัญหามีอยู่ 2 อย่างดังนี้
ปัญหาด้านวิทยาศาสตร์ข้อมูลในการสร้างโมเดลแมชชีนเลิร์นนิงที่ดีโดยการเพิ่มคุณสมบัติที่เหมาะสม โมเดลจะเป็นตัวควบคุมรูปร่างของกราฟความแม่นยำ-อัตราการตรวจจับ
ปัญหาทางธุรกิจในการเลือกนโยบายเพื่อตัดสินใจว่าจะบล็อกการฉ้อโกงที่อาจเกิดขึ้นเป็นจำนวนเท่าใด นโยบายจะเป็นตัวควบคุมว่าเรากำลังดำเนินการอยู่ที่จุดใดบนกราฟ
อีกกราฟหนึ่งที่ใช้ตรวจสอบเมื่อประเมินโมเดลแมชชีนเลิร์นนิงคือกราฟ ROC (ROC เป็นตัวย่อของ “receiver operating characteristic” ซึ่งเป็นชื่อที่หลงเหลือมาจากต้นกำเนิดของกราฟนี้ในการใช้งานด้านการประมวลผลสัญญาณ) กราฟ ROC คือกราฟที่พล็อตอัตราผลบวกเท็จ (บนแกน x) และอัตราผลบวกจริง (ซึ่งเหมือนกับอัตราการตรวจจับ) บนแกน y สำหรับค่าต่างๆ ของเกณฑ์นโยบาย
ROC ที่เหมาะสมจะอยู่ชิดมุมซ้ายบนของกราฟ (ซึ่งมีอัตราการตรวจจับอยู่ที่ 1.0 และอัตราผลบวกเท็จอยู่ที่ 0.0) และเมื่อโมเดลพัฒนาขึ้น ROC ก็จะเคลื่อนไปในทิศทางดังกล่าวมากขึ้น วิธีหนึ่งในการประเมินคุณภาพโดยรวมของโมเดล คือ การคำนวณพื้นที่ใต้กราฟ (หรือ AUC) ซึ่งในกรณีที่เหมาะสม AUC จะเป็น 1.0 ในขณะที่พัฒนาโมเดล เราจะคอยดูว่ากราฟความแม่นยำ-อัตราการตรวจจับ กราฟ ROC และ AUC เปลี่ยนแปลงไปอย่างไรบ้าง
การแจกแจงคะแนน
ลองนึกภาพว่า เรามีโมเดลที่กำหนดความน่าจะเป็นของการฉ้อโกงระหว่าง 0.0 ถึง 1.0 ให้กับธุรกรรมหนึ่งๆ แบบสุ่ม ในทางปฏิบัติ โมเดลนี้ไม่ได้ช่วยจำแนกธุรกรรมที่ถูกต้องกับธุรกรรมที่เป็นการฉ้อโกงเลย และแทบไม่มีประโยชน์กับเรา การแจงแจกคะแนนของโมเดลจะแสดงให้เห็นลักษณะแบบสุ่มนี้ โดยแสดงสัดส่วนของธุรกรรมที่ได้รับคะแนนแต่ละแบบที่เกิดขึ้น ในกรณีที่เป็นการสุ่มล้วน การแจกแจงคะแนนจะค่อนข้างสม่ำเสมอ
โมเดลจะมีการแจกแจงคะแนนที่สม่ำเสมอตามที่กล่าวมาในกรณีที่โมเดลไม่มีฟีเจอร์ที่ใช้คาดการณ์การฉ้อโกงได้เลย เป็นต้น เมื่อโมเดลพัฒนาขึ้น (เช่น เพิ่มฟีเจอร์ที่ช่วยในการคาดการณ์ ฝึกกับข้อมูลมากขึ้น และอื่นๆ) โมเดลก็จะแยกแยะกลุ่มที่เป็นการฉ้อโกงกับกลุ่มที่ถูกต้องได้ดียิ่งขึ้น และการแจกแจงคะแนนก็จะมีลักษณะเป็นแบบทวิฐานนิยม (Bimodal) มากขึ้น โดยมีค่าสูงสุดอยู่ที่คะแนนประมาณ 0.0 กับ 1.0
การแจกแจงทวิฐานนิยม (Bimodal distribution) เพียงอย่างเดียวไม่อาจบอกได้ว่าโมเดลนั้นดีหรือไม่ (โมเดลที่ไม่มีสาระซึ่งกำหนดความน่าจะเป็นแบบสุ่มเพียง 0.0 และ 1.0 ก็มีการแจกแจงคะแนนแบบทวิฐานนิยมเช่นกัน) แต่เมื่อมีหลักฐานแสดงว่า ธุรกรรมที่มีคะแนนต่ำไม่ใช่การฉ้อโกง ส่วนธุรกรรมที่มีคะแนนสูงเป็นการฉ้อโกง การแจกแจงทวิฐานนิยมที่เพิ่มขึ้นก็จะเป็นสัญญาณที่แสดงว่าโมเดลดังกล่าวมีประสิทธิภาพมากขึ้น
โมเดลต่างๆ มักจะมีการแจกแจงคะแนนแตกต่างกันไป เมื่อเราเปิดตัวโมเดลใหม่ เราก็จะเปรียบเทียบการแจกแจงแบบเก่ากับแบบใหม่ เพื่อลดการเปลี่ยนแปลงที่ส่งผลกระทบซึ่งเกิดจากคะแนนที่เปลี่ยนไปอย่างฉับพลัน โดยเฉพาะอย่างยิ่ง เราจะคำนึงถึงนโยบายการบล็อกในปัจจุบันของผู้ค้าโดยวัดผลตามเกณฑ์ที่ใช้บล็อกธุรกรรม และตั้งเป้าที่จะรักษาสัดส่วนของธุรกรรมที่สูงกว่าเกณฑ์ให้อยู่ในระดับคงที่
การคำนวณความแม่นยำและอัตราการตรวจจับ
เราสามารถคำนวณเมตริกข้างต้นได้ใน 2 บริบทที่แตกต่างกัน ได้แก่ ระหว่างการฝึกโมเดล โดยใช้ข้อมูลในอดีตที่ขับเคลื่อนขั้นตอนการพัฒนาโมเดล กับหลังนำโมเดลไปใช้งาน โดยใช้ข้อมูลการใช้งานจริง (Production data) กล่าวคือ ข้อมูลเมื่อมีการนำโมเดลไปใช้เพื่อดำเนินการแล้ว เช่น บล็อกธุรกรรม หาก P(fraud)>0.7
ในกรณีแบบระหว่างฝึกโมเดล นักวิทยาศาสตร์ข้อมูลมักจะใช้ข้อมูลการฝึกที่ตนมี (ดูตารางด้านบน) และสุ่มเอาบันทึกส่วนหนึ่งไปใช้กับชุดฝึกโมเดล ส่วนบันทึกอื่นๆ ก็นำไปใช้กับชุดตรวจสอบความถูกต้อง ตัวอย่างเช่น อาจแบ่งแถว 80% แรกไปอยู่ในชุดฝึก ส่วน 20% หลังไปอยู่ในชุดตรวจสอบความถูกต้อง
ชุดฝึกโมเดล คือ ข้อมูลที่ป้อนลงในเมธอดของแมชชีนเลิร์นนิง เพื่อสร้างโมเดลตามที่อธิบายไว้ข้างต้น เมื่อมีโมเดลตัวเลือกแล้ว เราก็สามารถใช้โมเดลนี้เพื่อกำหนดคะแนนให้กับแต่ละตัวอย่างในชุดตรวจสอบความถูกต้องได้ ระบบจะใช้คะแนนของชุดตรวจสอบความถูกต้องร่วมกับค่าเอาต์พุตในการคำนวณกราฟ ROC และความแม่นยำ-อัตราการตรวจจับ การแจกแจงคะแนน และอื่นๆ เหตุผลที่เราใช้ชุดตรวจสอบความถูกต้องแยกต่างหากจากชุดฝึกก็คือ โมเดลได้ "เห็นคำตอบ" จากตัวอย่างการฝึกแล้วและเรียนรู้จากคำตอบเหล่านี้ ชุดตรวจสอบความถูกต้องจะช่วยให้เราสร้างเมตริกที่วัดประสิทธิภาพในการคาดการณ์ของโมเดลนั้นๆ ด้วยข้อมูลใหม่ได้อย่างแม่นยำ
การดำเนินงานของแมชชีนเลิร์นนิง: การนำโมเดลไปใช้งานอย่างปลอดภัยและบ่อยครั้ง
เมื่อเห็นแล้วว่าโมเดลมีประสิทธิภาพมากกว่าโมเดลที่ใช้งานจริงในปัจจุบันเมื่อทดสอบด้วยชุดข้อมูลแยกต่างหาก ขั้นตอนต่อไปก็คือการนำโมเดลดังกล่าวไปใช้งานจริง โดยขั้นตอนนี้มีเรื่องท้าทายอยู่หลักๆ 2 อย่างด้วยกันดังนี้
การคำนวณแบบเรียลไทม์: เราจำเป็นต้องคำนวณค่าคุณลักษณะในทุกๆ ด้านของการชำระเงินใหม่ทุกรายการให้ได้แบบเรียลไทม์ เพราะเราอยากจะบล็อกธุรกรรมทั้งหมดที่ตัวจำแนกของเราเชื่อว่าอาจเป็นการฉ้อโกงให้ได้ การคำนวณนี้จะแยกจากข้อมูลที่ใช้สร้างข้อมูลการฝึกโดยสมบูรณ์ เราต้องอัปเดตที่อยู่ IP ที่ใช้บ่อยที่สุด 2 รายการแรกของบัตรทุกใบที่เคยใช้ใน Stripe ให้เป็นปัจจุบันอยู่เสมอ และการดึงข้อมูลและอัปเดตจำนวนเหล่านั้นก็ต้องเป็นไปอย่างรวดเร็ว เพราะการดำเนินการเหล่านี้ก็เกิดขึ้นในขั้นตอนของ Stripe API ทีมโครงสร้างพื้นฐานแมชชีนเลิร์นนิงที่ Stripe ทำให้ขั้นตอนนี้ง่ายขึ้นโดยการสร้างระบบเพื่อระบุคุณลักษณะต่างๆ ในเชิงชี้แจง และทำให้ค่าปัจจุบันของคุณลักษณะเหล่านั้นพร้อมใช้งานโดยอัตโนมัติในการใช้งานจริงโดยมีเวลาแฝงต่ำ
การนำไปใช้งานจริงของผู้ใช้: การนำโมเดลแมชชีนเลิร์นนิงไปใช้งานจริงนั้นต่างจากการนำโค้ดไปใช้ แม้ว่าการเปลี่ยนโค้ดมักจะได้รับการตรวจสอบด้วยกรณีทดสอบที่แม่นยำ แต่การเปลี่ยนแปลงโมเดลมักจะมีการทดสอบบนชุดข้อมูลแบบผลรวมขนาดใหญ่โดยใช้เมตริกต่างๆ ดังที่ได้ระบุไว้ข้างต้น แต่โมเดลที่มีประสิทธิภาพการตรวจจับการฉ้อโกงโดยรวมดีกว่าก็อาจจะไม่ได้เหมาะกับผู้ใช้ Stripe ทุกราย โดยเป็นไปได้ว่า ประสิทธิภาพที่เพิ่มขึ้นนั้นไม่ได้กระจายตัวอย่างสม่ำเสมอ โดยผู้ค้ารายใหญ่ไม่กี่รายอาจจะได้รับประโยชน์อย่างมาก ส่วนผู้ค้ารายย่อยจำนวนมากกลับมีประสิทธิภาพถดถอยเล็กน้อย โมเดลอาจมีอัตราการตรวจจับสูงขึ้น แต่ทำให้อัตราการบล็อกพุ่งสูงขึ้น ซึ่งจะส่งผลกระทบต่อธุรกิจ (และลูกค้าของธุรกิจนั้นๆ) ก่อนที่เราจะเปิดตัวโมเดล เราจะตรวจสอบว่าโมเดลนั้นทำงานได้ดีในการใช้งานจริง ในการทำเช่นนั้น เราจะวัดผลการเปลี่ยนแปลงที่เกิดขึ้นกับเมตริกต่างๆ จากโมเดลแต่ละตัว เช่น อัตราผลบวกเท็จ อัตราการบล็อก และอัตราการอนุมัติ ทั้งในแบบผลรวมและแยกตามผู้ค้าสำหรับผู้ใช้ Stripe กลุ่มหนึ่ง หากเราพบว่าโมเดลใหม่จะทำให้เกิดการเปลี่ยนแปลงที่ไม่พึงประสงค์ขึ้นกับเมตริกเชิงป้องกัน (guardrail metric) เหล่านั้น เราก็จะปรับโมเดลดังกล่าวกับผู้ใช้กลุ่มต่างๆ ก่อนที่จะเปิดตัว เพื่อลดการขัดข้องและรับประกันประสิทธิภาพสูงสุด
เราพบว่าการทำให้กระบวนการฝึกและการประเมินเป็นอัตโนมัติมากที่สุดเท่าที่จะเป็นไปได้จะช่วยให้เกิดประโยชน์ทวีคูณต่อความเร็วในการปรับปรุงโมเดลซ้ำๆ ในปีที่ผ่านมา เราได้ลงทุนในเครื่องมือเพื่อฝึก ปรับแต่ง และประเมินโมเดลโดยอัตโนมัติและเป็นประจำโดยใช้คุณสมบัติล่าสุดและสถาปัตยกรรมโมเดลของเรา ตัวอย่างเช่น เราอัปเดตแดชบอร์ดประสิทธิภาพอย่างต่อเนื่องหลังจากที่โมเดลได้รับการฝึก—ก่อนที่จะเปิดตัว วิธีนี้จะช่วยให้วิศวกรตรวจจับได้ง่ายว่าโมเดลตัวเลือก (model candidate) เริ่มล้าสมัยสำหรับปริมาณการเข้าชมกลุ่มย่อยใดกลุ่มย่อยหนึ่งก่อนที่จะเปิดตัว และทำการฝึกซ้ำในเชิงรุกได้
หลังจากที่เราเปิดตัวโมเดลแล้ว เราจะติดตามประสิทธิภาพของโมเดลและเริ่มทำงานกับเวอร์ชันถัดไป เนื่องจากแนวโน้มการฉ้อโกงมีการเปลี่ยนแปลงอย่างรวดเร็ว โมเดลแมชชีนเลิร์นนิงจึงเริ่มประสบกับความคลาดเคลื่อน (drift) อย่างรวดเร็ว: กล่าวคือ ข้อมูลที่โมเดลเหล่านั้นใช้ในการฝึกฝนไม่ได้เป็นตัวแทนของการฉ้อโกงในปัจจุบันอีกต่อไป
เมื่อใช้เครื่องมือเหล่านี้ เราได้เพิ่มความเร็วในการเปิดตัวโมเดลถึง 3 เท่า ซึ่งส่งผลโดยตรงต่อประสิทธิภาพการทำงานที่เพิ่มขึ้นอย่างมากในการใช้งานจริง อันที่จริง แม้แต่การฝึกโมเดลจากเดือนที่แล้วซ้ำโดยใช้ข้อมูลล่าสุด (โดยใช้คำจำกัดความของคุณสมบัติและสถาปัตยกรรมเดิม) และเปิดตัวโมเดลนั้น ก็ช่วยให้เราสามารถเพิ่มอัตราการตรวจจับได้มากถึงครึ่งเปอร์เซ็นต์ในแต่ละเดือน การที่สามารถเปิดตัวโมเดลได้อย่างปลอดภัยและบ่อยครั้งช่วยให้เราสามารถใช้ประโยชน์และต่อยอดผลประโยชน์ที่ได้จากงานด้านวิศวกรรมคุณสมบัติ (feature engineering) และการสร้างโมเดล รวมถึงปรับตัวให้เข้ากับรูปแบบการฉ้อโกงที่เปลี่ยนแปลงไปสำหรับผู้ใช้ Radar
เมื่อเรานำโมเดลไปใช้งานจริง เราจะคอยติดตามประสิทธิภาพของคู่โมเดล-นโยบายอย่างต่อเนื่อง สำหรับการชำระเงินที่มีคะแนนต่ำกว่าเกณฑ์การบล็อก เราสามารถสังเกตผลลัพธ์สุดท้ายได้ นั่นคือ ธุรกรรมนั้นถูกเจ้าของบัตรโต้แย้งว่าเป็นการฉ้อโกงหรือไม่ อย่างไรก็ตาม การชำระเงินที่มีคะแนนสูงกว่าเกณฑ์จะถูกบล็อก ดังนั้นเราจึงไม่ทราบว่าผลลัพธ์ของธุรกรรมนั้นจะเป็นอย่างไร การคำนวณกราฟความแม่นยำ-อัตราการตรวจจับ หรือกราฟ ROC สำหรับการใช้งานจริงทั้งหมดจึงมีความซับซ้อนมากกว่าการคำนวณกราฟสำหรับชุดตรวจสอบความถูกต้อง (validation curve) เนื่องจากต้องมีการวิเคราะห์แบบสวนทางกับความเป็นจริง (counterfactual analysis) เราจำเป็นต้องได้ค่าประมาณการที่มีนัยสำคัญทางสถิติว่าสิ่งใดจะเกิดขึ้นแม้กระทั่งกับการชำระเงินที่เราบล็อกไป ตลอดหลายปีที่ผ่านมา Stripe ได้พัฒนาวิธีการต่างๆ เพื่อทำสิ่งนี้ ซึ่งคุณสามารถเรียนรู้เพิ่มเติมได้ใน talk นี้
เราได้อธิบายตัวชี้วัดประสิทธิผลของโมเดลเพียงเล็กน้อยที่นักวิทยาศาสตร์ข้อมูลและวิศวกรแมชชีนเลิร์นนิงใช้พิจารณาเมื่อพัฒนาโมเดลแมชชีนเลิร์นนิง ต่อไป เราจะพูดถึงวิธีที่ธุรกิจควรคิดเกี่ยวกับการป้องกันการฉ้อโกง
Stripe ช่วยอะไรได้บ้าง
การยึดติดกับตัวเลขเพียงตัวเดียวเพื่อประเมินประสิทธิภาพการป้องกันการฉ้อโกงอาจส่งผลให้เกิดตัวเลือกที่ไม่เหมาะสมที่สุดสำหรับธุรกิจของคุณ เราพบว่าธุรกิจมักจะให้ความสำคัญกับผลลบเท็จมากเกินไป (กล่าวคือ กังวลมากเกี่ยวกับการฉ้อโกงที่ตรวจไม่พบ) และให้ความสำคัญกับผลบวกเท็จน้อยเกินไป แนวคิดนี้มักจะส่งผลให้มีการใช้มาตรการแบบเหมารวม (brute-force measure) ที่ไม่มีประสิทธิภาพและมีค่าใช้จ่ายสูง เช่น การบล็อกบัตรต่างประเทศทั้งหมด โดยทั่วไปแล้ว คุณควรคิดว่ามาตรการวัดประสิทธิภาพต่างๆ ทั้งหมดเกี่ยวข้องกันอย่างไร และข้อดีข้อเสียที่ต้องแลกกันที่เหมาะสมสำหรับสถานการณ์เฉพาะของคุณคืออะไร ต่อไปนี้คือตัวอย่างว่าเมตริกเหล่านี้เกี่ยวโยงกันอย่างไรเพื่อช่วยคุณกำหนดประสิทธิผลของระบบป้องกันการฉ้อโกงของคุณ:
โมเดลโดยประมาณสำหรับความแม่นยำ ณ จุดคุ้มทุน
หากยอดขายโดยเฉลี่ยของคุณอยู่ที่ $26 และมีอัตรากำไร 8% กำไรต่อการขายของคุณคือ $26.00 × 8.00% = $2.08 โดยเฉลี่ยแล้ว หากผลิตภัณฑ์มีต้นทุนการผลิต $26.00 – $2.08 = $23.92 และคุณถูกเรียกเก็บค่าธรรมเนียมการดึงเงินคืนจำนวน $15 การสูญเสียทั้งหมดของคุณสำหรับยอดขายที่เป็นการฉ้อโกงคือ $23.92 + $15.00 = $38.92 ดังนั้น ยอดขายที่เป็นการฉ้อโกงหนึ่งครั้งจะทำให้คุณสูญเสียกำไรเท่ากับยอดขายที่ถูกต้อง $38.92 / $2.08 = 18.71 รายการ และความแม่นยำ ณ จุดคุ้มทุนของคุณคือ 1 / (1 + 18.71) = 5.07%
เกณฑ์แมชชีนเลิร์นนิงของ Radar สร้างสมดุลระหว่างการเพิ่มประสิทธิภาพอัตรากำไรของผู้ค้าและการรักษาอัตราการบล็อกให้คงที่ทั่วทั้งฐานผู้ใช้ คุณสามารถเข้าถึงแดชบอร์ดเพื่อดูว่าแมชชีนเลิร์นนิงของ Radar ทำงานอย่างไรสำหรับธุรกิจของคุณ รวมถึงประสิทธิภาพของกฎที่คุณกำหนดเองหากคุณใช้ Radar for Fraud Teams เครื่องมือเหล่านี้ช่วยให้คุณเปรียบเทียบอัตราการโต้แย้งการชำระเงินที่เป็นการฉ้อโกง อัตราผลบวกเท็จ และอัตราการบล็อกของคุณ กับธุรกิจอื่นที่คล้ายคลึงกันได้อย่างง่ายดาย โดยอิงตามกลุ่มธุรกิจที่รวบรวมและกำหนดเองซึ่งอยู่ในกลุ่มอุตสาหกรรมหรือมีขนาดใกล้เคียงกับคุณ
การปรับปรุงประสิทธิภาพด้วยกฎและการตรวจสอบโดยเจ้าหน้าที่
เมื่อใช้ Radar for Fraud Teams คุณจะปรับแต่งการป้องกันได้โดยปรับเกณฑ์ความเสี่ยงโดยตรงให้บล็อกหรืออนุญาตการชำระเงินมากขึ้น นอกจากจะมีอัลกอริทึมแมชชีนเลิร์นนิงแบบอัตโนมัติเพิ่มเติมแล้ว Radar for Fraud Teams ยังช่วยให้ธุรกิจแต่ละรายสร้างกฎที่กำหนดเองได้ (เช่น "บล็อกธุรกรรมทั้งหมดที่มีมูลค่าสูงกว่า 1,000 ดอลลาร์เมื่อประเทศของ IP ไม่ตรงกับประเทศของบัตร") ขอเข้าไปดำเนินการ และตรวจสอบการชำระเงินที่ได้รับแจ้งด้วยตนเองในแดชบอร์ด
คุณจะมองว่ากฎเหล่านี้เป็น "โมเดล" อย่างง่ายก็ได้ (เพราะสามารถแสดงเป็นแผนผังการตัดสินใจได้) และควรประเมินโดยพิจารณาข้อดีและข้อเสียระหว่างความแม่นยำกับอัตราการตรวจจับอย่างถี่ถ้วนเช่นเดียวกับโมเดล เมื่อคุณสร้างกฎด้วย Radar เราจะแสดงสถิติย้อนหลังเกี่ยวกับจำนวนธุรกรรมที่มีลักษณะตรงกัน ซึ่งถูกโต้แย้งการชำระเงิน มีการคืนเงิน หรือมีการยอมรับตามจริง เพื่อช่วยในการคำนวณเหล่านี้ก่อนที่จะนำกฎไปใช้งาน ซึ่งเมื่อใช้งานแล้ว คุณก็จะเห็นผลลัพธ์ที่เกิดขึ้นกับอัตราผลบวกเท็จและอัตราการโต้แย้งการชำระเงินโดยจำแนกตามกฎได้
ส่วนเรื่องที่สำคัญไม่แพ้กันก็คือ กฎ การดำเนินการ และการตรวจสอบโดยเจ้าหน้าที่ช่วยให้ผู้ใช้เปลี่ยนรูปร่างของกราฟความแม่นยำ-อัตราการตรวจจับให้เข้ากับตนเองได้ โดยการเพิ่มตรรกะของธุรกิจนั้นๆ โดยเฉพาะหรือมีรูปแบบเฉพาะ (กฎ) หรือดำเนินการบางอย่างเพิ่มเติม (การตรวจสอบโดยเจ้าหน้าที่)
หากคุณพบว่า อัลกอริทึมแมชชีนเลิร์นนิงมักตรวจไม่พบการฉ้อโกงรูปแบบใดรูปแบบหนึ่งสำหรับธุรกิจของคุณ (และคุณสังเกตเห็นการฉ้อโกงดังกล่าวได้ง่าย) คุณก็สามารถสร้างกฎขึ้นมาเพื่อป้องกันการฉ้อโกงนั้นๆ ได้ การดำเนินการอย่างเจาะจงนี้มักจะเพิ่มอัตราการตรวจจับโดยแทบไม่มีผลต่อความแม่นยำ ซึ่งจะส่งผลให้จุดปฏิบัติการ (Operating point) เคลื่อนที่ไปตามกราฟความแม่นยำ-อัตราการตรวจจับที่ชันน้อยลงและเหมาะสมขึ้น
การส่งธุรกรรมบางประเภทไปให้เจ้าหน้าที่ตรวจสอบแทนที่จะบล็อกทันทีจะช่วยเพิ่มความแม่นยำโดยไม่ส่งผลต่ออัตราการตรวจจับ ในทำนองเดียวกัน หากส่งธุรกรรมบางรายการไปให้เจ้าหน้าที่ตรวจสอบแทนที่จะอนุญาตทันที ก็จะช่วยให้คุณมีอัตราการตรวจจับเพิ่มขึ้นโดยไม่ส่งผลกระทบต่อความแม่นยำ
แน่นอนว่าในกรณีเหล่านี้ คุณก็ต้องใช้กำลังคนมากขึ้นเพื่อแลกมากับประโยชน์เหล่านี้ (และต้องอาศัยความแม่นยำในการประเมินของทีม) แต่หากจัดให้มีการตรวจสอบโดยเจ้าหน้าที่ กฎ และการดำเนินการเพื่อตรวจสอบสิทธิ์ของลูกค้าที่มีความเสี่ยงสูงไว้เป็นเครื่องมือเพิ่มเติม ก็จะช่วยให้คุณมีวิธียกระดับผลลัพธ์ในการรับมือการฉ้อโกงเพิ่มมาอีกวิธี
ขั้นตอนต่อไป
เราหวังว่าคู่มือนี้จะช่วยให้คุณเข้าใจว่า Stripe ใช้แมชชีนเลิร์นนิงในการป้องกันการฉ้อโกงอย่างไร รวมถึงวิธีวัดประสิทธิภาพของระบบป้องกันการฉ้อโกงของคุณ คุณสามารถดูข้อมูลเพิ่มเติมเกี่ยวกับฟีเจอร์ของ Radar หรือดู Stripe Docs ของเราได้
หากคุณมีข้อสงสัยหรือต้องการทราบข้อมูลเพิ่มเติมเกี่ยวกับ Stripe Radar โปรดติดต่อเรา