הוספת המלצות לאפליקציה בעזרת TensorFlow Lite ו-Firebase – Android Codelab

1. סקירה כללית

ברוכים הבאים ל-codelab בנושא המלצות עם TensorFlow Lite ו-Firebase. ב-codelab הזה תלמדו איך להשתמש ב-TensorFlow Lite וב-Firebase כדי לפרוס מודל המלצות באפליקציה. ה-codelab הזה מבוסס על הדוגמה הזו של TensorFlow Lite.

ההמלצות מאפשרות לאפליקציות להשתמש בלמידת מכונה כדי להציג בצורה חכמה את התוכן הרלוונטי ביותר לכל משתמש. הם מתבססים על התנהגות משתמשים בעבר כדי להציע תוכן באפליקציה שהמשתמש עשוי להתעניין בו בעתיד, באמצעות מודל שאומן על סמך התנהגות מצטברת של מספר גדול של משתמשים אחרים.

במדריך הזה מוסבר איך להשיג נתונים מהמשתמשים באפליקציה באמצעות Firebase Analytics, לבנות מודל למידת מכונה להמלצות על סמך הנתונים האלה, ואז להשתמש במודל הזה באפליקציית Android כדי להפעיל הסקה ולקבל המלצות. בפרט, ההמלצות שלנו יציעו למשתמשים סרטים שהם כנראה ירצו לצפות בהם, בהתבסס על רשימת הסרטים שהם סימנו בלייק בעבר.

מה תלמדו

  • שילוב של Firebase Analytics באפליקציית Android כדי לאסוף נתוני התנהגות משתמשים
  • ייצוא הנתונים ל-Google BigQuery
  • ביצוע עיבוד מקדים של הנתונים ואימון מודל המלצות של TF Lite
  • פריסת מודל TF Lite ב-Firebase ML וגישה אליו מהאפליקציה
  • הפעלת הסקה במכשיר באמצעות המודל כדי להציע המלצות למשתמשים

מה צריך

  • הגרסה האחרונה של Android Studio.
  • קוד לדוגמה.
  • מכשיר בדיקה עם Android מגרסה 7 ומעלה ו-Google Play Services מגרסה 9.8 ומעלה, או אמולטור עם Google Play Services מגרסה 9.8 ומעלה
  • אם משתמשים במכשיר, צריך כבל חיבור.

איך תשתמשו במדריך הזה?

קריאה בלבד קריאה והשלמת התרגילים

איך היית מדרג את חוויית הפיתוח שלך באפליקציות ל-Android?

מתחילים ביניים מומחים

2. קבלת קוד לדוגמה

משכפלים את המאגר ב-GitHub משורת הפקודה.

$ git clone https://github.com/FirebaseExtended/codelab-contentrecommendation-android.git

3. ייבוא של אפליקציה למתחילים

ב-Android Studio, בוחרים את הספרייה codelab-recommendations-android ( android_studio_folder.png) מתוך ההורדה של קוד לדוגמה (File (קובץ) > Open (פתיחה) > .../codelab-recommendations-android/start).

עכשיו הפרויקט ההתחלתי אמור להיפתח ב-Android Studio.

4. יצירת פרויקט במסוף Firebase

יצירת פרויקט חדש

  1. עוברים אל מסוף Firebase.
  2. לוחצים על הוספת פרויקט (או על יצירת פרויקט אם זה הפרויקט הראשון).
  3. בוחרים או מזינים שם לפרויקט ולוחצים על המשך.
  4. מוודאים שהאפשרות 'הפעלת Google Analytics בפרויקט הזה' מופעלת.
  5. ממשיכים לבצע את שאר שלבי ההגדרה במסוף Firebase, ואז לוחצים על Create project (יצירת פרויקט) (או על Add Firebase (הוספת Firebase) אם משתמשים בפרויקט קיים ב-Google).

5. הוסף את Firebase

  1. במסך הסקירה הכללית של הפרויקט החדש, לוחצים על סמל Android כדי להפעיל את תהליך ההגדרה.
  2. מזינים את שם החבילה של ה-codelab: com.google.firebase.codelabs.recommendations
  3. בוחרים באפשרות רישום האפליקציה.

הוספת קובץ google-services.json לאפליקציה

