Codelab การเพิ่มประสิทธิภาพการซื้อในแอปในอุปกรณ์แบบเรียลไทม์

1. ภาพรวม

1cbf855eda62c306.png

ยินดีต้อนรับสู่ Codelab การเพิ่มประสิทธิภาพการซื้อในแอปแบบเรียลไทม์ในอุปกรณ์ ในโค้ดแล็บนี้ คุณจะได้เรียนรู้วิธีใช้ TensorFlow Lite และ Firebase เพื่อฝึกและทำให้โมเดลการปรับเปลี่ยนในแบบของคุณเองใช้งานได้ในแอป

บทแนะนำนี้แสดงวิธีสร้างโมเดลแมชชีนเลิร์นนิงเพื่อการปรับเปลี่ยนในแบบของคุณ โดยเฉพาะโมเดลที่คาดการณ์ข้อเสนอการซื้อในแอป (IAP) ที่ดีที่สุดตามสถานะของผู้ใช้ปัจจุบัน นี่คือตัวอย่างของปัญหา Contextual Bandit ซึ่งเป็นปัญหาแมชชีนเลิร์นนิงที่สำคัญและนำไปใช้ได้ในวงกว้าง ซึ่งคุณจะได้เรียนรู้เพิ่มเติมใน Codelab นี้

สิ่งที่คุณจะได้เรียนรู้

  • รวบรวมข้อมูลวิเคราะห์ผ่าน Firebase Analytics
  • ประมวลผลข้อมูลวิเคราะห์ล่วงหน้าโดยใช้ BigQuery
  • ฝึกโมเดล ML แบบง่ายเพื่อการเพิ่มประสิทธิภาพการซื้อในแอป (IAP) ในอุปกรณ์
  • ติดตั้งใช้งานโมเดล TFLite ใน Firebase ML และเข้าถึงโมเดลจากแอป
  • วัดผลและทดสอบโมเดลต่างๆ ผ่าน Firebase A/B Testing
  • ฝึกและใช้งานโมเดลใหม่โดยใช้ข้อมูลล่าสุดตามจังหวะที่เกิดซ้ำ

สิ่งที่ต้องมี

  • Android Studio เวอร์ชัน 3.4 ขึ้นไป
  • อุปกรณ์ทดสอบจริงที่ใช้ Android 2.3 ขึ้นไปและบริการ Google Play 9.8 ขึ้นไป หรือโปรแกรมจำลองที่มีบริการ Google Play 9.8 ขึ้นไป
  • หากใช้อุปกรณ์ทดสอบจริง ให้ใช้สายเชื่อมต่อ
  • ความรู้เกี่ยวกับ ML สำหรับผู้เริ่มต้น

คุณจะใช้บทแนะนำนี้อย่างไร

อ่านอย่างเดียว อ่านและทำแบบฝึกหัด

คุณจะให้คะแนนประสบการณ์ในการสร้างแอป Android เท่าใด

ผู้เริ่มต้น ระดับกลาง ผู้ชำนาญ

2. คำอธิบายปัญหา

สมมติว่าคุณเป็นนักพัฒนาเกมที่ต้องการแสดงคำแนะนำการซื้อในแอป (IAP) ที่ปรับตามโปรไฟล์ของผู้ใช้เมื่อจบแต่ละด่าน คุณแสดงตัวเลือก IAP ได้จํานวนจํากัดในแต่ละครั้ง และไม่ทราบว่าตัวเลือกใดจะทําให้เกิด Conversion ได้ดีที่สุด เนื่องจากผู้ใช้และเซสชันแต่ละรายการแตกต่างกัน เราจึงต้องหาวิธีค้นหาข้อเสนอ IAP ที่ให้รางวัลที่คาดการณ์ไว้สูงสุด

3. รับโค้ดตัวอย่าง

โคลนที่เก็บ GitHub จากบรรทัดคำสั่ง

git clone https://github.com/googlecodelabs/firebase-iap-optimization.git

ซึ่งที่เก็บนี้ประกอบด้วย

  1. สมุดบันทึก Jupyter (.ipynb) ที่ฝึกโมเดลการปรับเปลี่ยนในแบบของคุณและแพ็กเกจเป็นโมเดล TFLite
  2. แอป Kotlin ตัวอย่างที่ใช้โมเดล TFLite เพื่อทำการคาดการณ์ในอุปกรณ์

4. เรียกใช้แอปด้วย Firebase

