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

#smartcon2016 “Big Data, Connected World” İzlenimlerim

Merhabalar ,

31 Mayıs – 1 Haziran tarihlerinde gerçekleştirilen “Big Data, Connected World” , “IoT Day” ve “Start-up Day” olmak üzere 3 farklı konferansa katıldım . Konferanslar aynı zamanlarda paralel olarak devam ettiği için aralarından seçim yapmak cidden zor oldu


CjIBoihWYAACYni

Şimdi çok detaya girmeden genel olarak izlenimlerimi paylaşayım

Büyük veride cloud sistemlerin önemi : Startup standlarını gezerken dikkatimi çeken en önemli hususlardan bir tanesi cloud sistemlerin önemiydi . Genel olarak yeni iş fikri sahipleri big data sistemlerinin kurulumu ve takibiyle uğraşmak yerine , cloud sistemler (aws , mapr , cloudera .. ) kullanarak , tüm dikkatlerini yenilikçi fikirlere ve topladıkları verilerin analizlerine harcıyorlar

banner-advanced-personalization

Büyük veri analizinin önemi : Veriler çok faklı sistemlerden toplanabiliyor.Big data çözümleriyle bu veriler bir şekilde sistemde saklanabiliyor ancak bu verilerin önemini gösteren asıl nokta ise verilerin doğru bir şekilde analiz edilip , firmalara katma değer sağlayacak tahminler ve çözümler sunması .

Mesela İstanbul lokasyonlu bir analitik firması , verileri doğru analiz edip yaptıgı çıkarımlarla dünyaca ünlü bir giyim firmasının karlılık oranlarını büyük oranda yükseltmiş

Anlık yada yakın zamanlı analizlerin önemi : Topladığınız verilerle ne kadar anlık yada az gecikmeli analizler yapabiliyorsanız çözümleriniz o kadar fayda sağlar (real time or near real time)

Mesela bir alışveriş merkezinde kozmetik reyonunda dolaşırken , anında cep telefonunuzda kozmetik ürünleriyle ilgili indirim mesajı alabilirsiniz . Gerçeğe yakın bu analiz ise satış oranlarını önemli ölçüde arttırmaktadır


Features-RealTime-v01

Teknolojinin para tarafı : Eskiden bilim adamları çok ileri bilimsel deneylere yoğunlaşmışken , günümüzde bu çabanın bir kısmı , bir web sitesinin click oranının nasıl artırılacağına harcanıyor . Günümüzde sosyal medya firmalarında bilim adamları görmek çok şaşırtıcı olmamalı

Analizleri görselleştirmenin önemi : Analitik sonuçlarınızı çeşitli araçlarla görselleştirdiğiniz zaman sonuçlara daha tepeden bakabileceksiniz . Böylece firmanız için alacağınız kararlar daha doğru ve sonuç odaklı olacaktır



Sosyal medyanın gücü : Sosyal medyada yaptığınız her hareket aslında bir iz bırakmaktadır . İngiltere merkezli bir banka , kredi başvurunuzda tüm sosyal medya hesaplarınızı kontrol ederek , kredi çekip çekemeyeceğinize karar veriyor

Aslında şu ana kadar bahsettiklerim Big data ile yapılabileceklerin çok azı . Bunların dışında sağlık , tarım gibi alanlarda da çok farklı kullanım senaryoları mevcut


Bizi takip edebileceğiniz sosyal medya platformları

–> Facebook –> Linkedin  -> Twitter

Eğitimler için sitemizi takip edebilirsiniz

Apache Hadoop ile Neler Yapılabilir ?

Merhaba  ,

Apache Hadoop ile tanışmamın 2. yılında Hadoop ile basit anlamda neler yapılabileceğinden bahsedeceğim

Apache Hadoop  , büyük verileri saklamak ve işlemek için kullanılan Java ile yazılmış açık kaynak kodlu bir kütüphanedir .

