Öneri sistemi için basit bir öneri modeli

İlk olarak en kritik soruyu cevaplayalım: Öneri sistemi nedir?

Aşağıdaki üç açıdan cevap:

  • Ne yapabilir
  • Neye ihtiyacı var
  • Nasıl yapar

Birincisi, öneri sistemi ne yapabilir?

Öneri sistemi, sonunda kullanıcı (Kullanıcı) ile öğe (Öğe) arasında oluşturulacak bağlantıları bağlayabilir. önceden Bulmak.

Buradaki anahtar ilerleme kelimesidir Tavsiye sistemi, insanlar ve nesneler arasındaki bağlantıyı büyük bir ağdan önceden keşfetmeli ve bu bağlantının mümkün olduğu kadar erken kurulmasına yardımcı olmalıdır.

İkinci soru, neye ihtiyacı olduğu?

İnsanlar ve nesneler arasındaki bağlantıları keşfetmenin ön koşulu, halihazırda yeterli bağlantı olması ve ardından öneri sisteminin gelecekteki bağlantıları tahmin edebilmesidir.

Üçüncü soru, nasıl yapılır?

Pek çok yol var. Bu seride temel olarak makine öğrenimi anlatılıyor.

Artık öneri sisteminin ne olduğunu bildiğimize göre, bir sonraki soruya bakalım: Bir öneri sistemine ne zaman ihtiyacımız var?

Önceki üç husus, bir öneri sisteminin ne olduğunu ortaya koydu: Bağlantıları tahmin etmemiz gerekiyorsa ve zaten yeterli bağlantı varsa, o zaman öneri sistemi şu anda bir zorunluluktur.

Nicelleştirilmesi kolay olmayan noktalardan biri şudur: Yeterli bağlantı olup olmadığı nasıl tanımlanır? Her şeyden önce, insanlar ve nesneler arasındaki bağı hangi faktörlerin etkilediğini bilmeliyiz?

1. Birincisi doğal olarak öğe sayısıdır.Üründe manuel olarak ele alınabilecek çok az öğe varsa, kesinlikle kullanıcı tarafından üretilen çok fazla bağlantı yoktur, çünkü bağlantı sayısındaki darboğaz, inşaat için uygun olmayan öğe sayısıdır. Önerilen sistem.

2. İkincisi, kullanıcı ve öğe sayısının da belirli yollarla çok artmasıdır, ancak kullanıcılar ve öğeler arasındaki bağlantı çok azdır.Performans, kullanıcıların tutma ve geri dönüş ziyaretlerinin çok düşük olmasıdır.Şu anda bir öneri sistemine ihtiyaç yoktur. İlk bağlantı grubuna katkıda bulunana kadar, kullanıcıların kaybının nedenini bulmanın bir yolunu bulmalısınız.

Bir öneri sistemine ihtiyaç olup olmadığını belirlemek için basit bir formülümüz var:

Pay, eklenen bağlantıların sayısıdır ve payda, eklenen etkin kullanıcıların sayısı ve eklenen etkili öğelerin sayısıdır.

  • Artan bağlantı sayısı esas olarak artan aktif kullanıcı sayısı ve artan öğe sayısından kaynaklanıyorsa, değer küçük olacaktır ve öneri sistemine katılmak için uygun olmayacaktır;
  • Artan bağlantı sayısının yeni aktif kullanıcılar ve öğelerle çok az ilgisi varsa, bu, bağlantı sayısının kendiliğinden büyüme eğiliminde olduğu anlamına gelir ve bu süreci hızlandırmak için öneri sistemine katılmak uygun olur.

Şimdi en basit öneri sistemini tanıtmaya başlıyoruz: popülerliğe dayalı bir öneri modeli.

Popülerlik modeli

Öneri sistemindeki en temel öneri modeli: Popülerliğe dayalı öneri modeli Layman'ın terimleriyle, hangi içeriğin kullanıcıları çekeceği kullanıcılara tavsiye edilir.

Buradaki içeriği ölçmek için bir standart Popülerlik Ve öğelerin popülerliğini etkileyen iki faktör vardır:

  • Zaman: İşe gidip gelme saatlerinde, insanların diğer zaman dilimlerine göre manşet açma olasılığı daha yüksektir Doğal olarak, makalenin dikkati fazladır ancak bu, makalenin kalitesinin yüksek olduğunu göstermez.
  • Konum: Bu "konum" gerçek bir coğrafi konum değil, öğelerinizin bir hizmet veya web sitesinde görüntülendiği yerdir. Örneğin, çoğu arama motoru hizmetinde, birinci sıradaki öğe, ikinci ve sonraki öğelerden çok daha fazla dikkat çekecektir.

Bu nedenle kullanamayız Mutlak değer, ancak bir "oran" (Oran) kullanmalı veya belirli bir "olasılık" (Olasılık) hesaplamalıdır.