אחרי שמוסיפים את שם החבילה ובוחרים באפשרות Register (הרשמה), לוחצים על Download google-services.json (הורדת google-services.json) כדי לקבל את קובץ ההגדרות של Firebase Android, ואז מעתיקים את הקובץ google-services.json לספרייה app בפרויקט. אחרי שהקובץ יורד, אפשר לדלג על השלבים הבאים שמוצגים במסוף (הם כבר בוצעו בשבילכם בפרויקט build-android-start).

הוספת הפלאגין google-services לאפליקציה

הפלאגין google-services משתמש בקובץ google-services.json כדי להגדיר את האפליקציה לשימוש ב-Firebase. השורות הבאות כבר אמורות להיות מוספות לקובצי build.gradle.kts בפרויקט (כדאי לבדוק כדי לוודא):

app/build.grade.kts

plugins {
    id("com.google.gms.google-services")
}

build.grade.kts

plugins {
    id("com.google.gms.google-services") version "4.3.15" apply false
}

סנכרון הפרויקט עם קובצי gradle

כדי לוודא שכל התלויות זמינות לאפליקציה, בשלב הזה צריך לסנכרן את הפרויקט עם קובצי gradle. בסרגל הכלים של Android Studio, בוחרים באפשרות File > Sync Project with Gradle Files (קובץ > סנכרון הפרויקט עם קובצי Gradle).

6. הפעלת האפליקציה למתחילים

אחרי שייבאתם את הפרויקט ל-Android Studio והגדרתם את הפלאגין google-services באמצעות קובץ ה-JSON, אתם מוכנים להפעיל את האפליקציה בפעם הראשונה. מחברים את מכשיר Android ולוחצים על Run (הפעלה) ( execute.png) בסרגל הכלים של Android Studio.

האפליקציה אמורה להיפתח במכשיר. בשלב הזה, תוכלו לראות אפליקציה פועלת עם כרטיסייה שכוללת רשימה של סרטים, כרטיסייה של סרטים שאהבתם וכרטיסייה של המלצות. כדי להוסיף סרט לרשימת הסרטים שאהבתם, לוחצים על הסרט ברשימת הסרטים. אחרי השלמת שאר השלבים של ה-codelab, נוכל ליצור המלצות לסרטים בכרטיסייה 'המלצות'.

7. הוספה של Firebase Analytics לאפליקציה

בשלב הזה, מוסיפים את Firebase Analytics לאפליקציה כדי לתעד נתוני התנהגות משתמשים (במקרה הזה, אילו סרטים משתמש אהב). הנתונים האלה ישמשו באופן מצטבר בשלבים הבאים לאימון מודל ההמלצות.

הוספה של עץ המוצר (BoM) של Firebase ותלות ב-Analytics

כדי להוסיף את Firebase Analytics לאפליקציה, צריך להוסיף את התלויות הבאות. הן כבר אמורות להיכלל בקובץ app/build.gradle.kts (צריך לוודא).

app/build.grade.kts

implementation(platform("com.google.firebase:firebase-bom:32.0.0"))
implementation("com.google.firebase:firebase-analytics-ktx")

הגדרה של Firebase Analytics באפליקציה

ה-ViewModel‏ LikedMoviesViewModel מכיל פונקציות לאחסון הסרטים שהמשתמש אהב. בכל פעם שהמשתמש מסמן לייק לסרט חדש, אנחנו רוצים לשלוח גם אירוע יומן של Analytics כדי לתעד את הלייק.

מוסיפים את הפונקציה onMovieLiked עם הקוד שלמטה כדי לרשום אירוע Analytics כשמשתמש לוחץ על 'אהבתי' בסרט.

LikedMoviesViewModel.kt

import com.google.firebase.analytics.FirebaseAnalytics
import com.google.firebase.analytics.ktx.analytics
import com.google.firebase.analytics.ktx.logEvent
import com.google.firebase.ktx.Firebase


class LikedMoviesViewModel internal constructor (application: Application) : AndroidViewModel(application) {

    ...

    fun onMovieLiked(movie: Movie) {
        movies.setLike(movie, true)
        logAnalyticsEvent(movie.id.toString())
    }
       
}

מוסיפים את השדה והפונקציה הבאים כדי לרשום ביומן אירוע ב-Analytics כשסרט מתווסף לרשימת הסרטים שהמשתמש אהב.

LikedMoviesViewModel.kt

import com.google.firebase.analytics.FirebaseAnalytics
import com.google.firebase.analytics.ktx.analytics
import com.google.firebase.analytics.ktx.logEvent
import com.google.firebase.ktx.Firebase