ใน Codelab นี้ เราจะเพิ่มประสิทธิภาพ IAP ของแอปเกมสมมติ Flappy Sparky เกมนี้เป็นเกมเลื่อนด้านข้างที่ผู้เล่นควบคุม Sparky ซึ่งพยายามบินผ่านระหว่างเสาของกำแพงโดยไม่ชน ในช่วงต้นของเลเวล ผู้ใช้จะได้รับข้อเสนอ IAP ที่จะให้ไอเทมเพิ่มพลังแก่ผู้ใช้ ใน Codelab นี้ เราจะใช้เฉพาะส่วนการเพิ่มประสิทธิภาพ IAP ของแอปเท่านั้น

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

5. รวบรวมเหตุการณ์การวิเคราะห์ในแอป

เหตุการณ์ Analytics ให้ข้อมูลเชิงลึกเกี่ยวกับพฤติกรรมของผู้ใช้ และใช้เพื่อฝึกโมเดล ML เช่น โมเดลอาจเรียนรู้ว่าผู้ใช้ที่เล่นนานขึ้นมีแนวโน้มที่จะซื้อไอเทมในแอปเพื่อรับชีวิตเพิ่ม โมเดล ML ต้องใช้เหตุการณ์ Analytics เป็นอินพุตเพื่อเรียนรู้ข้อมูลนี้

เหตุการณ์ Analytics บางอย่างที่เราอาจต้องการบันทึก ได้แก่

  • ระยะเวลาที่ผู้ใช้เล่นเกม
  • ระดับที่ผู้ใช้ไปถึง
  • จำนวนเหรียญที่ผู้ใช้ใช้
  • สินค้าที่ผู้ใช้ซื้อ

ดาวน์โหลดข้อมูลตัวอย่าง (ไม่บังคับ)

ในขั้นตอนต่อไปนี้ เราจะใช้ Firebase Analytics เพื่อบันทึกเหตุการณ์ Analytics เพื่อใช้ในโมเดล หากมีข้อมูลวิเคราะห์ที่ต้องการใช้แล้ว ให้ข้ามไปยังส่วน "ฝึกโมเดลการเพิ่มประสิทธิภาพ" ของ Codelab นี้ แล้วทำตามข้อมูลตัวอย่างของเรา

รวบรวมข้อมูลด้วย Firebase Analytics SDK

เราจะใช้ Firebase Analytics เพื่อช่วยรวบรวมเหตุการณ์ Analytics เหล่านี้ SDK ของ Firebase Analytics จะบันทึกเหตุการณ์และพร็อพเพอร์ตี้ผู้ใช้จํานวนหนึ่งโดยอัตโนมัติ นอกจากนี้ยังช่วยให้คุณกําหนดเหตุการณ์ที่กําหนดเองเพื่อวัดเหตุการณ์เฉพาะของแอปได้อีกด้วย

การติดตั้ง Firebase Analytics SDK

คุณเริ่มต้นใช้งาน Firebase Analytics ในแอปได้โดยทำตามเอกสารประกอบเริ่มต้นใช้งาน Google Analytics firebase-iap-optimization ที่โคลนไว้ตอนต้นของ Codelab นี้มี Firebase Analytics SDK อยู่แล้ว

บันทึกเหตุการณ์ที่กำหนดเอง

หลังจากตั้งค่า Firebase Analytics SDK แล้ว เราจะเริ่มบันทึกเหตุการณ์ที่ต้องใช้ในการฝึกโมเดลได้

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

MainActivity.kt

firebaseAnalytics.setUserId("player1")

จากนั้นเราจะบันทึกเหตุการณ์ของผู้เล่นได้ สำหรับการเพิ่มประสิทธิภาพ IAP เราต้องการบันทึกข้อเสนอ IAP แต่ละรายการที่แสดงต่อผู้ใช้ และบันทึกว่าผู้ใช้คลิกข้อเสนอนั้นหรือไม่ ซึ่งจะทำให้เรามีเหตุการณ์ Analytics 2 รายการ ได้แก่ offer_iap และ offer_accepted นอกจากนี้ เราจะติดตาม offer_id ที่ไม่ซ้ำกันเพื่อให้ใช้รวมข้อมูลเหล่านี้ในภายหลังเพื่อดูว่ามีการยอมรับข้อเสนอหรือไม่

MainActivity.kt

predictButton?.setOnClickListener {
  predictionResult = iapOptimizer.predict()

  firebaseAnalytics.logEvent("offer_iap"){
    param("offer_type", predictionResult)
    param("offer_id", sessionId)
  }
}

