Tavsiye Sistemleri Nasıl Bir Şey?
Tavsiye sistemleri, kullanıcılara öneri sunmak için tasarlanmış algoritmalar ve teknolojilerdir. Bu sistemler, birçok farklı alan için kullanılabilmektedir. Örneğin, e-ticaret siteleri, müzik ve video akışı platformları, sosyal medya siteleri, kitapçılar ve daha birçok yerde kullanılabilmektedir.
Tavsiye sistemleri, kullanıcıların ilgi alanlarına, geçmiş alışverişlerine, beğenilerine, izleme geçmişlerine, arama sorgularına ve diğer davranışlarına dayanarak, onlara özelleştirilmiş öneriler sunar. Bu sayede kullanıcılar, kendileri için ilgi çekici ürünleri, içerikleri veya hizmetleri keşfedebilirler.
Tavsiye sistemleri, genellikle üç temel bileşenden oluşur: kullanıcı verisi, ürün verisi ve algoritma. Kullanıcı verisi, kullanıcıların profil bilgilerini, önceki satın alma ve tarama geçmişlerini, tercihlerini ve davranışlarını içerir. Ürün verisi ise ürün özelliklerini, kategorilerini, puanlarını, fiyatlarını ve diğer bilgileri içerir. Algoritma ise, kullanıcı ve ürün verilerini analiz ederek, önerileri oluşturur.
Tavsiye Sistemleri, 4 başlık altında sınıflandırılabilir:
- Simple Recommender System(Basit Tavsiye Sistemleri)
- İş bilgisi ya da basit tekniklerle yapılan genel öneriler
- Kategorinin en yüksek puanları, trend olanlar, efsaneler vs - Association Rule Learning (Birliktelik kuralı öğrenimi)
- Birliktelik analizi ile öğrenilen kurallara göre ürün önerileri - Content Based Filtering (İçerik temelli filtreleme)
- Ürün benzerliğine göre öneriler yapılan uzaklık temelli yöntemler. - Collaborative Filtering (İş Birlikçi Filtreleme)
- Topluluğun kullanıcı veya ürün bazında ortak kanaatleri yansıtan yöntemler
- User Based
- Item Based
- Model Based(Matrix Factorization)
Simple Recommender System (Basit Tavsiye Sistemleri)
Simple recommender system, tavsiye sistemlerinin en temel ve basit hallerinden biridir. Genellikle, e-ticaret sitelerinde kullanılan bu sistem, kullanıcılara popüler ürünler veya en çok satılan ürünler gibi genel öneriler sunar. Simple recommender system, kullanıcının daha önceki alışveriş geçmişini, tıklama davranışlarını veya diğer kişisel verilerini kullanmaz. Bu sistem, tüm kullanıcılara aynı ürün önerilerini sunar.
Simple recommender system, algoritması oldukça basit olan bir sistemdir. Öncelikle, kullanıcılara en çok satılan veya popüler ürünlerin listesi sunulur. Bu ürünler genellikle, tüm kullanıcıların ilgisini çekebilecek genel kategorilerde yer alan ürünlerdir. Daha sonra, kullanıcılar bu ürünler arasından seçim yapabilirler.
Simple recommender system, daha karmaşık tavsiye sistemlerine göre daha az doğru sonuçlar üretir. Ancak, genellikle başlangıç seviyesi kullanıcılar için yeterli ve kolay anlaşılır bir sistemdir. Ayrıca, simple recommender system, ürün veya hizmetlerin genel popülerliğini artırarak, satışları da artırabilir. Bu nedenle, birçok e-ticaret sitesi, simple recommender system gibi basit tavsiye sistemleri kullanmaktadır.
Association Rule Learning (Birliktelik kuralı öğrenimi)
Association Rule Learning (ARL), veri madenciliği alanında kullanılan bir yöntemdir. Bu yöntem, birlikte sık görülen öğeler arasındaki ilişkiyi belirlemek için kullanılır. ARL, birlikte sık görülen öğelerin kombinasyonlarından oluşan kuralları çıkararak, bu kuralların ne kadar güçlü olduğunu ölçer.
ARL yöntemi, birliktelik analizi ve apriori algoritması gibi teknikleri kullanarak, veriler arasındaki ilişkileri belirler. Birliktelik analizi, iki veya daha fazla öğe arasındaki ilişkiyi belirlerken, apriori algoritması, büyük veri kümelerinde birlikte sık görülen öğeleri tespit ederek, bu öğelerin kombinasyonlarını oluşturur.
Apriori Algoritması
Apriori algoritması, birliktelik kuralı öğrenimi (association rule learning) yöntemlerinden biridir ve büyük veri kümelerinde birlikte sık görülen öğeleri tespit ederek, bu öğelerin kombinasyonlarını oluşturur. Bu algoritma, veri kümesindeki öğelerin tek tek incelenmesi yerine, öncelikle yalnızca sık görülen öğelerin belirlenmesiyle işlem yaparak, verimli bir şekilde çalışır. Bu sayede, özellikle market sepeti analizi gibi uygulamalarda kullanılır ve pazarlama stratejileri veya öneri sistemleri gibi birçok farklı alanda kullanılabilir.
Apriori algoritmasında bilinmesi gereken üç temel metrik vardır.
1. Support(X, Y) = Freq(X,Y)/N : X ve Y’nin birlikte gözükmesi / tüm olasılık
2. Confidence(X, Y) = Freq(x,y)/freq(x), X satın alındığında Y’nin Satılma olasılığı.
3. Lift(X, Y) = Support(X, Y) / (Support(x) * Support(y)): X Satın alındığında Y’nin satın alınma olasılığı Lift değeri kadar artar.
Bira Bebek Bezi Örneği
Bira ve bebek bezi, birbirleriyle pek de alakalı gibi görünmeyen iki üründür. Ancak Walmart, market sepeti analizi yaparak bu iki ürün arasındaki ilişkiyi ortaya çıkmıştır.
Walmart’ın yaptığı bu araştırma, bebek bezi ve bira satışları arasındaki ilişkinin, genellikle genç erkeklerin hafta sonu aktiviteleriyle ilgili olduğunu ortaya koydu. Walmart, bu bilgiyi kullanarak, bebek bezi satın alan müşterilere özel bira kampanyaları yürüterek, müşteri memnuniyetini artırmayı ve satışları artırmayı hedefledi.
Bu örnek, market sepeti analizi ve birliktelik kuralı öğrenimi yöntemlerinin, işletmelerin müşteri davranışlarını anlamalarına ve buna göre daha etkili pazarlama stratejileri geliştirmelerine yardımcı olduğunu göstermektedir. Bu tür veri analizi yöntemleri, işletmelerin müşterilerinin ihtiyaçlarını ve beklentilerini daha iyi anlamalarına yardımcı olarak, rekabet avantajı sağlayabilirler.
Walmart’ın bebek bezi ve bira satışları arasındaki ilişkiyi tespit etmek için yaptığı çalışma, bu tür bir analiz yapmanın önemini vurgulamaktadır. Bu tür analizler, birçok farklı sektörde kullanılarak, işletmelerin müşterilerinin davranışlarını anlamalarına yardımcı olabilir ve daha etkili pazarlama stratejileri oluşturmalarını sağlayabilir.
Content Based Filtering (İçerik temelli filtreleme)
Content Based Filtering (İçerik Temelli Filtreleme), öneri sistemleri alanında yaygın olarak kullanılan bir yöntemdir. Bu yöntem, kullanıcının beğenilerine ve tercihlerine göre, benzer içeriğe sahip diğer ürünlerin önerilmesi işlevini yerine getirir.
İçerik Temelli Filtreleme, kullanıcının daha önceki tercihlerine ve davranışlarına dayalı olarak, öneri yapar. Bu yöntemde, ürünlerin içeriği veya özellikleri analiz edilerek, benzer içerik veya özelliklere sahip olan diğer ürünler önerilir. Bu yöntem, daha önce tercih edilen ürünlerin özelliklerine benzer ürünleri önererek, kullanıcının ilgisini çekebilecek diğer ürünleri keşfetmesini sağlar.
Örneğin, bir müşteri, belirli bir filmi izledikten sonra, aynı yönetmenin diğer filmlerinin veya benzer türdeki filmlerin önerilmesini bekleyebilir. İçerik Temelli Filtreleme, bu müşterinin beğendiği filmdeki özellikleri (örneğin, tür, yönetmen, oyuncular vb.) analiz ederek, benzer özelliklere sahip diğer filmleri önerir.
Peki bu benzerlik nasıl hesaplanır?
- Kosinüs Benzerliği: Bu yöntem, iki vektör arasındaki açıyı hesaplayarak benzerliği ölçer.
- Pearson Korelasyonu: Bu yöntem, iki değişken arasındaki doğrusal ilişkiyi ölçmek için kullanılır. Pearson Korelasyonu, iki değişkenin birbirine olan ilişkisini -1 ile +1 arasında bir skorla ifade eder. 1'e yakın bir skor, iki değişken arasındaki pozitif ilişkiyi gösterirken, -1'e yakın bir skor, iki değişken arasındaki negatif ilişkiyi gösterir.
- Euclidean Distance: Bu yöntem, iki vektör arasındaki uzaklığı hesaplayarak benzerliği ölçer. İki vektör arasındaki mesafe ne kadar kısa ise, benzerlik skoru o kadar yüksek olur.
Bu yöntemler arasında seçim yaparken, kullanılacak verinin özellikleri, ölçeği ve dağılımı gibi faktörler dikkate alınmalıdır.
Peki Benzerlik kısmı okey de burada matematiksel işlemler var, biz text veri tipine nasıl matematiksel formüller uygulayacağız? Derseniz hemen o kısma geçelim.
Yukarıda 3 farklı film ve film açıklaması bulunmakta. Bu açıklamalarda geçen kelimeleri vectorize ederek diğer filmler arasındaki benzerliklerini hesaplayıp birbirine yakınlıklarını ortaya çıkararak aralarındaki ilişkiyi bulmuş olacağız.
“Vektörize etmek mi o ne?” Derseniz bir görselle göstereyim.
Yukarıdaki örnekte görüldüğü üzere cümlelerde geçen kelimeleri vectorize ederek sayısal bir forma dönüştürmüş olduk. Bu vektörize etme işlemi için 2 farklı yöntem kullanabiliriz. Bunlar;
- Count Vector:
Count Vector, bir metin belgesindeki kelimelerin sayısını hesaplamak için kullanılan bir tekniktir. Bu teknik, belgeyi bir vektöre dönüştürür ve her bir kelimeyi belgedeki frekansı kadar temsil eder. Bu vektör, genellikle makine öğrenmesi algoritmalarında kullanılan girdi olarak kullanılır. Count Vector’ün oluşturduğu vektör boyutu, belgedeki benzersiz kelime sayısı ile aynıdır. Count Vector, basit bir yöntem olmasına rağmen, bir belgenin içeriği hakkında bazı temel bilgiler sağlayabilir ve metin madenciliği ve doğal dil işleme alanlarında yaygın olarak kullanılır. - TF-IDF(Term Frequency-Inverse Document Frequency):
TF-IDF, bir belgedeki her kelimenin önemini belirlemek için kullanılan bir ölçüttür. Bu ölçüt, bir belgedeki kelime sıklıklarını (TF) ve bu kelimenin diğer belgelerdeki sıklıklarını (IDF) birleştirir. Böylece, bir kelimenin bir belgedeki sıklığı ne kadar yüksek olursa, o belgedeki önemi o kadar yüksek kabul edilir. Ancak, belirli bir kelimenin diğer belgelerle olan ilişkisi veya önemi hakkında da bilgi sağlayarak, diğer belgelerde daha az sıklıkla geçen bir kelimenin belirli bir belgedeki önemini artırabilir. Bu nedenle, TF-IDF, belge içindeki bir kelimenin önemini belirlerken kullanılan bir ölçüttür.
İş Birlikçi Filtreleme (Collaborative Filtering)
İş birlikçi filtreleme (Collaborative Filtering), bir kullanıcının ilgisini çekebilecek ürünleri ya da içerikleri, diğer kullanıcıların benzer tercihlerine dayanarak tavsiye etmek için kullanılan bir tekniktir. Bu teknik, kullanıcı davranışlarından yararlanarak, kullanıcılar arasındaki benzerlikleri ölçer ve benzer ilgi alanları olan kullanıcıların, diğer kullanıcılara göre benzer ürünleri tercih etme eğiliminde olduklarını varsayar. İş birlikçi filtreleme, iki farklı yöntemle gerçekleştirilir:
- Benzer Kullanıcılar Yöntemi (User-based Collaborative Filtering)
- Benzer Ürünler Yöntemi (Item-based Collaborative Filtering)
Benzer Kullanıcılar Yöntemi (User-based Collaborative Filtering)
Benzer Kullanıcılar Yöntemi (User-based Collaborative Filtering), iş birlikçi filtrelemenin bir yöntemidir. Bu yöntemde, bir kullanıcının tercihleri, benzer tercihlerde bulunan diğer kullanıcıların tercihleriyle karşılaştırılır. Bu sayede, kullanıcıların tercihlerindeki benzerlikler ölçülür ve bu benzerliklere dayanarak, bir kullanıcının ilgisini çekebilecek ürünler ya da içerikler önerilir.
User-based Collaborative Filtering algoritmasında, kullanıcılar benzerliklerine göre gruplara ayrılır ve bu gruplar içindeki diğer kullanıcıların tercihleri incelenerek, öneri listesi oluşturulur. Örneğin, bir müzik uygulamasında bir kullanıcının tercihleri, diğer kullanıcıların benzer tercihleriyle karşılaştırılır ve benzer özelliklere sahip olan şarkılar önerilir.
Bu yöntemde, kullanıcıların tercihleri, daha önceki deneyimlerine dayanarak belirlenir. Bu nedenle, yeni kullanıcılara öneri yapmakta zorluk yaşanabilir. Ayrıca, bu yöntemdeki verimlilik, kullanıcı sayısı arttıkça azalabilir ve performans sorunları oluşabilir.
Bu yöntem, özellikle e-ticaret siteleri ve müzik/video platformları gibi kullanıcı tabanlı platformlarda sıkça kullanılmaktadır.
Benzer Ürünler Yöntemi (Item-based Collaborative Filtering)
Ürün Tabanlı İş Birlikçi Filtreleme (Item-based Collaborative Filtering), iş birlikçi filtrelemenin bir yöntemidir. Bu yöntemde, benzer özelliklere sahip ürünler ya da içerikler birbirleriyle ilişkilendirilir ve bir kullanıcının tercihleri, benzer özelliklere sahip diğer ürünlerin tercihleriyle karşılaştırılır. Bu sayede, bir kullanıcının ilgisini çekebilecek ürünler ya da içerikler önerilir.
Item-based Collaborative Filtering algoritmasında, ürünler ya da içerikler benzerliklerine göre gruplara ayrılır ve bu gruplar içindeki diğer ürünlerin tercihleri incelenerek, öneri listesi oluşturulur. Örneğin, bir e-ticaret sitesinde bir kullanıcının bir ürünü satın aldığı takdirde, benzer özelliklere sahip diğer ürünler önerilebilir.
Bu yöntemde, kullanıcıların tercihleri yerine ürünlerin benzerlikleri esas alındığı için, yeni kullanıcılara da öneri yapmak mümkündür. Ayrıca, verimlilik açısından da kullanıcı sayısı arttıkça performans düşüşü yaşanmaz.
Item-based Collaborative Filtering yöntemi, özellikle e-ticaret siteleri, müzik/video platformları ve kitap satışı gibi alanlarda sıkça kullanılmaktadır.
Model Based(Matrix Factorization)
Model Tabanlı Filtreleme yöntemi, büyük boyutlu verilerde etkili olan bir iş birlikçi filtreleme yöntemidir. Bu yöntem, kullanıcıların tercihleri ve ürün özellikleri arasındaki ilişkileri modellemek için matris faktörizasyonu yöntemini kullanır.
Matris faktörizasyonu, bir matrisi iki veya daha fazla matrise ayırmak için kullanılan bir matematiksel tekniktir. Bu yöntem, büyük boyutlu verilerdeki seyrekliği azaltır ve özellikler arasındaki ilişkileri modellemeye yardımcı olur. Matris faktörizasyonu, kullanıcıların tercihlerini ve ürün özelliklerini daha küçük boyutlu, daha anlamlı ve daha kolay işlenebilir parçalara ayırır.
Örneğin, Netflix’in kullanıcılara önerdiği filmleri düşünelim. Netflix, her kullanıcının tercihlerini ifade eden bir matris oluşturur. Bu matrisin satırları, kullanıcıları temsil ederken, sütunları filmleri temsil eder. Bu matrisin hücreleri, kullanıcının bir filmin derecesini ifade eder.
Matrix Factorization, bu matrisi iki farklı matrise ayırır: kullanıcının tercihlerini ifade eden matris ve filmlerin özelliklerini ifade eden matris. Özellik matrisi, filmlerin türlerini, oyuncularını, yönetmenlerini, vb. ifade eder. Bu matrisin satırları, filmleri temsil ederken, sütunları özellikleri temsil eder.
Kullanıcı matrisi ve özellik matrisi, birbirleriyle çarpılarak yeni bir matris elde edilir. Bu yeni matris, kullanıcılara önerilecek filmleri ifade eder. Yani, bir kullanıcının sevdiği filmlerin özelliklerine benzer olan filmler bu listede yer alır. Kullanıcının beğenileriyle benzer özelliklere sahip filmler önerildiği için, öneriler daha uygun ve kişiselleştirilmiş olur.
Matrix Factorization yöntemi, Collaborative Filtering yöntemleri arasında en etkili olanlardan biridir.
Bu yazımda Recommender System konusunu teorik olarak anlattım. Uygulama için
Recommendation Systems: ARL With Apriori
Recommendation Systems: Content-Based TF-IDF
Kaggle projelerimi inceleyebilirsiniz.
Bir sonraki yazımda görüşmek üzere. Takipte Kalın :)
LinkedIn hesabım → ramazan-ozdemir