class LikedMoviesViewModel internal constructor (application: Application) : AndroidViewModel(application) {
    ...
    private val firebaseAnalytics = Firebase.analytics

    ...

    /**
     * Logs an event in Firebase Analytics that is used in aggregate to train the recommendations
     * model.
     */
    private fun logAnalyticsEvent(id: String) {
        firebaseAnalytics.logEvent(FirebaseAnalytics.Event.SELECT_ITEM) {
            param(FirebaseAnalytics.Param.ITEM_ID, id)
        }
    }

8. בדיקת השילוב עם Analytics

בשלב הזה, ניצור אירועים של Analytics באפליקציה ונוודא שהם נשלחים למסוף Firebase.

הפעלת רישום ביומן של ניפוי הבאגים ב-Analytics

מערכת Firebase Analytics מתוכננת כך שתמקסם את חיי הסוללה של המשתמשים, והיא תקבץ אירועים במכשיר ותשלח אותם ל-Firebase רק מדי פעם. למטרות ניפוי באגים, אפשר להשבית את ההתנהגות הזו כדי לראות את האירועים בזמן שהם מתועדים בזמן אמת. לשם כך, מריצים את הפקודה הבאה במעטפת.

Terminal

adb shell setprop debug.firebase.analytics.app com.google.firebase.codelabs.recommendations

אימות של יצירת אירועים ב-Analytics

  1. ב-Android Studio, פותחים את החלון Logcat כדי לבדוק את הרישום ביומן מהאפליקציה.
  2. מגדירים את המסנן Logcat למחרוזת Logging event (רישום אירוע ביומן).
  3. מוודאים שאירועי Analytics מסוג select_item מופעלים בכל פעם שמסמנים סרט באפליקציה בתור 'אהבתי'.

בשלב הזה, שילבתם בהצלחה את Firebase Analytics באפליקציה. כשהמשתמשים משתמשים באפליקציה ומסמנים סרטים שהם אוהבים, הסימונים שלהם מתועדים באופן מצטבר. נשתמש בנתונים המצטברים האלה בהמשך ה-codelab כדי לאמן את מודל ההמלצות שלנו. השלב הבא הוא אופציונלי, והוא מאפשר לכם לראות את אותם אירועים של Analytics שראיתם ב-Logcat גם בסטרימינג במסוף Firebase. אפשר לדלג לדף הבא.

אופציונלי: אישור אירועים של Analytics במסוף Firebase

  1. עוברים אל מסוף Firebase.
  2. בוחרים באפשרות DebugView בקטע Analytics.
  3. ב-Android Studio, בוחרים באפשרות Run (הפעלה) כדי להפעיל את האפליקציה ולהוסיף סרטים לרשימת הפריטים שאהבתם.
  4. ב-DebugView במסוף Firebase, מוודאים שהאירועים האלה נרשמים בזמן שמוסיפים סרטים באפליקציה.

9. ייצוא נתונים מ-Analytics ל-BigQuery

‫BigQuery הוא מוצר של Google Cloud שמאפשר לבדוק ולעבד כמויות גדולות של נתונים. בשלב הזה, מקשרים את הפרויקט במסוף Firebase ל-BigQuery כדי שנתוני Analytics שנוצרו על ידי האפליקציה ייוצאו באופן אוטומטי ל-BigQuery.

הפעלת BigQuery Export

  1. עוברים אל מסוף Firebase.
  2. לוחצים על סמל גלגל השיניים של ההגדרות לצד Project Overview (סקירת הפרויקט) ואז בוחרים באפשרות Project settings (הגדרות הפרויקט).
  3. בוחרים בכרטיסייה שילובים.
  4. בוחרים באפשרות קישור (או ניהול) בבלוק BigQuery.
  5. בשלב מידע על קישור Firebase ל-BigQuery, לוחצים על הבא.
  6. בקטע הגדרת השילוב, לוחצים על המתג כדי להפעיל את שליחת הנתונים של Google Analytics ובוחרים באפשרות קישור ל-BigQuery.

הפעלתם עכשיו את האפשרות לשלוח אוטומטית נתוני אירועים מ-Firebase Analytics אל BigQuery בפרויקט שלכם במסוף Firebase. התהליך הזה מתבצע באופן אוטומטי בלי צורך בפעולה נוספת, אבל יכול להיות שהייצוא הראשון שיוצר את מערך הנתונים של Analytics ב-BigQuery יתבצע רק אחרי 24 שעות. אחרי שיוצרים את מערך הנתונים, מערכת Firebase מייצאת באופן רציף אירועים חדשים מ-Analytics אל BigQuery לטבלה היומית, ומקבצת אירועים מימים קודמים בטבלת האירועים.

כדי לאמן מודל המלצות צריך הרבה נתונים. מכיוון שאין לנו עדיין אפליקציה שמייצרת כמויות גדולות של נתונים, בשלב הבא נייבא מערך נתונים לדוגמה ל-BigQuery כדי להשתמש בו בהמשך המדריך הזה.

10. שימוש ב-BigQuery כדי לקבל נתונים לאימון המודל

אחרי שקישרנו את Firebase Console לייצוא ל-BigQuery, נתוני האירועים של ניתוח האפליקציה יופיעו אוטומטית ב-BigQuery Console אחרי זמן מה. כדי לקבל נתונים ראשוניים לצורך המדריך הזה, בשלב הזה נייבא מערך נתונים לדוגמה קיים למסוף BigQuery כדי להשתמש בו לאימון מודל ההמלצות.

ייבוא מערך נתונים לדוגמה ל-BigQuery