Uygulanabilir bir yol, tıklama oranını hesaplamaktır. Tıklama oranını matematiksel olarak modelliyorsanız, aslında bir öğenin "" olarak görüntülendikten sonra tıklanıp tıklanmadığını düşünebilirsiniz. Bernoulli Rastgele Değişken ", ardından tıklama oranının tahmini, bir Bernoulli dağılımının parametrelerini tahmin etme sürecine dönüşür.

Bernoulli parametre tahmini için maksimum olasılık tahminini kullanabiliriz. Bir tıklamanın olasılığının p olduğunu varsayarsak, aralarında n tıklama olan toplam N gösterim, gerçekleşme olasılığı şöyledir:

P = p ^ n * (1-p) ^ (N-n)

Yukarıdaki olasılığın her iki tarafındaki kütüğü alın

log (P) = nlog (p) + (N-n) log (1-p)

Türevi alın ve p = n / N olduğunda uç değeri alın.

Ancak öğenin N veya n'si 0 olduğunda, şu anda maksimum olasılıkla elde edilen p aslında çok doğru değildir.

Yani şu anda sahip olduğumuz sorun şudur: N veya n 0 olduğunda, maksimum olasılık tahmini bu öğelerin gerçek özelliklerini iyi yansıtmaz.

Çözümlerden biri, önceki bir dağıtım kullanmaktır, bu da Eşlenik Ön Dağıtım kavramı.

Bernoulli dağılımının eşlenik dağılımı, Bayes formülünü kullanan beta dağılımıdır ve temel formülü şöyledir:

Arka dağılım = Olabilirlik fonksiyonu * Önceki dağılım / P (X)

