המלצות מבוססות תוכן: יישום ב-iOS וב-Android

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

פיתוח ותמיכה בכל סוגי היישומים הניידים:

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

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

השירותים שאנו מציעים
מציג 1 מתוך 1כל 1734 השירותים
המלצות מבוססות תוכן: יישום ב-iOS וב-Android
מורכב
~1-2 שבועות

הכישורים שלנו:

שאלות נפוצות

העבודות האחרונות

  • פיתוח אפליקציית מובייל עבור FEEDME
    פיתוח אפליקציית מובייל עבור FEEDME
    971
  • פיתוח אפליקציית מובייל עבור XOOMER
    פיתוח אפליקציית מובייל עבור XOOMER
    869
  • פיתוח אפליקציית מובייל עבור RHL
    פיתוח אפליקציית מובייל עבור RHL
    1289
  • פיתוח אפליקציית מובייל עבור ZIPPY
    פיתוח אפליקציית מובייל עבור ZIPPY
    1143
  • פיתוח אפליקציית מובייל עבור Affhome
    פיתוח אפליקציית מובייל עבור Affhome
    1076
  • פיתוח אפליקציית מובייל עבור חברת FLAVORS
    פיתוח אפליקציית מובייל עבור חברת FLAVORS
    677

המלצות מבוססות תוכן: יישום ב-iOS וב-Android

דמיינו שאתם משיקים אפליקציית חדשות עם אלפי מאמרים, אבל למשתמשים חדשים אין היסטוריית קריאה. אתם צריכים להציג תוכן רלוונטי ללא נתונים של משתמשים אחרים. סינון מבוסס תוכן (מבוסס מאפיינים) פותר זאת מהיום הראשון. אנו מנתחים את המטא-דאטה של כל מאמר — תגיות, קטגוריות, מחברים, טקסט — ובונים פרופיל משתמש על סמך מה שהוא מקיים אינטראקציה איתו. עבור אפליקציות הרגישות לפרטיות, CB יכול לפעול כולו על המכשיר, מבלי לשלוח נתונים לשרת. זה רלוונטי במיוחד לאפליקציות פיננסיות או רפואיות. במאמר זה אנו מפרקים את המרכיבים המרכזיים של מערכת CB: מהטמעות ועד המלצות על המכשיר, עם דוגמאות קוד ל-iOS ול-Python. CB על המכשיר מפחית את עלויות מחשוב הענן לכ-$1000 בחודש. עבור קטלוג של 10,000 פריטים עם הטמעות 384-ממדיות, האינדקס תופס רק ~15 MB. פרופיל המשתמש שוקל 1.2 KB — ההמלצות מחושבות תוך 5 ms ב-iPhone 12.

מתי הגישה המבוססת תוכן עדיפה על סינון שיתופי?

שלושה תרחישים שבהם CB עדיף:

  • תוכן נישתי עם מטא-דאטה עשיר. מאמרים, מתכונים, מסלולי טיולים — לכל פריט יש סט עשיר של מאפיינים (תגיות, קטגוריות, מחברים, מיקומים). CF מסתמך על האות "משתמשים דומים", אבל עבור תוכן נישתי ייתכן שלא יהיו מספיק משתמשים כאלה, במיוחד בהתחלה.

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

  • זנב ארוך של תוכן. מאמר חדש שפורסם לפני שעה אין לו היסטוריית אינטראקציות עבור CF. CB ממליץ עליו מיד לאחר אינדוקס המטא-דאטה.

כיצד CB על המכשיר מפחית עלויות?

CB על המכשיר מבטל חישובי שרת. עבור קטלוג של 10,000 פריטים עם הטמעות 384-ממדיות, האינדקס תופס ~15 MB. פרופיל המשתמש — 1.2 KB. ההמלצות מחושבות תוך 5 ms ב-iPhone 12. החיסכון הממוצע במחשוב ענן לאחר יישום CB על המכשיר הוא כ-$500–$1000 בחודש עבור קטלוג של 10,000 פריטים. פרטיות הנתונים מובטחת אוטומטית.

כיצד פועלת הגישה המבוססת תוכן על המכשיר?

עבור קטלוגים קטנים (עד 50 אלף פריטים), ניתן להעביר את כל חיפוש ה-CB למכשיר. פרופיל המשתמש נשמר ב-UserDefaults, הטמעות התוכן נטענות בעת הפעלת האפליקציה (JSON ~20 MB עבור 50 אלף פריטים × 384d float32). ההמלצות מחושבות מקומית — ללא בקשות רשת, ללא עיכובים.

קוד: חיפוש CB על המכשיר ב-Swift
class OnDeviceRecommender {
    private let userProfileKey = "user_embedding_v2"
    private var itemIndex: [(id: String, embedding: [Float])] = []

    func loadItemIndex(from url: URL) {
        let data = try! Data(contentsOf: url)
        itemIndex = try! JSONDecoder().decode([(id: String, embedding: [Float])].self, from: data)
    }

