Öneri Sistemleri 101

Merhaba VBO okuyucuları!

Teknolojinin gelişmesiyle birlikte alışkanlıklarımız da değişmekte. Mağazalardan alışveriş yapmak yerine e-ticaret üzerinden ihtiyaçlarımızı satın alıyoruz, TV izlemek yerine Netflix izliyoruz ya da Spotify üzerinden müzik dinliyoruz. Bu şirketlerin bu kadar gözde olmasının sebepleri arasında iş yapılarının öneri sistemlerine dayanması gösterilebilir. Farkettiyseniz, sadece kendi dizi/müzik tercihleriniz yerine Netflix size özel film/dizi tavsiyelerinde bulunuyor. Spotify her hafta sizin müzik tarzınıza göre dinleme listesi hazırlıyor. E-ticaret sitelerinde gezinirken ya da ürüne geldiğinizde size uygun olabilecek birçok ürün önerisinde bulunuluyor.

Arka planda işleyen mantığı anlamak adına bazı sorular akla geliyor:

-Beni nereden tanıyor da bu önerilerde bulunuyor?

-Ürüne tıkladığımda anında benzer ürünler geliyor, bu kadar hızlı nasıl çalışıyor bu sistem?

-Arka planda nasıl bir öneri algoritma yapısı var?

Bu gibi soruların cevapları için bir yazı dizisi hazırladım. Bu yazıda biraz daha genel bilgilerle başlayıp, diğer yazıda daha teknik kısımlarından bahsetmeye çalışacağım.

Tanım ile başlayalım: Öneri/ Tavsiye Sistemleri nedir? Ne işe yarar?

Uygulama/site kullanıcılarının ilgi alanlarına göre, sonraki hareketlerini tahmin ederek uygulama kullanımını sürdürmek amacıyla düzenlenen algoritma yapılarıdır. Öneri motorları, tüketicilerin seçimlerini öğrenerek modeller oluşturur ve onların ihtiyaçları ve ilgileriyle ilişkili sonuçlar üretir. Uygulanacak yöntemler basitçe, kişinin önceki hareketlerine göre ya da benzer kişilerin hareketlerinden yola çıkılarak düzenlenebilir.

Öneri Sistemlerinin Faydaları

Kişiselleştirme – Kullanıcılara özel tahminlerde bulunulması sebebiyle, kişiselleştirilmiş bir deneyim sunulur. Kişileri kullanıma yönlendirmesi sebebiyle iyi sonuçlar verir.  

Gelir- Doğru kullanıldığında, uygulamalar iyi bir trafik ve gelir kaynağı olabilir.

Müşteri memnuniyeti – Doğru öneriler ile kişiler kullanıma yönlendirilir ve kişinin belki de hiç keşfedemeyeceği ürünler sunulmuş olur.

Öneri Sistemi Çeşitleri Nelerdir?

Güncel olarak bir çok öneri sistemi çeşidi mevcuttur, bu yazıda bunların bazılarına değineceğiz.

İçerik Bazlı Sistemler (Content-Based Filtering Systems) : Basitçe, ürünün/ hizmetin içeriğine göre benzer içerikli ürünün önerilmesidir. Örneğin, mavi bir gömlek aldıysanız, gömleğin farklı renginin önerilmesi ya da elektronik müzik seven biriyseniz bir sonraki şarkı önerisinin yine elektronik müzik altyapılı bir şarkı olması örnek olarak verilebilir. Yani, Tarkan ve Mustafa Sandal’ın benzer içerikte müzik yaptığını biliyorsak, içerik bazlı filtreleme yöntemine göre kullanıcı bir Tarkan şarkısı dinledikten sonra Mustafa Sandal şarkısı önerilebilir. (Burada kullanılan kişiler Türkçe Pop özelinde önde gelen isimler olduklarından akılda rahatça yer etmesi sebebiyle örnek olarak verilmiştir. 😊)  Burada önemli olan nokta, içeriğe ait bilgilerin detaylı bir şekilde bilinmesidir. E-ticaret özelinde örnekleyecek olursak, bir telefon aldığınızda telefon kılıfı önerisinin yapılması, bu ürünlerie ait içeriklerin iyi bir şekilde tanımlanması ile gerçekleşebilir. Kullanılacak yöntem mevcut probleme göre değişir.