Şimdi Hadoop ile neler yapabileceğimizden bahsedelim . Aslında Hadoop un kullanım alanları verdiğim örneklerden çok daha fazla . Fakat basit örneklerle ne amaçla kullanılabileceği hakkında fikir sahibi olalım ;

  • Web uygulamanızdan üretilen logları Hadoop içerisindeki HDFS (Hadoop Distributed File System) sisteminde saklayabilirsiniz. Bu verileri klasik veritabanı sisteminde de saklayabilirsiniz fakat veriler milyarlar düzeyinde olabileceği için Hadoop üzerinden saklamak ve işlemek daha doğru bir yöntemdir
  • HDFS sistemindeki logları Hadoop içerisinde bulunan MapReduce sistemi sayesinde analiz edebilirsiniz . MapReduce paralel işlem yeteneği ile verilerin hızlı bir şekilde analiz edilmesini sağlar

  • Alışveriş sitenizde en çok aranan anahtar kelimeleri(keyword) bulabilirsiniz . En çok aranan kelimelere göre alışveriş sitenizde düzenlemelere gidebilirsiniz.
  • Uygulama sunucunuzdaki log ları Hadoop ile analiz ederek sunucunuzda güvenlik problemlerine yol açabilecek istekleri analiz edebilirsiniz
  • Web sitenizdeki kullanıcıların davranış analizini yapabilirsiniz . Bunu tahminleyebilmek için tek bir kullanıcıdan bile bir çok veri toplamak gerekir
  • Milyarlarca mobil arama kayıtlarını Hadoop üzerinde saklayarak , bu veriler üzerinde analiz yapabilirsiniz
  • Araç takip sisteminiz varsa , tüm verileri Hadoop üzerinde saklayabilir sonrasında ise faydalı analizler yapabilirsiniz . Mesela İstanbulda trafik en çok hangi noktalarda ve hangi saatlerde tıkanıyor gibi analizler yapabilirsiniz

 


Bizi takip edebileceğiniz sosyal medya platformları

–> Facebook –> Linkedin  -> Twitter

Eğitimler için sitemizi takip edebilirsiniz

Walmart Büyük Veri(Big data – hadoop ) teknolojilerini kullanarak satış oranlarını nasıl arttırdı ?

Bu bölümde  büyük verilerin analiz edilerek , satış rakamlarının nasıl artırılabileceğini inceleyeceğiz . Örnek olarak  Amerikanın  en büyük perakende zincirlerinden bir tanesi olan Walmart ı inceleyeceğiz  .

Walmart  , günlük olarak yaklaşık 2.5 petabyte dan fazla veriyi 250 den fazla makinaya sahip Hadoop cluster üzerinde saklar ve analiz eder . Bu analizler Walmart ın satışlarının önemli ölçüde artmasını sağlamıştır

Şimdi bunlardan birkaçını inceleyelim ;

  • Birlikte alınan ürünler analiz edilerek tavsiye sistemi geliştirilmiştir.  Alışveriş sitelerinde bir ürünü incelerken  , “Bu Ürüne Bakanlar, Bunlara da Baktılar” , “Bu Ürünü Alanlar , Bunları da Aldılar” gibi tavsiyeler görebiliriz

  • Bazı ilginç sonuçlar ise gözden kaçmamış . Mesela Amerika’da yaşanan kasırga olaylarından sonra pop kek satışlarında azımsanamayacak bir artış yaşanmış . Sonuç olarak Walmart kasırga öncesi pop kek gibi ürünleri kasaların yanına koymaya başlamıştır
  • Bireysel tüm müşteriler takip edilerek (aldığı ürünler , yaşadığı bölge  , beğendiği ürünler )  kişisel bir alışveriş deneyimi oluşturuluyor . Bu deneyimlere göre size tavsiyeler sunuluyor

banner-advanced-personalization

  • Sosyal medya üzerinde trend olan yeni ürünler mağazalarda daha çabuk raflarda yerini almaktadır
  • Kargo ücretlendirme politikası büyük veri analizlerine göre şekillendirilip , ücretsiz kargo için gerekli tutar belirlenir
  • Eğer yakınınıza bir hediye alacaksanız Walmart , hediye alacağınız kişinin sosyal medya hesaplarından ilgi alanlarına göre kendi mağazasından hediyeler önerebilir