  1. נכנסים ללוח הבקרה של BigQuery במסוף Google Cloud.
  2. בתפריט, בוחרים את שם הפרויקט.
  3. כדי לראות את הפרטים, בוחרים את שם הפרויקט בחלק התחתון של סרגל הניווט הימני ב-BigQuery.
  4. בוחרים באפשרות Create dataset (יצירת מערך נתונים) כדי לפתוח את החלונית ליצירת מערך נתונים.
  5. מזינים 'firebase_recommendations_dataset' בשדה Dataset ID ובוחרים באפשרות Create dataset (יצירת מערך נתונים).
  6. מערך הנתונים החדש יופיע בתפריט הימני מתחת לשם הפרויקט. לחץ עליו.
  7. בוחרים באפשרות יצירת טבלה כדי לפתוח את החלונית ליצירת טבלה.
  8. בקטע יצירת טבלה מ בוחרים באפשרות Google Cloud Storage.
  9. בשדה Select file from GCS bucket, מזינים את הנתיב gs://firebase-recommendations/recommendations-test/formatted_data_filtered.txt.
  10. בתפריט הנפתח פורמט הקובץ, בוחרים באפשרות JSONL.
  11. מזינים 'recommendations_table' בשדה שם הטבלה.
  12. מסמנים את התיבה בקטע סכימה > זיהוי אוטומטי > פרמטרים של סכימה וקלט.
  13. בוחרים באפשרות יצירת טבלה.

עיון במערך הנתונים לדוגמה

בשלב הזה, אפשר לעיין בסכימה ולצפות בתצוגה מקדימה של מערך הנתונים.

  1. בתפריט הימני, בוחרים באפשרות firebase-recommendations-dataset כדי להרחיב את הטבלאות שהוא מכיל.
  2. בוחרים בטבלה recommendations-table כדי לראות את סכימת הטבלה.
  3. בוחרים באפשרות תצוגה מקדימה כדי לראות את נתוני האירועים בפועל מ-Analytics שכלולים בטבלה הזו.

יצירת פרטי כניסה לחשבון שירות

עכשיו ניצור פרטי כניסה לחשבון שירות בפרויקט שלנו במסוף Google Cloud, שבהם נוכל להשתמש בשלב הבא בסביבת Colab כדי לגשת לנתוני BigQuery ולטעון אותם.

  1. הקפידו לוודא שהחיוב מופעל בפרויקט שלכם ב-Google Cloud.
  2. מפעילים את ממשקי ה-API של BigQuery ו-BigQuery Storage. < click here>
  3. נכנסים אל הדף ליצירת מפתח לחשבון שירות.
  4. ברשימה Service account, בוחרים באפשרות New service account.
  5. כותבים שם בשדה Service account name.
  6. ברשימה Role בוחרים באפשרות Project > Owner.
  7. לוחצים על יצירה. קובץ JSON שמכיל את המפתח יורד למחשב.

בשלב הבא, נשתמש ב-Google Colab כדי לבצע עיבוד מקדים של הנתונים האלה ולאמן את מודל ההמלצות שלנו.

11. עיבוד מקדים של נתונים ואימון מודל המלצות

בשלב הזה נשתמש ב-notebook של Colab כדי לבצע את השלבים הבאים:

