Apache Spark ile Tavsiye Motoru(Recommendation Engine) nasıl yazılır ?

Merhabalar ,

Bu yazımda Tavsiye Motoru(Recommendation Engine) hakkında genel bilgiler vereceğim , sonrasında ise Apache Spark(Java tabanlı) ile geliştirilmiş örnek bir proje paylaşacagım .

Günlük hayatta web sitelerinde dolaşırken size sürekli öneriler sunulur

netflixRecommendations

– Sinema içerikli sitelerde ilginizi çekebilecek filmler listesi
– Müzik sitelerinde ilginizi çekebilecek albüm listesi

Genel amaç satış yada gösterim oranlarını artırmaktır.

Aslında tavsiye sistemlerinde genel mantık şu şekildedir . Web siteleri sizin filmlere , kitaplara , müziklere verdiğiniz puanlamaları takip ederek size benzeyen kişiler üzerinden modelleme çıkartır . Bu modelleme üzerinden de size bu ürünler tavsiye edilir

recomm

Bu sistemi geliştirebilmek için iki uzmanlık alanında çalışma yapmanız gerekiyor (Big data Engineering + Data Science) . Zaten profesyonel firmalar Big Data ekiplerinde mühendislik geçmişi olan Big Data Engineer ve İstatistik , Matematik geçmişi olan Data Scientist rollerini çalıştırıyorlar .

data-science-retreat

Tavsiye Motorunu geliştirirken kullandığım sistem ise Apache Spark ve ALS(Alternating Least Squares) algoritması . Aslında ALS algoritması Apache Spark içerisinde build edilmiş bir halde geliyor ve sizin bu algoritmayı tekrar geliştirmenize gerek yok . Sadece nasıl çağrılacağını bilmeniz yeterli .

Genel mimari ;

indir

    • Loglar anlık olarak mesajlaşma sistemi üzerinden gelmektedir . Kafka tercih edilebilir fakat yaptıgım örnekte logları local dosya sisteminden okudum
    • Gelen loglar üzerinden ALS algoritması ile bir model oluşturulur ve test edilebilir
    • Oluşturulan model Apache Spark ile tüm kullanıcılar için çalıştırılır ve kullanıcıların beğenebilecekleri filmler çıkartılabilir
    • Sonuçlar veritabanı sistemine yazdırılıp , buradan çeşitli sorgulamalar yapılabilir .

 

Kod geliştirme kısmını scala ile daha önce yazılmış bir örneği inceleyip Java ya çevirdim . Kod detaylarını aşağıdaki linklerden inceleyebilirsiniz

Building a Recommendation Engine with Apache Spark (Java) Part 1
Building a Recommendation Engine with Apache Spark (Java) Part 2
Building a Recommendation Engine with Apache Spark (Java) Part 3


Bizi takip edebileceğiniz sosyal medya platformları

–> Facebook –> Linkedin  -> Twitter

Eğitimler için sitemizi takip edebilirsiniz

Please follow and like us: