การใช้การจับคู่บันทึกที่เป็นเท็จ

เมื่อคุณได้พิจารณาแล้วว่าการจับคู่ Logit ที่ต่อต้านข้อเท็จจริง (CLP) เป็นเทคนิคที่เหมาะสมสำหรับกรณีการใช้งานของคุณ คุณสามารถนำไปใช้ได้โดยทำตามขั้นตอนต่อไปนี้:

  1. สร้างอินสแตนซ์ของ CounterfactualPackedInputs ด้วยข้อมูลต้นฉบับและข้อมูลที่ไม่เป็นจริง
  2. วัด อัตราการพลิกและจำนวนการพลิกเพื่อพิจารณาว่าจำเป็นต้องมีการแทรกแซงหรือไม่
  3. หากจำเป็นต้องมีการแทรกแซง ให้ส่ง ข้อมูลอินพุตดั้งเดิม ข้อมูลเชิงข้อเท็จจริง โมเดลดั้งเดิม และการสูญเสียข้อโต้แย้งไปยังโมเดลเชิงข้อเท็จจริง
  4. ประเมินผลกระทบของ CLP โดยการวัดอัตราการพลิกและจำนวนการพลิก

หากต้องการดูตัวอย่างการใช้ CLP กับโมเดล Keras โปรดดู บทช่วยสอนการใช้ Counterfactual Logit Matching กับ Keras

สร้างอินสแตนซ์ของ CounterfactualPackedInputs

หากต้องการสร้างชุดข้อมูลที่ไม่เป็นจริง ให้เริ่มต้นด้วยการกำหนดข้อกำหนดและคุณลักษณะที่คุณต้องการประเมินว่าเมื่อนำออกหรือเปลี่ยนใหม่ อาจเปลี่ยนแปลงการทำนายแบบจำลองของคุณได้

เมื่อคุณเข้าใจข้อกำหนดและคุณสมบัติที่จะประเมินแล้ว คุณจะต้องสร้างอินสแตนซ์ของ CounterfactualPackedInputs ซึ่งรวมถึงอินพุตดั้งเดิมและข้อมูลที่ไม่เป็นจริง อินพุตดั้งเดิมควรเป็นชุดข้อมูลที่คุณใช้ในการฝึกโมเดล Keras ของคุณ ข้อมูลที่ขัดแย้งกันมีค่า original_x , counterfactual_x และ counterfactual_sample_weight ค่าที่โต้แย้งควรเกือบจะเหมือนกันกับค่าเดิม โดยมีความแตกต่างคือแอตทริบิวต์ที่ละเอียดอ่อนอย่างน้อย 1 รายการจะถูกลบหรือแทนที่ คุณภาพของชุดข้อมูลเชิงข้อเท็จจริงมีความสำคัญ เนื่องจากใช้เพื่อจับคู่ฟังก์ชันการสูญเสียระหว่างค่าดั้งเดิมและค่าเชิงข้อเท็จจริงโดยมีเป้าหมายเพื่อให้มั่นใจว่าการทำนายของแบบจำลองจะไม่เปลี่ยนแปลงเมื่อแอตทริบิวต์ที่ละเอียดอ่อนแตกต่างกัน

สำหรับรายละเอียดเกี่ยวกับวิธีพัฒนาชุดข้อมูลที่เป็นข้อเท็จจริงนี้ โปรดดูสมุดบันทึกเกี่ยวกับ การสร้างชุดข้อมูลที่เป็นข้อเท็จจริงที่กำหนดเอง

วัดจำนวนการพลิกและอัตราการพลิก

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

นับพลิก

จำนวนการพลิกจะวัดจำนวนครั้งที่ตัวแยกประเภทให้การตัดสินใจที่แตกต่างกัน หากคำระบุตัวตนในตัวอย่างที่กำหนดมีการเปลี่ยนแปลง

  • จำนวนการพลิกกลับโดยรวม : การพลิกคำทำนายทั้งหมดจากบวกไปเป็นลบและในทางกลับกัน
  • จำนวนการพลิกการคาดการณ์เชิงบวกเป็นเชิงลบ : จำนวนการพลิกที่ป้ายกำกับการทำนายเปลี่ยนจากบวกเป็นลบ
  • จำนวนการพลิกการคาดการณ์เชิงลบเป็นเชิงบวก : จำนวนการพลิกที่ป้ายกำกับการทำนายเปลี่ยนจากลบเป็นบวก

อัตราการพลิก

อัตราการพลิกจะวัดความน่าจะเป็นที่ตัวแยกประเภทให้การตัดสินใจที่แตกต่างกัน หากคำระบุตัวตนในตัวอย่างที่กำหนดมีการเปลี่ยนแปลง

  • อัตราการพลิกโดยรวม : จำนวนการพลิกรวมในจำนวนตัวอย่างทั้งหมด
  • อัตราการพลิกการคาดการณ์เชิงบวกเป็นลบ : จำนวนการพลิกบวกเป็นลบเหนือตัวอย่างเชิงบวกในชุดข้อมูลที่ไม่เป็นจริง
  • อัตราการพลิกการคาดการณ์เชิงลบถึงบวก : จำนวนการพลิกเชิงลบถึงบวกเหนือตัวอย่างเชิงลบในชุดข้อมูลที่เป็นข้อเท็จจริง

หลังจากคำนวณอัตราการพลิกและจำนวนการพลิกด้วย ตัวบ่งชี้ความเป็นธรรม คุณสามารถระบุได้ว่าตัวแยกประเภทกำลังคาดการณ์ที่แตกต่างกันโดยอิงตามแอตทริบิวต์ที่ละเอียดอ่อนภายในข้อมูลหรือไม่ คุณสามารถใช้จำนวนตัวอย่างและช่วงความเชื่อมั่นเพื่อพิจารณาว่าคุณมีข้อมูลเพียงพอที่จะใช้ CLP และสรุปผลจากอัตราการพลิกหรือไม่ อัตราการพลิกและจำนวนการพลิกที่สูงบ่งบอกถึงพฤติกรรมนี้ที่เกิดขึ้น และสามารถใช้เพื่อตัดสินใจว่า CLP เหมาะสมกับกรณีการใช้งานของคุณหรือไม่ การตัดสินใจนี้มีผลเฉพาะกับรุ่นของคุณ และขึ้นอยู่กับปัจจัยต่างๆ เช่น อันตรายที่อาจเกิดขึ้นกับผู้ใช้และผลิตภัณฑ์ที่ใช้โมเดลนั้น

ใช้การจับคู่ Logit ที่ต่อต้านข้อเท็จจริงกับโมเดล Keras ของคุณ

หากต้องการใช้ CLP คุณต้องมีโมเดล Keras ดั้งเดิมที่คุณต้องการแก้ไข ชุดข้อมูลการฝึกดั้งเดิม และชุดข้อมูลที่ไม่เป็นจริง พิจารณาว่าควรใช้ counterfactual loss ใดในการจับคู่บันทึก ด้วยวิธีนี้ คุณสามารถสร้างโมเดล Counterfactual ด้วยฟังก์ชันการสูญเสียเชิงตรงข้ามและฟังก์ชันการสูญเสียที่ต้องการจากโมเดลดั้งเดิมของคุณ

หลังจากใช้ CLP คุณควรคำนวณอัตราการพลิกและจำนวนการพลิก และการเปลี่ยนแปลงใดๆ ในหน่วยวัดอื่นๆ เช่น ความแม่นยำโดยรวม เพื่อวัดการปรับปรุงที่เกิดจากการใช้เทคนิคนี้