  1. ייבוא נתוני BigQuery למחברת Colab
  2. לעבד את הנתונים כדי להכין אותם לאימון המודל
  3. לאמן את מודל ההמלצות על נתוני הניתוח
  4. לייצא את המודל כמודל TF Lite
  5. להטמיע את המודל במסוף Firebase כדי שנוכל להשתמש בו באפליקציה שלנו

לפני שנשיק את מחברת האימון של Colab, נפעיל קודם את Firebase Model Management API כדי ש-Colab יוכל לפרוס את המודל שאומן במסוף Firebase.

הפעלת Firebase Model Management API

יצירת קטגוריה לאחסון מודלים של למידת מכונה

במסוף Firebase, עוברים אל Storage (אחסון) ולוחצים על Get started (תחילת העבודה). fbbea78f0eb3dc9f.png

פועלים לפי ההוראות כדי להגדיר את הדלי.

19517c0d6d2aa14d.png

הפעלת Firebase ML API

נכנסים אל הדף של Firebase ML API במסוף Google Cloud ולוחצים על Enable (הפעלה).

שימוש ב-notebook של Colab כדי לאמן ולפרוס את המודל

פותחים את מחברת Colab באמצעות הקישור הבא ומשלימים את השלבים שמופיעים בה. אחרי שמסיימים את השלבים במחברת Colab, קובץ מודל TF Lite נפרס במסוף Firebase, ואפשר לסנכרן אותו עם האפליקציה.

פתיחה ב-Colab

12. הורדת המודל באפליקציה

בשלב הזה נשנה את האפליקציה כדי להוריד את המודל שאומן מ-Firebase Machine Learning.

הוספת תלות ב-Firebase ML

כדי להשתמש במודלים של Firebase ללמידת מכונה באפליקציה, צריך להוסיף את התלות הבאה (כדאי לוודא שהיא כבר נוספה):

app/build.grade.kts

implementation("com.google.firebase:firebase-ml-modeldownloader:24.1.2")

הורדת המודל באמצעות Firebase Model Manager API

מעתיקים את הקוד שבהמשך אל RecommendationClient.kt כדי להגדיר את התנאים להורדת המודל וליצור משימת הורדה לסנכרון המודל המרוחק עם האפליקציה.

RecommendationClient.kt

    private fun downloadModel(modelName: String) {
        val conditions = CustomModelDownloadConditions.Builder()
            .requireWifi()
            .build()
        FirebaseModelDownloader.getInstance()
            .getModel(modelName, DownloadType.LOCAL_MODEL, conditions)
            .addOnCompleteListener {
                if (!it.isSuccessful) {
                    showToast(context, "Failed to get model file.")
                } else {
                    showToast(context, "Downloaded remote model: $modelName")
                    GlobalScope.launch { initializeInterpreter(it.result) }
                }
            }
            .addOnFailureListener {
                showToast(context, "Model download failed for recommendations, please check your connection.")
            }
    }

13. שילוב של מודל המלצות של TensorFlow Lite באפליקציה

סביבת זמן הריצה של TensorFlow Lite תאפשר לכם להשתמש במודל באפליקציה כדי ליצור המלצות. בשלב הקודם אתחלנו מתורגמן TFlite עם קובץ המודל שהורדנו. בשלב הזה, קודם נטען מילון ותוויות כדי שילוו את המודל בשלב ההסקה, ואז נוסיף עיבוד מקדים כדי ליצור את הקלטים למודל, ועיבוד פוסט כדי לחלץ את התוצאות מההסקה.

טעינת מילון ותוויות

התוויות שמשמשות ליצירת ההמלצות האפשריות על ידי מודל ההמלצות מפורטות בקובץ sorted_movie_vocab.json בתיקייה res/assets. מעתיקים את הקוד הבא כדי לטעון את המועמדים האלה.

RecommendationClient.kt

    /** Load recommendation candidate list.  */
    private suspend fun loadCandidateList() {
        return withContext(Dispatchers.IO) {
            val collection = MovieRepository.getInstance(context).getContent()
            for (item in collection) {
                candidates[item.id] = item
            }
            Log.v(TAG, "Candidate list loaded.")
        }
    }

הטמעה של עיבוד מקדים

בשלב העיבוד המקדים, אנחנו משנים את פורמט נתוני הקלט כך שיתאים לפורמט שהמודל שלנו מצפה לו. במקרה הזה, אנחנו מוסיפים ערך placeholder לאורך הקלט אם עדיין לא יצרנו הרבה לייקים של משתמשים. מעתיקים את הקוד הבא:

RecommendationClient.kt