acceptButton?.setOnClickListener {
  firebaseAnalytics.logEvent("offer_accepted") {
    param("offer_type", predictionResult)
    param("offer_id", sessionId)
  }
}

ดูข้อมูลเพิ่มเติมเกี่ยวกับการบันทึกเหตุการณ์ที่กําหนดเองได้ที่เอกสารประกอบเกี่ยวกับเหตุการณ์ของบันทึกใน Firebase Analytics

6. ประมวลผลข้อมูลล่วงหน้าใน BigQuery

ในขั้นตอนสุดท้าย เราได้รวบรวมเหตุการณ์เกี่ยวกับข้อเสนอ IAP ที่แสดงต่อผู้ใช้และข้อเสนอ IAP ที่ผู้ใช้คลิก ในขั้นตอนนี้ เราจะรวมข้อมูลเหตุการณ์นี้กับข้อมูลผู้ใช้เพื่อให้โมเดลได้เรียนรู้จากภาพรวมที่สมบูรณ์

โดยเราจะต้องเริ่มต้นด้วยการส่งออกเหตุการณ์ Analytics ไปยัง BigQuery

วิธีลิงก์โปรเจ็กต์ Firebase และแอปกับ BigQuery

  1. ลงชื่อเข้าใช้ Firebase
  2. คลิก ไอคอนการตั้งค่า จากนั้นเลือกการตั้งค่าโปรเจ็กต์
  3. คลิกแท็บการผสานรวมในหน้าการตั้งค่าโปรเจ็กต์
  4. คลิกลิงก์ในการ์ด BigQuery

(ไม่บังคับ) ส่งออกคอลเล็กชัน Firestore ไปยัง BigQuery

ในขั้นตอนนี้ คุณมีตัวเลือกในการส่งออกข้อมูลผู้ใช้เพิ่มเติมจาก Firestore ไปยัง BigQuery เพื่อใช้ช่วยฝึกโมเดล หากต้องการข้ามขั้นตอนนี้ไปก่อน ให้ไปที่ส่วน "การเตรียมข้อมูลใน BigQuery" ของ Codelab นี้ แล้วทําตามขั้นตอนพร้อมกับเหตุการณ์ Firebase Analytics ที่บันทึกไว้ในขั้นตอนสุดท้าย

Firestore อาจเป็นที่ที่คุณจัดเก็บวันที่ลงชื่อสมัครใช้ของผู้ใช้ การซื้อในแอปที่ทำ ระดับในเกม เหรียญในยอดคงเหลือ หรือแอตทริบิวต์อื่นๆ ที่อาจมีประโยชน์ในการฝึกโมเดล

หากต้องการส่งออกคอลเล็กชัน Firestore ไปยัง BigQuery ให้ติดตั้งส่วนขยายการส่งออก Firestore ไปยัง BigQuery จากนั้นรวมตารางใน BigQuery เพื่อรวมข้อมูลนี้กับข้อมูลจาก Google Analytics เพื่อใช้ในโมเดลการปรับเปลี่ยนในแบบของคุณและในส่วนอื่นๆ ของโค้ดแล็บนี้

การเตรียมข้อมูลใน BigQuery

ในอีกไม่กี่ขั้นตอนข้างหน้า เราจะใช้ BigQuery เพื่อเปลี่ยนข้อมูล Analytics ดิบให้เป็นข้อมูลที่ใช้ฝึกโมเดลได้

เพื่อให้โมเดลของเราเรียนรู้ว่าจะแสดงข้อเสนอ IAP ใดตามผู้ใช้และสถานะเกม เราจึงต้องจัดระเบียบข้อมูลเกี่ยวกับสิ่งต่อไปนี้

  • ผู้ใช้
  • สถานะของเกม
  • ข้อเสนอที่แสดง
  • ผู้ใช้คลิกข้อเสนอที่แสดงหรือไม่

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

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

หากต้องการดูว่ามีการคลิกข้อเสนอการซื้อในแอปแต่ละรายการหรือไม่ เราจะต้องรวมเหตุการณ์ offer_iap และ offer_accepted ที่เราบันทึกไว้ในขั้นตอนก่อนหน้า

all_offers_joined - มุมมอง BigQuery

SELECT
  iap_offers.*,
  CASE
    WHEN accepted_offers.accepted IS NULL THEN FALSE ELSE TRUE
  END
  is_clicked,
FROM
  `iap-optimization.ml_sample.accepted_offers` AS accepted_offers