İşbirliği Bazlı Sistemler (Collaborative Filtering Systems): İşbirliği bazlı sistemler kullanıcı ve /veya öğe  benzerliklerini analiz eder. Temeli benzer kullanıcıların benzer tercihler yapacağı varsayımına dayanmaktadır. İşbirlikçi filtreleme tekniği, kullanıcılar tarafından öğeler için bir tercihler veritabanı (kullanıcı-öğe matrisi) oluşturarak çalışır. Daha sonra, önerilerde bulunmak için profilleri arasındaki benzerlikleri hesaplayarak kullanıcıları alakalı ilgi ve tercihlerle eşleştirir. ‘Buna alanlar bunu da aldı, bunu beğenenler bunu da beğendi, buna bakanlar buna da baktı’ gibi öneriler verilebilir. İstatistiksel ya da matematiksel olarak benzerlikleri bulmak için Cosine Benzerliği ve Pearson Korelasyon Katsayısı teknikleri yaygın olarak kullanılır. Model bazlı olarak ise, Boyutsallık Azaltma tekniği, Birliktelik Kuralları, Karar Ağaçları , Yapay Sinir Ağları ve Kümeleme gibi teknikler kullaılabilir.

 Bu sistem kullanıcı ve öğe bazlı olarak ayrılır:

– Kullanıcı bazlı filtreleme (User-to-user filtering):  Kullanıcı bazlı filtreleme, kullanıcı zevklerinin benzerliğini dikkate alan bir sistemdir. İki kullanıcı ortak ürünler almışsa, daha sonra alınan bir ürünü diğer kullanıcının da alma ihtimaline dayanır. Kullanıcıların skorlarına göre, Pearson Korelasyonu ya da kosinüs benzerliği yöntemleri sonucunda tahmin gerçekleştirilir.

– Öğe bazlı filtreleme (Item-to-item filtering): Öğe-öğe filtreleme algoritması kullanıcı puanlarından gelen ürün benzerliklerini analiz eder. Puanlama yerine tıklama/ görüntüleme de bir değişken olarak kabul edilebilir. Bu sistemin amacı, kullanıcının aldığı/görüntülediği ürünlerin benzerliği gözetilerek diğer benzer kullanıcılara da önerilmesini sağlamasıdır. Bu yöntemde ise, ürünler komşu Kabul edilerek, Pearson Korelasyonu ya da kosinüs benzerliği yöntemleriyle ürün benzerlikleri bulunur.

Demografi Bazlı Sistemler (Demographic-based recommendation system): Bu sistem kullanıcılara demografik sınıflara dayalı önerilerde bulunmayı amaçlamaktadır. Uygulaması kolay ve pratiktir. Kadınlara önerilecek ürünler, belirli yaş gruplarına önerilecek ürünler gibi tahminler yapılabilir. Burada kullanıcı puanlamaları, kullanıcının hareketleri göz önünde bulundurulmayıp, kullanıcıya sorulan demografik sorular sonrası çıkan benzerliklere göre öneriler sunulur.

Popülarite Bazlı Öneri Sistemleri (Popularity Based Recommendation Systems): Kullanıcının kişisel tercihlerine dayanmayan bir sistemdir. Genel olarak tercih edilen ürün/hizmet/ uygulamalar önerilir. Kişinin ilgi alanlarını genişletmek, uygulama tercihlerini yaygınlaştırmak için bir fırsat olabilir.

Hibrit Öneri Sistemleri (Hybrid Recommendation Systems): İçerik bazlı sistemler ve işbirliği bazlı sistemlerin beraber kullanıldığı sistemlerdir. Bu şekilde, bir sistemin eksikliği, diğer sistem ile tamamlanabilir.

Örneğin, Spotify haftalık öneri listeleri çıkartıyor. Burada, benim dinlediğim müziklere benzer şarkılar ve benzer kullanıcıların dinlediği şarkıları birleştirip öneri sunuyor.

Öneri sistemi basamakları

  • Veri toplama: Öneri sistemlerinde kullanılmak üzere, belirgin (implicit) ve belirsiz (explicit) veriler kullanılır. Belirgin veriler için, üyenin sipariş geçmişi, sitedeki hareketleri örnek olarak verilebilir. Belirsiz veriler ise, üyenin puanlaması, yorumları gibi verilerdir. Bu iki veri tipi, bir araya getirilerek kullanılabilir. Bunlara ek olarak, dışarıdan data desteği sağlanabilir. Hava durumu, döviz kuru bilgiler de önemli olabilir.
  • Datayı tutma: Buradaki işlem şirketin büyüklüğü ve buna bağlı olarak verinin büyüklüğüne göre değişir. Bazı işlemler için SQL veritabanları yeterli olacakken, bazı işlemler için Cloud gibi sistemlerin kullanılması ve veriyi depolayıp işlerken Hadoop, Spark altyapılarının kullanılması elzem olabilir. Bu şekilde tek bir makineden işlem yapmak yerine, bir işlemi dağıtıp depolamak daha verimli olabilir.
  • Veriyi analiz etme: Bu kısımda ise, yapılacak işlemin gerçek zamanlı (real-time), gruplanarak (batch), gerçek zamanlıya yakın (near real-time) seçenekleriyle analiz edileceğine karar verilmelidir. Gerçek zamanlı analiz, datanın geldiği an işlenmesi, gruplanarak işlenmesi datanın periyodik olarak işlenmesi, gerçek zamanlıya yakın işlenmesi ise her birkaç dakikada ya da saniyede işlenmesi olarak tanımlanabilir. Bazen gerçek zamanlı işlemler, sistemleri yorabilir, ya da o kadar kritik olmayabilir. Bu durumda periyodik çalışan, mesela işlemin günlük çalışması yeterli olabilir.
  • Datayı filtreleme (algoritma uygulaması): Bu kısımda, yukarıda bahsettiğimiz yöntemlerin uygulaması yapılır. İçerik bazlı, işbirliği bazlı gibi yöntemler kullanılır ve gerekli algoritmalar uygulanır.