    /** Given a list of selected items, preprocess to get tflite input.  */
    @Synchronized
    private suspend fun preprocess(selectedMovies: List<Movie>): IntArray {
        return withContext(Dispatchers.Default) {
            val inputContext = IntArray(config.inputLength)
            for (i in 0 until config.inputLength) {
                if (i < selectedMovies.size) {
                    val (id) = selectedMovies[i]
                    inputContext[i] = id
                } else {
                    // Padding input.
                    inputContext[i] = config.pad
                }
            }
            inputContext
        }
    }


הפעלת המתורגמן כדי ליצור המלצות

בדוגמה הזו אנחנו משתמשים במודל שהורד בשלב הקודם כדי להריץ הסקת מסקנות על הקלט שעבר עיבוד מראש. אנחנו מגדירים את סוג הקלט והפלט של המודל ומריצים היקש כדי ליצור את ההמלצות לסרטים. מעתיקים את הקוד הבא לאפליקציה.

RecommendationClient.kt

    /** Given a list of selected items, and returns the recommendation results.  */
    @Synchronized
    suspend fun recommend(selectedMovies: List<Movie>): List<Result> {
        return withContext(Dispatchers.Default) {
            val inputs = arrayOf<Any>(preprocess(selectedMovies))

            // Run inference.
            val outputIds = IntArray(config.outputLength)
            val confidences = FloatArray(config.outputLength)
            val outputs: MutableMap<Int, Any> = HashMap()
            outputs[config.outputIdsIndex] = outputIds
            outputs[config.outputScoresIndex] = confidences
            tflite?.let {
                it.runForMultipleInputsOutputs(inputs, outputs)
                postprocess(outputIds, confidences, selectedMovies)
            } ?: run {
                Log.e(TAG, "No tflite interpreter loaded")
                emptyList()
            }
        }
    }



הטמעה של עיבוד תמונה (Post Processing)

לבסוף, בשלב הזה אנחנו מבצעים עיבוד אחרי של הפלט מהמודל שלנו, בוחרים את התוצאות עם רמת הביטחון הגבוהה ביותר ומסירים ערכים כלולים (סרטים שהמשתמש כבר סימן בלייק). מעתיקים את הקוד הבא לאפליקציה.

RecommendationClient.kt

    /** Postprocess to gets results from tflite inference.  */
    @Synchronized
    private suspend fun postprocess(
        outputIds: IntArray, confidences: FloatArray, selectedMovies: List<Movie>
    ): List<Result> {
        return withContext(Dispatchers.Default) {
            val results = ArrayList<Result>()

            // Add recommendation results. Filter null or contained items.
            for (i in outputIds.indices) {
                if (results.size >= config.topK) {
                    Log.v(TAG, String.format("Selected top K: %d. Ignore the rest.", config.topK))
                    break
                }
                val id = outputIds[i]
                val item = candidates[id]
                if (item == null) {
                    Log.v(TAG, String.format("Inference output[%d]. Id: %s is null", i, id))
                    continue
                }
                if (selectedMovies.contains(item)) {
                    Log.v(TAG, String.format("Inference output[%d]. Id: %s is contained", i, id))
                    continue
                }
                val result = Result(
                    id, item,
                    confidences[i]
                )
                results.add(result)
                Log.v(TAG, String.format("Inference output[%d]. Result: %s", i, result))
            }
            results
        }
    }


בדיקת האפליקציה

מריצים מחדש את האפליקציה. כשבוחרים כמה סרטים, המודל החדש אמור להוריד את עצמו באופן אוטומטי ולהתחיל ליצור המלצות.

14. כל הכבוד!

הטמעתם תכונת המלצות באפליקציה באמצעות TensorFlow Lite ו-Firebase. חשוב לשים לב שאפשר להכליל את הטכניקות ואת צינור הנתונים שמוצגים ב-codelab הזה ולהשתמש בהם גם להצגת סוגים אחרים של המלצות.

מה נכלל

  • Firebase ML
  • Firebase Analytics
  • ייצוא אירועים של ניתוח נתונים ל-BigQuery
  • עיבוד מראש של אירועים ב-Analytics
  • אימון מודל TensorFlow להמלצות
  • ייצוא המודל ופריסה שלו במסוף Firebase
  • הצגת המלצות לסרטים באפליקציה

השלבים הבאים

  • הטמעה של המלצות מ-Firebase ML באפליקציה.

מידע נוסף

יש לכם שאלה?

דיווח על בעיות