RIGHT JOIN
  `iap-optimization.ml_sample.iap_offers` AS iap_offers
ON
 accepted_offers.offer_id =iap_offers.offer_id;

all_offers_with_user_data - มุมมอง BigQuery

SELECT
  offers.is_clicked,
  offers.presented_powerup,
  offers.last_run_end_reason,
  offers.event_timestamp,
  users.*
FROM
  `iap-optimization.ml_sample.all_offers_joined` AS offers
LEFT JOIN
  `iap-optimization.ml_sample.all_users` AS users
ON
  users.user_id = offers.user_id;

ส่งออกชุดข้อมูล BigQuery ไปยัง Google Cloud Storage

สุดท้าย เราสามารถส่งออกชุดข้อมูล BigQuery ไปยัง GCS เพื่อนำไปใช้ในการฝึกโมเดลได้

888daa7ba4db8e44.png

14d22bf474fae455.png

7. ฝึกโมเดลการเพิ่มประสิทธิภาพ

ข้อมูลตัวอย่าง

ใช้ข้อมูลจากขั้นตอนก่อนหน้า "ประมวลผลข้อมูลล่วงหน้าใน BigQuery" หรือข้อมูลตัวอย่างที่ดาวน์โหลดได้ซึ่งระบุไว้ที่นี่เพื่อทำตาม Codelab ที่เหลือนี้

การกำหนดปัญหา

ก่อนที่เราจะเริ่มฝึกโมเดล มาใช้เวลาสักครู่เพื่อกำหนดปัญหา Contextual Bandit กัน

อธิบาย Contextual Bandit

ที่จุดเริ่มต้นของแต่ละเลเวลใน Flappy Sparky ผู้ใช้จะเห็นข้อเสนอ IAP ที่จะให้ไอเทมเพิ่มพลังแก่ผู้ใช้ เราแสดงตัวเลือก IAP ได้เพียงครั้งละ 1 รายการเท่านั้น และไม่ทราบว่าตัวเลือกใดจะให้ Conversion ที่ดีที่สุด เนื่องจากผู้ใช้และเซสชันแต่ละรายการแตกต่างกัน เราจึงต้องหาวิธีค้นหาข้อเสนอ IAP ที่ให้รางวัลที่คาดการณ์ไว้สูงสุด

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

e7d3264141498bff.jpeg

โดยเราจะใช้ข้อมูลต่อไปนี้ในการคาดการณ์

  • สถานะ: ข้อมูลเกี่ยวกับผู้ใช้และเซสชันปัจจุบัน
  • การดำเนินการ: ข้อเสนอ IAP ที่เราเลือกแสดงได้
  • รางวัล: มูลค่าของข้อเสนอ IAP

การแสวงหาประโยชน์เทียบกับการสำรวจ

สำหรับปัญหาการทดสอบแบบหลายแขนทั้งหมด อัลกอริทึมต้องสร้างสมดุลระหว่างการสำรวจ (รับข้อมูลเพิ่มเติมเพื่อดูว่าการดำเนินการใดให้ผลลัพธ์ที่ดีที่สุด) กับการใช้ประโยชน์ (ใช้ผลลัพธ์ที่ดีที่สุดเพื่อให้ได้รางวัลสูงสุด)

ในเวอร์ชันปัญหาของเรา เราจะลดความซับซ้อนโดยฝึกโมเดลเป็นระยะๆ ในระบบคลาวด์เท่านั้น และจะทำการคาดการณ์เมื่อใช้โมเดลในอุปกรณ์ของผู้ใช้เท่านั้น (ซึ่งต่างจากการฝึกในอุปกรณ์ของผู้ใช้ด้วย) เราจะต้องแสดงผลลัพธ์แบบสุ่มต่อผู้ใช้แอปในบางครั้ง (เช่น 30%) เพื่อให้แน่ใจว่าเรามีข้อมูลการฝึกที่เพียงพอหลังจากใช้โมเดล กลยุทธ์การสร้างสมดุลระหว่างการสำรวจและการใช้ประโยชน์นี้เรียกว่า Epsilon-greedy

การฝึกโมเดล

คุณสามารถใช้สคริปต์การฝึก (training.ipynb) ที่มาพร้อมกับ Codelab เพื่อเริ่มต้นใช้งาน เป้าหมายของเราคือการฝึกโมเดลที่คาดการณ์รางวัลที่คาดไว้สําหรับการกระทําแต่ละอย่างที่กําหนดสถานะ จากนั้นเราจะค้นหาการกระทําที่ให้รางวัลที่คาดไว้สูงสุด

