Ana içeriğe geç
  1. Yazılarım/

Kişiselleştirilmiş İçeriği Güçlendirmek: Momspresso'nun Yeni Öneri Motoru

Günümüzün içerik açısından zengin dijital dünyasında, doğru içeriği doğru kullanıcıya doğru zamanda sunmak çok önemlidir. Momspresso’nun veri hattı üzerindeki önceki çalışmalarımızı temel alarak, şimdi milyonlarca Momspresso kullanıcısı için içeriği kişiselleştiren güçlü bir öneri motoru uyguladık. Bu sistemi nasıl oluşturduğumuza bir göz atalım.

Zorluk #

Momspresso’nun ihtiyaç duyduğu öneri sistemi şunları yapabilmeliydi:

  1. Büyük hacimlerde kullanıcı etkileşim verisini işlemek
  2. Kişiselleştirilmiş makale önerilerini hızlı bir şekilde oluşturmak
  3. Kullanıcılar içerikle etkileşime girdikçe önerileri gerçek zamanlı olarak güncellemek
  4. Milyonlarca kullanıcı ve makaleyi yönetecek şekilde ölçeklenmek

Çözümümüz: Spark Destekli Öneri Motoru #

Daha önce oluşturduğumuz veri hattından yararlanan çok bileşenli bir öneri sistemi tasarladık:

1. Veri Oluşturma Komut Dosyaları #

Veri hattımızdaki olay deposunu kullanarak, öneri modelimiz için eğitim setini oluşturan komut dosyaları oluşturduk. Bu, modelimizi eğitmek için gerçek kullanıcı etkileşim verilerini kullanmamıza olanak tanır.

2. Model Eğitimi için Spark ML-lib #

Model eğitimi için Spark ML-lib tabanlı bir sistem kurduk. Şu anda, sadece 3-4 günlük veriyle hızlı bir şekilde eğitilebilen işbirlikçi filtreleme kullanıyoruz. Bu, modelimizi sık sık güncellememize olanak tanıyarak önerilerimizin güncel kalmasını sağlıyor.

3. Öneri Web Servisi #

Kullanıcı kimliklerine dayalı makale önerileri sunan bir web servisi oluşturduk. Modelin belleğe yüklenmesinin yüksek gecikmesini ele almak için Redis kullanarak bir önbelleğe alma stratejisi uyguladık. Bu, önerilerimiz için hızlı yanıt sürelerini garanti eder.

4. Öneri Silme Servisi #

Önerileri güncel tutmak için, görüntülenen makaleleri bir kullanıcının önerilerinden kaldıran bir servis uyguladık. Bu servis Kafka’ya bağlanır ve görüntüleme olaylarını dinleyerek önerileri gerçek zamanlı olarak günceller.

Öneri Motorumuzun Temel Özellikleri #

  1. Kişiselleştirme: İşbirlikçi filtreleme kullanarak, benzer kullanıcıların davranışlarına dayalı özelleştirilmiş öneriler sunabiliriz.

  2. Gerçek Zamanlı Güncellemeler: Sistemimiz, kullanıcılar içerikle etkileşime girdikçe önerileri güncelleyerek ilgili kalmasını sağlar.

  3. Ölçeklenebilirlik: Spark ve Redis kullanımı, sistemimizin büyük miktarda veri ve kullanıcıyı verimli bir şekilde işlemesine olanak tanır.

  4. Esneklik: Modüler tasarımımız, gelecekte öneri algoritmasını kolayca değiştirmemize veya yeni özellikler eklememize olanak tanır.

Uygulama ve Sonuçlar #

Öneri motorunu Momspresso’nun platformuna entegre etmek kolay oldu. Üretim web sitesindeki beslemelerden biri için API olarak yeni öneri web servisimizi kullanmak üzere Nginx’te küçük bir yapılandırma değişikliği yaptık.

İlk sonuçlar umut verici oldu:

  • Artan Etkileşim: Kullanıcılar platformda daha fazla zaman geçiriyor, oturum başına daha fazla makale okuyor.
  • Gelişmiş Keşif: Kullanıcılar daha geniş bir içerik yelpazesi buluyor ve etkileşime giriyor.
  • Gelişmiş Kullanıcı Memnuniyeti: İlk geri bildirimler, kullanıcıların kişiselleştirilmiş önerileri değerli bulduğunu gösteriyor.

İleriye Bakış #

Öneri motorumuzu geliştirmeye devam ederken, birkaç gelecek geliştirme konusunda heyecanlıyız:

  1. Çoklu Model Yaklaşımı: Farklı içerik türleri veya kullanıcı segmentleri için farklı öneri modelleri uygulamak.
  2. İçerik Tabanlı Filtreleme: Özellikle yeni veya niş içerik için önerileri iyileştirmek amacıyla makale özelliklerini dahil etmek.
  3. A/B Test Çerçevesi: Farklı öneri stratejilerini kolayca test etmek için bir sistem oluşturmak.

Öneri motorumuzu sürekli geliştirerek, Momspresso’nun kullanıcılarına daha fazla değer sunmasına, onları meşgul etmesine ve daha fazla kişiselleştirilmiş içerik için geri gelmelerini sağlamasına yardımcı oluyoruz.

Veri hattını ve öneri motorunu Momspresso’nun içerik stratejisi için uygulanabilir içgörüler elde etmek için nasıl kullandığımızı tartışacağımız bir sonraki yazımız için bizi takipte kalın!