- X'in "For You" akışındaki kişiselleştirilmiş içerik önerilerinin kalitesini artırmak için geliştirilen makine öğrenimi tabanlı öneri sistemi
- Akış, takip edilen hesaplar (Thunder) ve takip dışı içerikler (Phoenix Retrieval) olmak üzere iki kaynağın birleştirilmesiyle oluşturuluyor
- Tüm aday gönderiler, Grok tabanlı Transformer modeli Phoenix ile değerlendirilerek nihai sıralama üretiliyor
- Bu model, her gönderi için etkileşim olasılığını tahmin ediyor
- Sistemde elle tasarlanmış tüm özellikler ve çoğu sezgisel algoritma kaldırıldı
- Kullanıcının etkinlik geçmişi (beğeni, yanıt, paylaşım) analiz edilerek ilgili içerikler belirleniyor
Sistem mimarisi
- Home Mixer, tüm pipeline'ı koordine eden orkestrasyon katmanı
- Kullanıcı davranış geçmişi ve takip bilgilerini toplayan Query Hydration aşamasını içeriyor
- Aday toplama, veri zenginleştirme, filtreleme, puanlama ve nihai seçime kadar bir dizi aşamayı yönetiyor
- gRPC tabanlı ScoredPostsService ile kullanıcıya göre sıralanmış gönderileri döndürüyor
- Thunder, Kafka event stream üzerinden gerçek zamanlı gönderi toplayan bellek içi bir depolama sistemi
- Orijinal gönderiler, yanıtlar/repost'lar ve video gönderileri için kullanıcı bazlı depoları yönetiyor
- İstekte bulunan kullanıcının takip ettiği hesaplardan "In-network" gönderi adayları sağlıyor
- Takip edilen hesapların en yeni gönderilerini ultra düşük gecikmeyle sunuyor
- Harici veritabanına erişim olmadan alt milisaniye düzeyinde sorgu performansı sağlıyor
- Phoenix, önerinin çekirdek ML bileşeni olup Retrieval ve Ranking olmak üzere iki aşamadan oluşuyor
- Arama: Two-Tower model kullanarak kullanıcı özellikleri/etkileşim kayıtları gömüleri ile gönderi gömüleri arasındaki benzerliği hesaplayıp Top-K gönderileri getiriyor
- Sıralama: Transformer with Candidate Isolation yapısıyla her adayın bağımsız değerlendirilmesi için tasarlanmış
- Girdi olarak kullanıcı bağlamını (etkileşim geçmişi) ve aday gönderiyi alıyor
- Her gönderi için beğeni, yanıt, repost, tıklama gibi çoklu davranış olasılıklarını tahmin ediyor
- Candidate Pipeline, yeniden kullanılabilir bir öneri pipeline çerçevesi
Source, Hydrator, Filter, Scorer, Selector gibi trait'leri tanımlıyor
- Paralel çalışma, hata işleme ve loglama özelliklerini yerleşik sunarak ölçeklenebilirlik ve kararlılık sağlıyor
Çalışma biçimi
-
Pipeline aşamaları
- 1. Sorgu verisini alma: Kullanıcının yakın dönem etkinlik geçmişi ve metadata'sı (ör. takip listesi) getiriliyor
- 2. Aday bulma: Aday gönderiler şu kaynaklardan aranıyor
- Thunder: Takip edilen hesapların (ağ içi) son gönderileri
- Phoenix Retrieval: Küresel corpus içinden makine öğrenimiyle keşfedilen gönderiler (ağ dışı)
- 3. Aday zenginleştirme (Hydration) için şu bilgiler kullanılıyor:
- Temel gönderi verileri (metin, medya vb.)
- Yazar bilgileri (kullanıcı adı, doğrulanma durumu)
- Video süresi (video gönderilerinde)
- Abonelik durumu
- 4. Ön puan filtreleri: Şu koşulları sağlayan gönderiler çıkarılıyor
- Yinelenenler
- Fazla eski olanlar
- İzleyicinin kendisine ait olanlar
- Engellenmiş/susturulmuş hesaplara ait olanlar
- Susturulan anahtar kelimeleri içerenler
- Daha önce görülmüş veya yakın zamanda sunulmuş olanlar
- Abone olunamayan içerikler
- 5. Puanlama yöntemi: Birden fazla puanlayıcı sıralı olarak uygulanıyor
- Phoenix Scorer: Phoenix transformer modeliyle makine öğrenimi tahmin sonuçlarını getiriyor
- Ağırlıklı puan hesaplayıcı: Tahmin sonuçlarını birleştirerek nihai alaka puanını üretiyor
- Yazar çeşitliliği puanlayıcısı: Çeşitlilik için aynı yazardan gelen tekrarların etkisini azaltıyor
- OON scorer: Ağ dışı içeriklerin puanını ayarlıyor
- 6. Seçim: Puan sırasına göre dizip en üstteki K adayı seçiyor
- 7. Seçim sonrası süreç: Aday gönderiler için nihai doğrulama yapılıyor
-
Puanlama ve sıralama
- Phoenix modelinin tahminleri ağırlıklı toplam yöntemiyle birleştiriliyor
- Olumlu davranışlara (beğeni, paylaşım vb.) daha yüksek ağırlık verilirken, olumsuz davranışlar (engelleme, şikayet vb.) puanı düşürüyor
-
İki aşamalı filtreleme
- Puanlama öncesi filtre: Yinelenenler, eşik değerden daha eski gönderiler, kullanıcının kendi gönderileri, görülemeyen ücretli içerikler, zaten görülmüş veya sunulmuş gönderiler, engelli hesaplar, susturulmuş anahtar kelimeler vb. kaldırılıyor
- Seçim sonrası filtre: Silinmiş gönderiler, spam gönderiler, şiddet içeren içerikler, aşırı rahatsız edici gönderiler ve aynı konuşma dizisinin birden fazla dalındaki tekrarlar kaldırılıyor
Temel tasarım ilkeleri
- Elle özellik mühendisliğinin kaldırılması; Transformer, kullanıcı davranışı dizilerinden doğrudan öğreniyor
- Adayların bağımsız değerlendirilmesi (Candidate Isolation) ile tutarlı puan üretimi ve daha kolay cache'leme
- Hash tabanlı embedding ile hem retrieval hem de ranking için embedding sorgularında birden fazla hash fonksiyonu kullanımı
- Çoklu davranış tahmini (Multi-Action Prediction) ile tek bir "alaka" puanı yerine birden fazla davranış için tahmin üretimi
- Modüler pipeline mimarisi
- Pipeline çalıştırma ve izlemeyi iş mantığından ayırıyor
- Bağımsız aşamaların paralel çalışmasını ve hatalara uygun şekilde müdahale edilmesini sağlıyor
- Yeni kaynaklar, hydration, filtreler ve puanlayıcıların kolayca eklenmesine olanak tanıyor
Lisans
2 yorum
"Rust %62,9"
트위터의 추천알고리즘을 오픈소스로 공개
Bu da bundan farklı bir şey mi acaba? Hafta sonu zaman ayırıp okumam gerekecek sanırım...