การฝึกอบรมในพื้นที่

วิธีที่ง่ายที่สุดในการเริ่มต้นฝึกโมเดลของคุณเองคือการทำสำเนาสมุดบันทึกในตัวอย่างโค้ดสำหรับ Codelab นี้

คุณไม่จำเป็นต้องใช้ GPU สำหรับ Codelab นี้ แต่หากต้องการเครื่องที่มีประสิทธิภาพมากขึ้นเพื่อสำรวจข้อมูลของคุณเองและฝึกโมเดลของคุณเอง คุณสามารถรับอินสแตนซ์ Notebook ของ AI Platform เพื่อเร่งการฝึกได้

ในสคริปต์การฝึกที่ให้ไว้ เราได้สร้างตัววนซ้ำที่สร้างข้อมูลการฝึกจากไฟล์ CSV ที่เราส่งออกจาก BigQuery จากนั้นเราใช้ข้อมูลเพื่อเริ่มฝึกโมเดลด้วย Keras ดูรายละเอียดวิธีฝึกโมเดลได้ในความคิดเห็นของสมุดบันทึก Python

วัดประสิทธิภาพของโมเดล

ในระหว่างการฝึกโมเดล เราจะเปรียบเทียบโมเดลกับเอเจนต์แบบสุ่มที่เลือกข้อเสนอ IAP แบบสุ่มเพื่อดูว่าโมเดลของเรากำลังเรียนรู้จริงหรือไม่ ตรรกะนี้อยู่ภายใต้ ValidationCallback.

เมื่อการฝึกเสร็จสิ้น เราจะใช้ข้อมูลใน test.csv เพื่อทดสอบโมเดลอีกครั้ง โมเดลไม่เคยเห็นข้อมูลเหล่านี้มาก่อน เราจึงมั่นใจได้ว่าผลลัพธ์ไม่ได้เกิดจากการปรับมากเกินไป ในกรณีนี้ โมเดลทำงานได้ดีกว่าเอเจนต์แบบสุ่ม 28%

ส่งออกโมเดล TFLite

ตอนนี้เรามีโมเดลที่ฝึกแล้วพร้อมใช้งานแล้ว ยกเว้นว่าตอนนี้โมเดลอยู่ในรูปแบบ TensorFlow เราจะต้องส่งออกโมเดลเป็นรูปแบบ TFLite เพื่อให้เรียกใช้ในอุปกรณ์เคลื่อนที่ได้

train.ipynb

converter = tflite.TFLiteConverter.from_keras_model(model)
tflite_model = converter.convert()

with tf.io.gfile.GFile('iap-optimizer.tflite', 'wb') as f:
  f.write(tflite_model)

คุณดาวน์โหลดโมเดลและรวมโมเดลกับแอปได้จากที่นี่

ไม่บังคับ: สำหรับแอปเวอร์ชันที่ใช้งานจริง เราขอแนะนำให้คุณติดตั้งใช้งานโมเดลใน Firebase ML และให้ Firebase โฮสต์โมเดล ซึ่งมีประโยชน์ด้วยเหตุผลหลัก 2 ประการ ดังนี้

  1. เราสามารถทำให้ขนาดการติดตั้งแอปมีขนาดเล็กและดาวน์โหลดโมเดลเฉพาะในกรณีที่จำเป็นเท่านั้น
  2. อัปเดตโมเดลได้เป็นประจำและมีรอบการเผยแพร่ที่แตกต่างจากแอปทั้งหมด

หากต้องการดูวิธีติดตั้งใช้งานโมเดลใน Firebase ML ให้ทําตาม Codelab เพิ่ม Firebase ลงในแอป Android ที่ขับเคลื่อนด้วย TFLite คุณมีตัวเลือกในการติดตั้งใช้งานโดยใช้คอนโซล Firebase หรือ Python API

8. การคาดการณ์ในอุปกรณ์

ขั้นตอนถัดไปคือการคาดการณ์โดยใช้โมเดลในอุปกรณ์ คุณดูแอปตัวอย่างที่ดาวน์โหลดโมเดลจาก Firebase ML ได้ในโฟลเดอร์ app ของโค้ดตัวอย่างที่คุณดาวน์โหลด และใช้เพื่อทำการอนุมานกับข้อมูลฝั่งไคลเอ็นต์บางส่วน