    func getRecommendations(count: Int) -> [String] {
        guard let profileData = UserDefaults.standard.data(forKey: userProfileKey),
              let profile = try? JSONDecoder().decode([Float].self, from: profileData) else {
            return popularItemIds(count: count)
        }
        return itemIndex
            .map { item in (item.id, cosineSimilarity(profile, item.embedding)) }
            .sorted { $0.1 > $1.1 }
            .prefix(count)
            .map { $0.0 }
    }

    private func cosineSimilarity(_ a: [Float], _ b: [Float]) -> Float {
        zip(a, b).map(*).reduce(0, +)
    }
}

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

מערכת בסיסית: TF-IDF והטמעות טקסט

עבור מאמרים, תיאורים, חדשות — שתי גישות: TF-IDF למהירות, הטמעות משפטים לאיכות. בפועל אנו משתמשים ב-sentence-transformers/paraphrase-multilingual-MiniLM-L12-v2 — 278 MB, תומך ברוסית. כל פריט הופך לוקטור 384-ממדי. לפי TF-IDF, תדירות המילה ותדירות מסמך הפוכה מספקות מדד רלוונטיות פשוט אך יעיל.

from sentence_transformers import SentenceTransformer
model = SentenceTransformer('paraphrase-multilingual-MiniLM-L12-v2')

def embed_article(article: Article) -> np.ndarray:
    text = f"{article.title}. {article.description}. {' '.join(article.tags)}"
    return model.encode(text, normalize_embeddings=True)

def similarity(v1: np.ndarray, v2: np.ndarray) -> float:
    return float(np.dot(v1, v2))

פרופיל משתמש — ממוצע נע

פרופיל המשתמש הוא ממוצע משוקלל של הטמעות התוכן שאיתו הוא קיים אינטראקציה. אינטראקציות אחרונות שוקלות יותר (דעיכה אקספוננציאלית עם מקדם 0.9):

def update_user_profile(profile: np.ndarray, new_item_embedding: np.ndarray, interaction_weight: float, decay: float = 0.9) -> np.ndarray:
    updated = decay * profile + (1 - decay) * interaction_weight * new_item_embedding
    return updated / np.linalg.norm(updated)

מטא-דאטה מובנה: לא רק טקסט

עבור קטלוגי מוצרים, הטמעות טקסט מתווספות עם מאפיינים קטגוריאליים: קטגוריה, מותג, טווח מחירים, צבע. הוקטור הסופי הוא שרשור של הטמעת טקסט מנורמלת ומאפיינים one-hot/סידוריים עם משקלים 0.7 ו-0.3 בהתאמה:

def build_item_vector(item: Product) -> np.ndarray:
    text_emb = embed_text(f"{item.name} {item.description}")
    cat_features = encode_categorical({
        'category': item.category_id,
        'brand': item.brand_id,
        'price_range': bucket_price(item.price)
    })
    return np.concatenate([text_emb * 0.7, cat_features * 0.3])

השוואה: גישה מבוססת תוכן מול סינון שיתופי

פרמטר גישה מבוססת תוכן סינון שיתופי
דורש היסטוריית משתמש לא כן
עובד עם תוכן חדש מיד רק לאחר אינטראקציות
פרטיות מקומית דורש שרת
איכות לתוכן נישתי טובה ירודה (דלילות)
עומס חישובי נמוך (על המכשיר) בינוני (על השרת)
חיסכון בתשתית עד $1000/חודש תלוי בהיקף

כיצד ליישם CB על המכשיר ב-Swift: שלב אחר שלב

  1. אינדוקס תוכן. בשרת, חשבו הטמעות עבור כל פריט באמצעות sentence-transformers. שמרו בקובץ JSON עם שדות id ו-embedding.
  2. טעינת אינדקס. בעת הפעלת האפליקציה, טענו את ה-JSON למערך OnDeviceRecommender. למהירות, השתמשו בפורמט בינארי.
  3. איסוף אינטראקציות. בכל פעם שמשתמש פותח או אוהב תוכן, שמרו את הטמעת הפריט ב-UserDefaults עם חותמת זמן.
  4. עדכון פרופיל. בכל אינטראקציה, חשבו מחדש את הממוצע הנע עם דעיכה אקספוננציאלית.
  5. יצירת המלצות. קראו ל-getRecommendations בעת הצגת הפיד או ברקע.

מה כוללת העבודה

אנו מספקים:

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

הניסיון שלנו: למעלה מ-10 שנים בפיתוח מובייל, 30+ פרויקטים עם המלצות AI. תמיכה מובטחת לאחר היישום. צרו קשר להערכת פרויקט — נתאים ארכיטקטורה אופטימלית למקרה שלכם. הזמינו פיתוח מערכת המלצות לפרויקט שלכם.

הערכת לוחות זמנים

תרחיש לוח זמנים
CB שרתי עם הטמעות מחושבות מראש ו-API 1–1.5 שבועות
על המכשיר ל-iOS/Android עם אינדקס מקומי 2–3 שבועות
היברידי עם עיבוד חלקי על המכשיר 3–4 שבועות

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