Öneri Sistemi kurulurken karşılaşlabilecek zorluklar nelerdir?

Cold start (Soğuk başlangıç): Bu problem yeni gelen bir kullanıcıya öneri sunma zorluğudur. Bu işbirlikçi yaklaşımın temel problemlerinden biridir. Yeni bir kullanıcıya popüler ürünler gösterilerek ya da yeni bir öğe için bazı kural bazlı filtreler eklenilerek önüne geçilebilir.

Scalability (Ölçeklenebilirlik): Veri setinin büyüklüğü ve hangi tür öneri sisteminin uygulanacağı gibi kararlar alınırken maliyet, iş gücü  ve yeterli teknik bilgiye sahip olma konularına dikkat edilmelidir. Bu problem bir çok yolla çözülebilir. Örneğin, veri seti çok büyük olabilir, bu durumda Hadoop gibi büyük veri sistemlerine geçiş yapılaiblir. Ya da örneklem üzerinde modeller/kurallar oluşturulabilir. Bir başka çözüm yolu ise, modeli aşamalara bölüp çalıştırmak olabilir.

Interpretability (Yorumlanabilirlik): İçerik bazlı sistemlerin içeriğinin anlaşılması biraz daha kolay iken, işbirlikçi sistemlerin yapısı biraz daha karışık olabilir.

Exploitation-Exploration (Sömürü-Keşif): Tavsiye sistemleri, geçmiş kullanıcı öğesi tercih verilerini geçmemelidir. İlk olarak, eğitim verilerinin önceki önerilerden tamamen etkilenmesinden kaçınılmalıdır. Farklı sitelere öneriler konulabilir ya da rastgele öneriler yapılabilir.

Bir öneri sistemin iyi çalışıp çalışmadığı nasıl ölçümlenir?          

Öncelikle öneri sistemlerinin doğru konumlandırılması çok önemlidir. Görünmeyen ya da tıklanmayan alanlarda gösterim yapılıdığını düşünürsek, ne kadar başarılı bir algoritma kullanılırsa kullanılsın, sonucu başarılı olmayabilir. Örneğin mobilde daha kişisel bir deneyim sunulduğundan öneri sistemleri ön plana çıkacaktır.

Model başarısı metrikleri dışında, kullanıcıya A/B testi olarak sunulması bir yöntemdir. Basitçe, bu yöntem ile kullanıcılar iki gruba ayrılır. İki yerine çoklu test de yapılabilir. Sonrasında hazırlanan iki algoritma bu farklı kitlelere gösterilir. Daha çok oylanan ve kullanılan algoritma daha başarılı olarak kabul edilip uygulamaya alınabilir.

Bunun dışında ‘Multiarm Bandit’ yöntemi de kullanılabilir. Bu yöntem ile, zamanın % 10’unda, gelen trafik iki versiyon arasında eşit olarak ayırılır. Kalan %90’lık zaman aralığında, trafiği en iyi performans gösteren versiyona yönlendirilir. Bu şekilde dönüşüm oranlarının artırılması planlanır. Bu şekilde iyi performans gösteren versiyonun istatistiksel olarak daha anlamlı sonuçlara varması beklenir.

Bu yazımın Öneri Sistemleri’ne giriş niteliğinde olmasını amaçladım. Keyifli okumalar dilerim!

Kaynakça:

https://www.bluepiit.com/blog/classifying-recommender-systems/

https://www.sciencedirect.com/science/article/pii/S1110866515000341

Yazar Hakkında
Toplam 9 yazı
Sena Merter Dereli
Sena Merter Dereli
Pazarlama & Müşteri Analitiği Araştırmacısı / n11.com'da Pazarlama Analitiği Yöneticisi
Yorumlar (Yorum yapılmamış)

Bir cevap yazın

E-posta hesabınız yayımlanmayacak.

×

Bir Şeyler Ara