ในช่วงไม่นานมานี้ อีคอมเมิร์ซได้เติบโตอย่างรวดเร็ว ส่งผลให้การฉ้อโกงผ่านการชำระเงินออนไลน์เพิ่มขึ้นตามไปด้วย การฉ้อโกงสร้างความเสียหายให้ธุรกิจต่างๆ ทั่วโลกเป็นมูลค่ากว่า 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 and the Stripe network
Radar is Stripe’s fraud prevention solution that protects businesses against online credit card fraud. It is powered by adaptive machine learning, the result of years of data science and infrastructure work by Stripe’s dedicated machine learning teams. Radar’s algorithms evaluate every transaction for fraud risk and take action appropriately. High-scoring payments are blocked, and Radar for Fraud Teams provides tools so users can specify when other actions should be taken.
Stripe processes hundreds of billions in payments from millions of businesses and interacts with thousands of partner banks across the globe each year. This scale means we often can see signals and patterns much earlier than smaller networks. Aggregate data relevant to fraud from all Stripe transactions—collected automatically through the payments flow—is used to improve our fraud detection ability. Signals like the country in which the card was issued or the IP address from which the payment was made provide valuable insights when predicting whether the payment is likely to be fraudulent.
Previous encounters with a card across the Stripe network also offer a significant amount of data to inform our risk assessments. Ninety percent of the cards used on the Stripe network have been seen more than once, giving us much richer data to make assessments on whether they are being used legitimately or fraudulently.
Another key advantage to our machine learning is that Radar is built directly into Stripe and works out of the box. Other fraud prevention solutions generally require a substantial amount of both upfront and ongoing investment. First, businesses must integrate with the fraud product. This involves engineering work to send data on relevant events and payments. Second, businesses must complete an integration to pass payment labels—a categorization of whether or not the transaction was fraudulent—from their payment processor to their fraud provider or manually label payments themselves, which can be incredibly time consuming and error prone. Radar, on the other hand, receives “ground truth” information directly from the usual Stripe payment flow and taps into timely and accurate data directly from card networks and issuers—no engineering time or coding required.
Let’s dive into a more detailed look at machine learning and how we use it at Stripe.
The basics of machine learning
Machine learning refers to a body of techniques for taking large amounts of data and using that data to produce models that predict outcomes, such as the likelihood a charge will result in a fraud dispute.
One of the main applications of machine learning is prediction: We want to predict the value of some output variable given some input values. In our case, the output value is true if the payment is fraudulent and false otherwise (such binary values are called booleans), and an example of an input value could be the country the card was issued in or the number of distinct countries where the card was used across the Stripe network in the past day. We determine how to make a prediction based on previous examples of input and output data.
The data used to train (or generate) the models consists of records (often obtained from historical data) with both the output value and the various input values as we have in the following (highly simplified) example:
| 
    
    
    
    Amount in USD
   | 
    
    
    
    Card country
   | 
    
    
    
    Countries card used from (24h)
   | 
    
    
    
    Fraud?
   | 
|---|---|---|---|
| $10.00 | US | 1 | No | 
| $10.00 | CA | 2 | No | 
| $10.00 | CA | 1 | No | 
| $10.00 | US | 1 | Yes | 
| $30.00 | US | 1 | Yes | 
| $99.00 | CA | 1 | Yes | 
While there are only three inputs in this example, in practice machine learning models often have hundreds or thousands of inputs. The output of the machine learning algorithm might be a model like the following 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 โปรดติดต่อเรา