# Öneri sistemi
Öneri sistemi ya da tavsiye sistemi (bazı yerlerde 'sistem' yerine 'platform' ya da 'motor' kullanılır) bir kullanıcının bir öğeye vereceği 'değerlendirme' ya da 'tercih' miktarının öngörülmesini hedefleyen bir bilgi filtreleme sistemidir.
Önerici sistemler son yıllarda fazlaca yaygınlaşmış ve birçok farklı uygulamada kullanılmıştır. En popüler uygulamaları filmler, müzikler, haberler, kitaplar, bilimsel makaleler, arama sorguları, sosyal medya etiketleri ve genel anlamda ürünler üzerine yapılmıştır.


## Genel bakış.
Önerici sistemler iki farklı yöntemden birini kullanarak bir öneriler listesi üretir – işbirlikçi filtreleme ya da içerik-bazlı filtreleme. İşbirlikçi filtreleme yaklaşımları kullanıcının geçmiş davranışları (geçmişte satın alınan ya da seçilen ya da değerlendirme yapılan öğeler) ile birlikte diğer kullanıcıların yaptığı benzer kararları kullanarak bir model oluşturur. Bu model daha sonra kullanıcının ilgisini çekebilecek öğelerin öngörülmesi için kullanılır. İçerik-bazlı filtreleme yaklaşımları ise öğelerin bir dizi karakteristiğinden yola çıkarak benzer karakteristiklere sahip diğer öğeleri önerir. Bu iki yaklaşım sıklıkla bir arada kullanılır (bkz. Hibrit Önerici Sistemler).
İşbirlikçi ve içerik-bazlı filtreleme sistemleri arasındaki farklar iki popüler müzik önerme sisteminin karşılaştırmasıyla gösterilebilir – Last.fm ve Pandora Radyo.
  - Last.fm, kullanıcının düzenli olarak dinlediği parçaları gözlemler ve bunları diğer kullanıcıların dinleme alışkanlıklarıyla karşılaştırarak bir önerilen şarkılar radyosu oluşturur. Kullanıcının kütüphanesinde yer almayan ama benzer zevklere sahip diğer kullanıcılar tarafından sıkça dinlenen şarkılar da Last.fm tarafından çalınabilir. Kullanıcıların davranışlarını kullanması sebebiyle bu yaklaşım bir işbirlikçi filtreleme örneğidir.
  - Pandora bir şarkının ya da sanatçının özelliklerini (Music Genome Project tarafından sağlanan 400 özelliğin bir alt kümesi), benzer özelliklere sahip müziklerin çalındığı bir radyo başlatmak için kullanır. Kullanıcı geri bildirimi kullanılarak radyonun sonuçları iyileştirilir. Kullanıcının "beğenmediği" şarkıların özelliklerini zayıflatır ve "beğendiği" şarkıların özelliklerini güçlendirir. Bu bir içerik-bazlı yaklaşım örneğidir.
Bu sistem tiplerinin her birinin kendi güçlü ve zayıf yanları vardır. Yukarıdaki örnekte, Last.fm isabetli tahminler yapabilmek için bir kullanıcıdan büyük miktarda veri toplamalıdır. Bu durum soğuk başlangıç problemi olarak bilinir ve işbirlikçi filtreleme sistemlerinde sıkça rastlanır. Pandora başlangıç için çok az bilgiye ihtiyaç duyar ama çok daha kısıtlı bir kapsama sahiptir (mesela, sadece başlangıç şarkısına benzer öneriler yapabilir).
Önerici sistemler, kullanıcıların kendilerinin bulamadıkları öğeleri keşfetmelerine yardımcı olarak arama algoritmalarına alternatif oluşturur. İlginç bir şekilde, öneri sistemleri yaygın olarak, alışılmamış tipte verileri indeksleyen arama motorları olarak gerçekleştirilir.
Önerici sistemler veri madenciliği ve makine öğrenmesi alanlarında etkin bir araştırma konusudur. Önerici sistem araştırmalarına ev sahipliği yapan konferanslardan bazıları RecSys, SIGIR ve KDD'dir.


## Doğruluğun ötesinde.
Önerici sistemler üzerindeki araştırmalar genellikle doğruluğu en yüksek önerme algoritmalarını bulmaya amaçlar. Ancak, önemli olan bir takım başka faktörler de vardır.
  - Ayrışma – Kullanıcılar birbirine daha az benzeşen öğeleri tercih edebilir, örn. farklı sanatçılardan öğeler.
  - Önerme sürekliliği – Bazen yeni öğeler önermektense daha önce önerilmiş öğelerin tekrar gösterilmesi daha işlevseldir.
  - Gizlilik – Önerici sistemler sıklıkla kullanıcıların gizlilik kaygılarını dikkate almalıdır.
  - Kullanıcı demografisi – Kullanıcıların kimlikleri öneri memnuniyetlerini etkileyebilir.
  - Gürbüzlük – Kullanıcı katılımı olan öneri sistemleri sahtekârlığa bağışıklı olmalıdır.
  - Rastlantısallık – Rastlantısallık "önerilerin ne kadar şaşırtıcı olduğu"'dur.
  - Güven – Eğer güven vermiyorsa önerici sistemin kullanıcı nezdinde bir değeri olmaz. Kullanıcılara öneri yöntemlerinin nasıl çalıştığı açıklanarak güven kazanılabilir.
  - Etiketleme – Kullanıcı tatmini önerilerin nasıl etiketlendiğine göre değişiklik gösterebilir.


