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

1. ภาพรวม

1cbf855eda62c306.png

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

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

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

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

สิ่งที่คุณต้องการ

  • ระบบปฏิบัติการ Android เวอร์ชัน 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

Repo นี้ประกอบด้วย:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

MainActivity.kt

firebaseAnalytics.setUserId("player1")

ต่อไปเราสามารถบันทึกเหตุการณ์ของผู้เล่นได้ สำหรับการเพิ่มประสิทธิภาพ IAP เราต้องการบันทึกข้อเสนอ IAP แต่ละรายการที่นำเสนอต่อผู้ใช้ และดูว่าผู้ใช้คลิกข้อเสนอนั้นหรือไม่ สิ่งนี้จะทำให้เรามีเหตุการณ์การวิเคราะห์สองเหตุการณ์ - 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 ใดที่ผู้ใช้คลิก ในขั้นตอนนี้ เราจะรวมข้อมูลเหตุการณ์นี้เข้ากับข้อมูลผู้ใช้เพื่อให้แบบจำลองของเราสามารถเรียนรู้จากภาพรวมได้

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

หากต้องการลิงก์โปรเจ็กต์ Firebase และแอปกับ BigQuery ให้ทำดังนี้

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

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

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

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

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

กำลังเตรียมข้อมูลใน BigQuery

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

เพื่อให้โมเดลของเราเรียนรู้ว่า 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 นี้

คำจำกัดความของปัญหา

ก่อนที่เราจะเริ่มฝึกโมเดล เรามาใช้เวลาในการกำหนดปัญหาโจรกรรมตามบริบทของเราก่อน

โจรตามบริบทอธิบาย

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

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

e7d3264141498bff.jpeg

ต่อไปนี้คือสิ่งที่เราจะใช้ในการทำนาย:

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

การแสวงหาผลประโยชน์และการสำรวจ

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

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

การฝึกอบรมโมเดล

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

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

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

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

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

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

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

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

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

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

รถไฟ.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 โฮสต์โมเดลของคุณ สิ่งนี้มีประโยชน์ด้วยเหตุผลสองประการ:

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

หากต้องการเรียนรู้วิธีปรับใช้โมเดลกับ Firebase ML คุณสามารถทำตาม เพิ่ม Firebase ไปยัง Codelab ของแอป 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 เพื่อวัดประสิทธิภาพที่แท้จริงของโมเดลได้ ก้าวไปอีกขั้นหนึ่ง คุณยังสามารถทำการทดสอบ A/B กับแบบจำลองต่างๆ ได้อีกด้วย คุณสามารถเรียนรู้เพิ่มเติมเกี่ยวกับการทดสอบ A/B ด้วย Firebase ได้ในเอกสาร ประกอบการสร้างการทดสอบการกำหนดค่าระยะไกลของ Firebase ด้วยการทดสอบ A/B

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

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

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

10. ขอแสดงความยินดี!

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

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

สิ่งที่เราได้กล่าวถึง

  • TensorFlow Lite
  • Firebase ML
  • การวิเคราะห์ฐานไฟ
  • BigQuery

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

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

เรียนรู้เพิ่มเติม