Tavsiye Sistemleri Nedir? -Hybrid Tavsiye Sistemi Projesi Yapalım

Merve Tatlıdil
5 min readJun 24, 2021

Merhaba, bu hafta tavsiye sistemleri ve türlerini yazmak istedim. Ek olarak da Hyrid Tavsiye Sistemi konusunda yaptığım projeden de bahsedeceğim. Tavsiye Sistemleri gelişen teknoloji sayesinde son yıllarda giderek daha popüler hale gelmiştir. Özellikle pandemi döneminde hepimiz e-ticaret sitelerine yöneldik. E- ticaret sitelerinin de bu yöntemi fazlasıyla kullandığını biliyoruz. Bu sitelerden bir tanesine almak istediğiniz ürünü yazıp araştırmaya başlarsınız. Sitede gezindikçe gezinme geçmişiniz ve incelediğiniz ürünlerin benzeri ürünleri alt sayfalarda görmeye başlarsınız. Örneğin en son alışverişimi Hepsiburada’dan yapmıştım. Monitör araştırması yapıyordum. Alacağım ürüne karar verdim. Sepete atarken aşağıda “Sıklıkla birlikte alınanlar” bölümünde Monitör Altı Yükseltici Sehpa çıktı. Önceden aklımda vardı almak ama o anda unutmuştum. Sitenin önerisiyle bu ürünü da almam gerektiğini hatırladım ve siteden iki sipariş vermiş oldum.

Web teknolojilerinin gelişmesi ve Web üzerinde bulunan bilgi miktarının artışı sebebiyle insanların verecekleri kararların öneriler ile desteklenmesi önemli bir konu haline gelmektedir. Web ortamında kullanıcılara bu desteği onlar gibi düşünen diğer kullanıcıların yapmış oldukları seçimlere göre vermek iyi bir strateji olabilmektedir. Günümüzde birçok insanın kullandığı Youtube, Netflix, Spotify Instagram gibi markalar ; e- ticaret siteleri tavsiye sistemlerini kullanarak müşterilerine çeşitli önerilerde bulunmaktadır.Tavsiye sistemleri kullanıcılara artan bilgi yığını içinden en faydalı olanların seçilmesi ve bilgiye erişimi kolaylaştırma konularında destek sağlamaktadır. Doğru pazarlama stratejileri kullanıcıların ihtiyaçlarını anlayıp memnuniyetini arttırırken, şirketlerin de satışlarının artmasını sağlar.

Tavsiye Sistemleri Nedir?

Kullanıcının ilgisine göre, sonraki davranışlarını tahmin edip kullanıcılara önerilerde bulunan yapılarıdır.

Tavsiye sistemleri, öneriler için gerekli bilgileri nerden elde ediyor?

Şirketlerin büyük verilere sahip olduğunu biliyoruz. Bu verilerden faydalı içerikleri filtreleyerek kullanıcıya en doğru ürünleri sunar. Tercih edilen yönteme göre, kişinin önceki hareketi ya da benzer kişilerin davranışlarından öneri sunulabilir.

Tavsiye Sistemi Çeşitleri Nelerdir?

Simple Recommender Systems (Basit Tavsiye Sistemleri) : İş bilgisiyle basit tekniklerle yapılan genel önerilerdir.Kategorilerin en yüksek puanlıları, trend olanlar sunulabilir. Tercihi bilinmeyen yeni müşterilerde yararlı olabilir.

Association Rule Learning (Birliktelik Kuralı Öğrenimi) : Birliktelik analizi ile öğrenilen kurallara göre ürün önerileri verilir. Bu konuda daha önce paylaştığım yazıma buradan ulaşabilirsiniz.

Content Based Filtering (İçerik Temelli Filtreleme) : Basitçe ürün içeriklerinin benzerlikleri üzerinden tavsiyeler geliştirilir diyebiliriz. İçerik tabanlı filtreleme yaklaşımları, kullanıcılar tarafından değerlendirilen belgelerin veya öğelerin analizlerini yaparak kullanıcılar ile ilgili bir profil elde eder. Elde edilen profil, kullanıcı ilgilerinin bir örneği olarak kabul edilir. Tavsiye sunma süreci temelde, içerik niteliklerinin kullanıcı profili ile eşleştirilmesinden oluşur. Örneğin, polisiye kitap seven bir kişiyseniz sonraki kitap önerisinin polisiye türünde olması örnek verilebilir.

Kaynak : https://www.dezyre.com/article/recommender-systems-python-methods-and-algorithms/413

