Alma

Bir yerleştirme modeliniz olduğunu varsayalım. Bir kullanıcıya hangi öğeleri önereceğinize nasıl karar verirsiniz?

Sunum sırasında, bir sorgu verildiğinde aşağıdakilerden birini yaparak başlarsınız:

  • Matris faktörleştirme modelinde sorgu (veya kullanıcı) yerleştirme statik olarak bilinir ve sistem bunu kullanıcı yerleştirme matrisinden kolayca arayabilir.
  • DNN modeli için sistem, ağı özellik vektöründe çalıştırarak \(x\) \(\psi(x)\)sorgu yerleştirmeyi yayın zamanında hesaplar \(x\).

\(q\)sorgusunu yerleştirdikten sonra, yerleştirme alanına\(V_j\) yakın \(q\) yerleştirilmiş öğeleri arayın. Bu, en yakın komşu problemidir. Örneğin, benzerlik puanına göre ilk bin öğeyi döndürebilirsiniz \(s(q, V_j)\).

Çocuklar için filmler, yetişkin filmleri, sanat filmleri ve gişe rekorları kıran filmlere kadar çeşitli filmlerin ve kullanıcıların yer aldığı iki boyutlu spektrumun resmi. Bir kullanıcı ve yakınlardaki iki film vurgulanmıştır.

İlgili öğe önerilerinde benzer bir yaklaşım kullanabilirsiniz. Örneğin, kullanıcı bir YouTube videosu izlerken sistem önce söz konusu öğenin yerleştirilmesini arayabilir, ardından yerleştirme alanında yakın olan diğer öğelerin yerleştirilmelerini\(V_j\) arayabilir.

Büyük ölçekli alma

Sistem, yerleştirme alanındaki en yakın komşuları hesaplamak için her potansiyel adayı kapsamlı bir şekilde puanlayabilir. Kapsamlı puanlama, çok büyük korpuslar için pahalı olabilir ancak daha verimli hale getirmek amacıyla aşağıdaki stratejilerden birini kullanabilirsiniz:

  • Sorgu yerleştirme statik olarak biliniyorsa sistem, her sorgu için en iyi adayların listesini önceden hesaplayıp saklayarak kapsamlı puanlamayı çevrimdışı olarak gerçekleştirebilir. Bu, ilgili öğe önerisi için yaygın bir uygulamadır.
  • Yaklaşık en yakın komşuları kullanın. Google, GitHub'da ScaNN (Scalable Nearest Neighbors) adlı açık kaynak bir araç sağlar. Bu araç, geniş ölçekte verimli vektör benzerliği araması yapar.