shopycat

Görüldüğü gibi bir mağazanın topladığı tüm veriler değerlidir ve bu veriler doğru bir şekilde analiz edilip kullanılırsa , karlılık  artırılabilir

Kaynak : How Big Data Analysis helped increase Walmart’s Sales turnover?


Bizi takip edebileceğiniz sosyal medya platformları

–> Facebook –> Linkedin  -> Twitter

Eğitimler için sitemizi takip edebilirsiniz

 

Apache Pig ile Hadoop Programlama

Merhaba ,

Bu bölümde büyük verilerin işlenme yöntemlerinden birisi olan Apache Pig hakkında bilgi vereceğiz

Apache Pig büyük verileri işlemek için kullanılan açık kaynak kodlu bir kütüphanedir . Apache Pig ile geliştirilen kodlar arka planda Hadoop MapReduce job larına dönüştürülür .

 

Pig-Architecture

Aslında Hadoop MapReduce job larını Java ile geliştirebiliriz fakat Java ile MapReduce geliştirmek daha maliyetlidir . Bu yüzden Apache Pig geliştirme kolaylığı açısından bir tercih nedeni olabilir

Apache Pig  projelerinizi  Cloudera , Hortonworks , Microsoft Azure HDInsight .. gibi büyük veri platformlarınızda çalıştırabilirsiniz

 

 

Apache Pig ile Hadoop Programlama öğrenmek istiyorsanız alttaki siteden devam edebilirsiniz . Eğitimleri takip ederek Hortonworks platformu üzerinde Apache Pig ile büyük verileri işleyebilecek temel yöntemler hakkında bilgi sahibi olabilirsiniz

Programming Hadoop with Apache Pig

 


Bizi takip edebileceğiniz sosyal medya platformları

–> Facebook –> Linkedin  -> Twitter

Eğitimler için sitemizi takip edebilirsiniz

HDInsight Hadoop Eğitimleri

Hadoop Online Eğitim

Merhabalar ,

Büyük verilerin saklanması  , işlenmesi ve analiz edilmesiyle ilgili EDX içerisinde Microsoft tarafından sunulan ücretsiz bir eğitim serisinden bahsedeceğiz

Microsoft Büyük veri platformuna HDInsight ile giriş yapmıştı . Bu platfom , bünyesinde Hadoop , Oozie , Hive , Pig , Spark , Storm gibi api leri barındırarak büyük veri(big data) ile çalışmamıza olanak sağlıyor

Eğer büyük veri  ile ilgili teknik kısımlara giriş yapmak istiyorsanız aşağıdaki eğitimleri alabilirsiniz .

Seri 1  : Processing Big Data with Hadoop in Azure HDInsight

Bu eğitim serisinde Büyük veri ekosisteminin genel yapısı anlatılmaktadır . Pig ve Hive  kullanılarak verilerin nasıl analiz edileceği ve bu analizlerin Oozie ile zamanlanmış (schedule) bir şekilde nasıl çalıştırılacağı anlatılmaktadır

Seri 2 : Implementing Real-Time Analysis with Hadoop in Azure HDInsight

Bu eğitim serisinde verilerin Storm ve Spark ile anlık olarak (Real time) nasıl işleneceği anlatılmaktadır

Seri 3 : Implementing Predictive Solutions with Hadoop in Azure HDInsight

Bu eğitim serisinde ise mevcut veriler kullanılarak  , ileriye dönük  nasıl tahminleme yapılabileceği anlatılmaktadır  . Bu eğitimde makina öğrenmesi (machine learning ) konularına giriş yapılmaktadır

Eğitimlerin belirli bir başlangıç tarihleri var ancak eğitimleri kaçırsanız bile geçmişe yönelik eğitimleri takip edebilirsiniz


Bizi takip edebileceğiniz sosyal medya platformları

–> Facebook –> Linkedin  -> Twitter

Eğitimler için sitemizi takip edebilirsiniz