Collaborating Filtering (İş Birlikçi Filtreleme) : Topluluğun kullanıcı ya da ürün bazında ortak kanaatlerini yansıtan yöntemlerdir. Tavsiye sistemlerinde en popüler ve yaygın olarak uygulanan teknik olarak kabul edilir. İşbirlikçi filtreleme yöntemleri kullanıcıların birbirleri ve ürünler ile olan etkileşimlerini değerlendirme ve etiketleme gibi yollar ile doğrudan elde edebilirken indirme, okuma, tıklama ve indirme gibi eylemler ile dolaylı olarak elde edebilmektedir. Kullanıcı tabanlı işbirlikçi filtreleme yöntemleri, örtüşen kullanıcı etkileşimlerinden ve aynı öğeler için yapılmış benzer değerlendirmeleri kullanarak oluşturduğu kullanıcı profillerine göre öneriler sunmaktadır. Öğe tabanlı işbirlikçi filtreleme yöntemleri ise kullanıcıların yapmış oldukları seçimlere dayalı olarak bir öğe kümesi belirlemekte ve kullanıcıların ilgisini çekebilecek benzer ürünleri öneri olarak sunmaktadır

Kendi içinde farklı çeşitleri bulunmaktadır :

  • User-Based : Kullanıcı benzerlikleri üzerinden öneriler yapılır.
  • Item-Based :Ürün benzerlikleri üzerinden öneriler yapılır.Örnek : D & R Web sitesi önerisi

Hybrid Filtering (İş Birlikçi Filtreleme) : Hibrit öneri sistemlerde içeriğe yayalı ve işbirliğine dayalı filtreleme sistemleri beraber kullanılır. Böyle iki sistem türünün de eksik tarafları en aza indirilerek en iyi performansı elde edilir. Spotify, hybrid sistemlere iyi bir örnektir.

Tavsiye sistemi türlerini biraz tanıdığımıza göre Veri Bilimi Okulu Bootcamp’te yaptığım projemden bahsetmeye başlayabilirim. Veri setimiz bir film veri seti.İçerisinde filmler ile birlikte bu filmlere yapılan derecelendirme puanlarını barındırmaktadır.Seçilen tüm kullanıcıların en az 20 filme oy verdiğini de biliyoruz. Seçeceğimiz bir ID(kullanıcı) için item-based ve user-based recommender yöntemlerini kullanarak tahmin yapacağız. İlk olarak iki ayrı dosyada bulunan movie ve rating bilgilerini left join yaparak birleştirelim.

Veri setinde 27 bin küsür film vardı. Projede amacımız her kitleye tavsiye edebileceğimiz herkesin ilgilenebileceği filmler bu yüzden az beğenilen filmlerle işimiz yok. Daha objektif ve gerçekçi yorum yapabilmek için 1000'den az yoruma sahip olanları değerlendirmiyorum. Bir sonraki aşamada user_movie_df dataframe film — kullanıcı tablosunu oluşturmuş oluyorum. Aslında bütün mantık bu tablodan yürüyor. Bu tablodan kullanıcıların ilgisini inceliyor olacağız.

Veri setinde bulunan kullanıcılardan bir tanesini rastgele seçiyorum (user id’si = 108170). Bu kullanıcı için önerilerde bulunuyor olacağım. Kullanıcıya öneride bulunmak için önce tercihlerini bilmeliyim, kullanıcının izlediği filmleri movies_watched’a attık. Sonra da kullanıcının izlediği filmlere göre veri setini indirgedik.

Bizim kullanıcımızla aynı filmleri izleyen diğer kullanıcıların verisine ve id’lerine erişelim. Burada yine insiyatif alarak seçtiğim kullanıcı ile %60'dan fazla film benzerliği olan kişiler gelsin, bu kişilerle benim kullanıcımın zevkleri daha benzerdir diyorum. Yüzde konusunda fikirler farklı olduğu için seçim kişiye kalmış.

2326 kişi kaldı inceleyeceğim. Dikkat ettiyseniz filtreleyerek gidiyoruz. Amacımız bu aşamada öneri yapılacak kullanıcı ile en benzer davranışlı kullanıcıları belirlemek. Bunun için seçtiğimiz kullanıcı ve diğer kullanıcıların verilerini bir araya getireceğiz. Aralarındaki ilişkiyi görmek için korelasyon df’ini oluşturacağız.Bunların sonunda en benzer bullanıcıları,(Top users) seçtiğim kullanıcıyla yüzde 65 ve üzeri korelasyona sahip kullanıcılar, bulacağız.

Buraya kadar yaptıklarımızı ifade etmek gerekirse ; bir kullanıcı belirledik, bu kullanıcının sevdiklerini belirledik. Kullancıyla benzer zevklerdeki kişileri alalım ama bunun da bir kısıtı olsun : zevk benzerlikleri %60'dan fazla olanlarla ilgilenmeye devam edelim edik. En son oluşturduğumuz top_users_ratings df’si : kullanıcı id, seçtiğim kullanıcı ile bu kişinin korelasyonu, film id ve rating bilgilerini içermekte.

Son aşamamız weighted average recommendation score hesaplama. Vereceğimiz tavsiyede bu değer etkili olacak.

İlk olarak kullanıcı bazlı tavsiyemizi yapalım ve belirlediğimiz kullanıcıya 5 tane film önerisi verelim :

Item bazlı tavsiyemiz :

Bir sonraki projede görüşmek üzere. Sağlıkla kalın!

Kaynak :

Proje kodlarına buradan erişebilirsiniz.

--

--