Önceki konjugatın bu kısmı için, önceki makalenin konu modelini kontrol edebilirsiniz: LDA Mathematical Foundation (https://www.zybuluo.com/zhuanxu/note/1016850), burada Beta dağılımının p'nin önceki dağılımını verdiğini biliyoruz. Bu kadar.

Başka bir çözüm de, tıklama oranını farklı dönemlere göre tahmin etmektir. Bu dönemdeki tıklama oranını daha doğru bir şekilde tahmin etmek için önceki dönemin tıklama oranını önceden bilgi olarak kullanabiliriz.

Benzerlik modeli

Popülerliğe dayalı öneri modelini tanıttıktan sonra, Benzer bilgilere dayalı öneri modeli , Bu tür model aynı zamanda İşbirlikçi filtreleme , Şu şekilde özetliyor:

Benzer kullanıcılar benzer tercihlere sahip olabilir ve benzer öğeler benzer kişiler tarafından tercih edilebilir.

Bu yüzden benzer kullanıcıları veya benzer öğeleri aramalıyız.

İşbirliğine dayalı filtrelemenin temel fikri, Verileri ödünç al Spesifik anlayış, A kullanıcısı yetersiz veriye sahip olduğunda, referans için kullanılabilecek B kullanıcısını bulabilir ve ardından A'yı iyileştirmek için B kullanıcısının verilerini kullanabiliriz.

İlke, bir kullanıcı türünü temsil ettiklerini düşünerek A ve B kullanıcısını birlikte "kümelememizdir". Daha fazla verinin elde edilebilmesi için tek bir kullanıcının modellemesini belirli bir kullanıcı türüne göre soyutladık.

İki ana ortak çalışma türü vardır:

  • Bellek tabanlı işbirliği
  • Kullanıcı işbirliği
  • Ürün koordinasyonu
  • Model tabanlı işbirliği

Hafıza işbirliğine dayalı olarak, odak hafızadır, her bir kişinin tükettiği öğeleri hatırlamak ve ardından ona tavsiye etmektir;

  • Kullanıcı işbirliği: size benzer insanlar neyi tüketti
  • Ürün işbirliği: tükettiğiniz ürünlere benzer ürünler nelerdir?

Bu nedenle, bellek tabanlı ortak çalışmanın odak noktası benzer kullanıcıları veya benzer öğeleri bulmaktır. Önce benzer kullanıcılara bakalım.

Kullanıcı işbirliği

Kullanıcı işbirliğinin arkasındaki fikir, kullanıcıları geçmiş davranışlarına göre kümelemek ve ardından aynı türden kullanıcıların ortak tercihlerine göre kullanıcılara öğeler önermektir.

Kullanıcı işbirliğinin temel formülü:

Yukarıdaki formülü yorumlayalım:

Formülün sol tarafında

İ öğesi için u kullanıcısının tahminini temsil eder, formülün sağ tarafı u kullanıcısı ve j kullanıcısı arasındaki benzerlik ağırlıklandırmasıdır,

U kullanıcısı ve j kullanıcısı arasındaki benzerliği gösterir,

İ öğesindeki j kullanıcısının derecelendirmesini gösterir.

Yukarıdaki formül ile gerçek üretimde kullanılıyorsa dikkat edilmesi gereken birkaç noktaya bakalım:

1. Kullanıcı vektörü öğelerle temsil edilir. Öğe sayısı büyükse, kullanıcı vektörünün boyutu çok yüksektir ve vektör benzerliğinin hesaplanması zaman alır

2. Herhangi iki kullanıcının benzerliğini hesaplamak gerektiğinden, tüm karmaşıklık

3. Her bir kullanıcı ve öğe arasındaki ilişkiyi hesaplamak için karmaşıklık

Yukarıdaki problemlerle ilgili olarak, github'ımdaki (https://github.com/zhuanxuhit/kaggle/blob/master/tencentAd/2-collaborative filtreleme sürümü.ipynb) kodun nasıl çözüldüğünü görebilirsiniz.Herkese hoş geldiniz yıldız.

Ürün koordinasyonu

Ürün koordinasyonu için temel formül aşağıdaki gibidir:

Önceki kullanıcı işbirliğinin temeli ile kolayca anlaşılabilir. Burada hatırlamamız gereken temel noktalar şunlardır:

  • Kullanıcı işbirliği Kullanıcı tabanı öğe sayısından çok daha büyük olduğu için tüm hesaplama maliyetleri yüksektir
  • Kullanıcı işbirliğinde, gerçekte kullanıcılar ve kullanıcılar arasında nispeten az sayıda ortak tüketici davranışı vardır, olsalar bile, bunlar genellikle popüler öğelerdir ve kullanıcı benzerliğinin hesaplanmasına çok az yardımcı olurlar.
  • Kullanıcı tercihleri öğelerin özelliklerine göre hızla değişiyor

Özetle: Öğe işbirliği, kullanıcının kaydettiği öğelere dayalı olarak bu öğelere en çok benzeyen öğeleri bulmaktır.

eğim bir algoritma

Eğimli bir algoritması, modelin öğe işbirliğinde çevrimiçi olarak güncellenememesi sorunuyla yüzleşmek için önerilmiştir.

Ana yenilik şunların tanıtılmasıdır:

1. İki öğe arasındaki boşluğun güven düzeyini temsil etmek için iki öğenin ortak kullanıcı sayısını tanıtarak

2. Model gerçek zamanlı olarak çevrimiçi olarak güncellenebilir

sonuç olarak

Bu makale iki öneri modelini tanıtmaktadır:

  • Popülerliğe dayalı öneri modeli
  • İçerik özelliklerine dayalı benzer bilgi ve öneri modeline dayalı öneri modeli

Bunların arasında, popülerliğe dayalı model basit ve etkilidir, bazı ön bilgilerle bazı soğuk başlangıç problemlerini çözebilirken, benzer bilgilere dayalı öneri modeli, gruplama yoluyla seyrek kullanıcıların ve öğelerin problemini çözmek için grubun bilgeliğinden tam olarak yararlanır. .

Küresel yatırımcıların "dünya trajedisi": Avrupa ve Amerika düştü, Trump kendini ayağından vurdu
önceki
Onur yönlendirme Pro2 yayınlandı: kendi geliştirdiği Lingxiao dört çekirdekli yonga, ilk sürüm 329 yuan
Sonraki
Akıllı öneri sisteminin veri ön işleme
Yangtze Nehri Deltası'nın entegrasyon eğilimi altında Shaoxing pirinç şarabı kültürünün dislokasyon gelişimi
Şanlı talih tarihine bir bakın, burası aynı zamanda bir "Askeri Tümen"! (Bölüm 2)
Yangtze Nehri Deltası'ndaki entegrasyon trendi altında Shaoxing pirinç şarabı kültürünün yerinden çıkma gelişimi
Daha az para harcayın! Bilgisayarı bir yaz için soğutmak için ipuçları burada ~
Honor V20 Charm Deniz Mavisi Kutudan Çıkarıldı Resim Turu: V-şekilli Aurora Doku
"Yazın al, al ve al" kullanımı kolay, pahalı ve uygun fiyatlı değil! Bu dört çevre birimini kontrol etmelisiniz!
Oyun sosyal açıdan yüksek ve geleneksel sosyal ağ endişe verici!
Kirin 980'in yeni amiral gemisi Honor V20 çıktı: Link Turbo ağı% 135 hız kazandı!
SAIC, araba paylaşım platformu model serisini genişletiyor: 10.000 elektrikli vagon katılıyor
Sürekli zaferden sürekli yenilgiye Tencent BAT'daki en endişeli kişi mi?
Basit ve yüksek değerli! 299 yuan metre ev aletleri ısıtıcı diyagramı ödülü
To Top