เนื่องจากเราใช้การประมวลผลล่วงหน้าบางอย่างในระหว่างการฝึกโมเดล เราจึงต้องใช้การประมวลผลล่วงหน้าเดียวกันกับอินพุตของโมเดลเมื่อเรียกใช้ในอุปกรณ์ วิธีง่ายๆ ในการทำเช่นนี้คือการใช้รูปแบบที่ไม่ขึ้นกับแพลตฟอร์มและภาษา เช่น ไฟล์ JSON ที่มีแผนที่ของฟีเจอร์ทั้งหมดไปยังข้อมูลเมตาเกี่ยวกับวิธีการประมวลผลล่วงหน้า ดูรายละเอียดเพิ่มเติมเกี่ยวกับวิธีดำเนินการได้ในแอปตัวอย่าง

จากนั้น เราจะป้อนข้อมูลทดสอบให้กับโมเดลดังนี้

IapOptimzer.kt

  val testInput = mapOf(
    "coins_spent" to                       2048f,
    "distance_avg" to                      1234f,
    "device_os" to                         "ANDROID",
    "game_day" to                          10f,
    "geo_country" to                       "Canada",
    "last_run_end_reason" to               "laser"
  )

โมเดลแนะนำว่า sparky_armor เป็นการเพิ่มพลัง IAP ที่ดีที่สุดสำหรับผู้ใช้รายนี้

a3381dbcdbdf811e.png

วัดความแม่นยำของโมเดล

หากต้องการวัดความแม่นยำของโมเดล เราเพียงแค่ติดตามข้อเสนอ IAP ที่โมเดลคาดการณ์ไว้ และดูว่ามีการคลิกข้อเสนอเหล่านั้นหรือไม่โดยใช้ Firebase Analytics คุณสามารถใช้สิ่งนี้ร่วมกับ Firebase A/B Testing เพื่อวัดประสิทธิภาพจริงของโมเดลได้ นอกจากนี้ คุณยังทำการทดสอบ A/B กับโมเดลเวอร์ชันต่างๆ ได้ด้วย ดูข้อมูลเพิ่มเติมเกี่ยวกับการทดสอบ A/B ด้วย Firebase ได้ในเอกสารประกอบสร้างการทดสอบการกำหนดค่าระยะไกลของ Firebase พร้อมการทดสอบ A/B

9. (ไม่บังคับ): อัปเดตรูปแบบเป็นประจำด้วยข้อมูลใหม่

หากต้องการอัปเดตรุ่นเมื่อมีข้อมูลใหม่ คุณสามารถตั้งค่าไปป์ไลน์เพื่อฝึกรุ่นซ้ำเป็นประจำได้ หากต้องการทำเช่นนี้ คุณต้องตรวจสอบก่อนว่ามีข้อมูลใหม่ที่จะใช้ในการฝึกโดยใช้กลยุทธ์แบบเอปซิลอน-กรีดที่เรากล่าวถึงข้างต้น (เช่น ใช้ผลการคาดการณ์ของโมเดล 70% ของเวลา และใช้ผลลัพธ์แบบสุ่ม 30% ของเวลา)

การกำหนดค่าไปป์ไลน์สำหรับการฝึกและติดตั้งใช้งานด้วยข้อมูลใหม่นั้นอยู่นอกขอบเขตของโค้ดแล็บนี้ คุณสามารถดูข้อมูลเพิ่มเติมได้ที่ Google Cloud AI Platform และ TFX เพื่อเริ่มต้นใช้งาน

10. ยินดีด้วย

ในโค้ดแล็บนี้ คุณได้เรียนรู้วิธีฝึกและทำให้โมเดล TFLite บนอุปกรณ์ใช้งานได้เพื่อเพิ่มประสิทธิภาพการซื้อในแอปโดยใช้ Firebase ดูข้อมูลเพิ่มเติมเกี่ยวกับ TFLite และ Firebase ได้ที่ตัวอย่าง TFLite อื่นๆ และคู่มือการเริ่มต้นใช้งาน Firebase

หากมีคำถามใดๆ คุณสามารถโพสต์ไว้ที่ Stack Overflow #firebase-machine-learning

สิ่งที่เราได้พูดถึงไปแล้ว

  • TensorFlow Lite
  • Firebase ML
  • Firebase Analytics
  • BigQuery

ขั้นตอนถัดไป

  • ฝึกและติดตั้งใช้งานโมเดลเครื่องมือเพิ่มประสิทธิภาพสำหรับแอป

ดูข้อมูลเพิ่มเติม