## Performans ölçütleri.
Önerici algoritmaların etkililiğinin belirlenmesinde değerlendirmeler önemlidir. Yaygın olarak kullanılan metrikler mean squared error (MSE) ve root mean squared error (RMSE)'dir. Kesinlik ve duyarlık ya da DCG gibi bilgi erişim metrikleri önerici yöntemin kalitesini belirlemek için kullanışlıdır. Ancak, klasik değerlendirme ölçütlerinin çoğu fazlaca eleştirilmektedir. Sıklıkla, çevrimdışı olarak adlandırılan bu değerlendirme yöntemlerinin sonuçları kullanıcı tatmini ile örtüşmez.


## Zorluklar.
Öneri sistemlerinin geliştirilmesinde karşılaşılan çeşitli zorluklar:
  - Soğuk başlangıç sorunu: Sisteme yeni bir kullanıcı veya öğe eklendiğinde, sistemde bu kullanıcı veya öğe ile ilgili kayıtlı bilgi olmadığından öneriler hesaplanamaz. Bu sorun soğuk başlangıç sorunu olarak adlandırılır ve özellikle işbirlikçi filtreleme yönteminde ortaya çıkan bir sorundur. Bu sorunun üstesinden gelmek için sistem herhangi bir şekilde yeni eklenen kullanıcı veya öğe hakkında bilgi edinmeye çalışır ya da içerik bazlı filtreleme yönteminden faydalanılır.
  - Seyrek veri sorunu: Öneri sistemleri çoğuklukla temelde matris işlemlerine dayanmaktadır. Sistemdeki kullanıcı ya da öğe sayısı az olduğunda veya sistemde yeterince kullanıcı verisi olmadığında matristeki veriler çok seyrek olur. Bu da seyrek matris işlemleri yapmayı gerektirir. Özellikle milyonlarca öğe ve kullanıcı barındıran sistemlerde seyrek veri sorunu daha da belirginleşir.
  - Anındalık sorunu: Bazı öneri sistemleri dinamik veri ile çalışmaktadır. Örneğin haber öneri sistemlerinde, sistem her yeni haber geldiğinde güncellenmeli, kullanıcılara eski haberler sunulmaktan kaçınılmalıdır. Anındalık sorunu hem performans, hem de öneri kalitesi açıcından zorluk yaratmaktadır.
  - Kullanıcı beğeni ve ilgi alanlarının değişmesi sorunu: Kullanıcıların beğenileri ve ilgi alanları zamanla değişebilmektedir. Özellikle uzun vadeli kullanıcılar göz önüne alındığında sistemin bu kişisel değişikliklere uyum sağlaması gerekmektedir.
  - Ölçeklenebilirlik: Tüm çevrimiçi servisler gibi öneri sistemleri de kalabalık kitleleri hedef almaktadır. Öneri sisteminin çalıştığı alana göre (müzik, film, haber vs.) anındalık sorunu ile birleştiğinde ölçeklenebilirlik üstesinden gelinmesi önemli bir sorun haline gelmektedir.
  - Düzensiz içerik: Özellikle metin tabanlı öğelerin tavsiye edilmesinde makine tarafından okunabilir ve yapısal olan içeriğin önemi büyüktür. Düzensiz ve yapısız olan içeriklerde (örneğin film özeti, haber metni vs) içeriğin sistem tarafından analiz edilip, içeriğin anlaşılması zorluk yaratmaktadır.
  - Gri koyun sorunu: Bu sorun özellikle işbirlikçi filtreleme yönteminde ortaya çıkmaktadır. İşbirlikçi filtreleme kullanıcılar arasındaki benzerlikleri bularak benzer kullanıcılara benzer öğeler önerir. Ancak bazı kullanıcılar özeldir ve diğer kullanıcılarla tutarlı ortak beğenilere sahip değildir. Bu gibi durumlarda sadece işbirlikçi filtreleme kullanmak dezavantajlıdır.
  - Rastlantısallık (aşırı uzmanlık) sorunu: Öneri sistemleri zaman içerisinde aşırı uzmanlaşabilir ve sürekli geçmişte önerilen öğelerle çok benzer öğeleri önermeye başlar. Sistem aynı öğelerden kaçınmalı ve yeni öneriler keşfedebilmelidir.
  - Kullanıcı gizliliği sorunu: Öneri sistemleri kullanıcıların beğeni ve ilgi alanlarının sistem tarafından öğrenilmesi üzerine kurulmuştur. Ancak bu durum kullanıcılar hakkında hassas bilgilerin sistemde saklanması ve analiz edilmesi anlamına gelmektedir. Bu ise, hem kullanıcı gizliliği konusunda sorunlara yol açabilmekte hem de kullanıcıların öneri sistemlerine güveni konusunda soru işaretlerine sebep olabilmektedir. 2018 yılında Avrupa genelinde yürürlüğe giren kişisel verilerin korunması yönetmeliği (GDPR) sonrası, kişisel verilere dayanmayan öneri sistemlerinin geliştirilmesi konusunda çalışmalar başlatılmıştır.
  - Komşu geçişkenliği sorunu: Önerilerin hesaplanmasında kullanılan matrisin seyrek olmasına (bkz. seyrek veri sorunu) ek olarak, var olan verinin birbirinden farklı öğelere yoğunlaşması sonucu oluşan bir sorundur. Bu durumda benzer tercih ve beğenilere sahip olan kullanıcılar, farklı öğeler hakkında verilere sahip oldukları için aralarındaki benzerliğin sistem tarafından bulunabilmesi mümkün değildir.
  - Eşanlamlılık sorunu: Özellikle metin tabanlı öneri sistemlerinde (içeriğin anlaşılması için metin analizi yapılması gereken sistemlerde) eşanlamlı kelimeler zorluk çıkarmaktadır.