Amazon Öneri özelliği nasıl çalışır?


144

Amazon öneri teknolojisinin ekranlarının arkasında hangi teknoloji var? Amazon tavsiyesinin şu anda piyasadaki en iyisi olduğuna inanıyorum, ancak bize bu tür ilgili önerileri nasıl sağlıyorlar?

Son zamanlarda, benzer öneri türünde bir projeye katıldık, ancak kesinlikle Amazon öneri teknolojisinin teknik bir bakış açısından içeri ve dışarı çıkmasını bilmek istiyoruz.

Herhangi bir girdi çok takdir edilecektir.

Güncelleme:

Bu patent , kişiselleştirilmiş önerilerin nasıl yapıldığını açıklar, ancak çok teknik değildir ve bu nedenle bazı öngörüler sağlanabilirse gerçekten iyi olurdu.

Dave'in yorumlarından Afinite Analizi , bu tür Tavsiye Motorlarının temelini oluşturur. Ayrıca Konu hakkında bazı iyi okumalar

  1. Pazar Sepeti Analizini Belirleme
  2. Pazar Sepeti Analizi
  3. Yakınlık Analizi

Önerilen Okuma:

  1. Veri Madenciliği: Kavramlar ve Teknik

3
Patent yığınlarını elemeyi denediniz mi? google.com/patents
Dolph

Evet Patentten geçtim ama çok teknik değil ve bu yüzden mekanizmanın teknik yönü hakkında bazı anlayışlar takdir ediyorum
Rachel

1
@Dave: Bu soru şu anda açık ve Amazon'un öneriler sunmak için kullandığı öneri motoru mimarisi ve işlevselliğinin arkasındaki teknoloji hakkında biraz daha bilgi verebilirseniz gerçekten memnun olurum.
Rachel

1
Amazon tavsiye sistemini "en iyi" veya hatta yararlı olarak adlandırmazdım. Bir fare sipariş ederseniz, bir tane daha satın almanızı önerir. Neden normal bir kullanıcının aynı anda iki fareye ihtiyacı var?

1
@Rachel: Amazon'un sistemi patentli olduğunu göz önüne alındığında ve benzer bir şey geliştirmek istiyorum, olur hatta bakışta onların patentleri de --- ve ders ya sizi korumaz onlara bakmak değil, ama bu bir başlangıç.

Yanıtlar:


105

Hem bir sanat hem de bir bilimdir. Tipik çalışma alanları, veri madenciliği alanının bir alt kümesi olan pazar sepeti analizi (afinite analizi de denir) etrafında döner. Böyle bir sistemdeki tipik bileşenler, birincil sürücü öğelerinin tanımlanmasını ve afinite öğelerinin (aksesuar satış, çapraz satış) tanımlanmasını içerir.

Madencilik yapmak zorunda oldukları veri kaynaklarını aklınızda bulundurun ...

  1. Satın alınan alışveriş sepetleri = gerçek ürünlere harcanan gerçek kişilerden elde edilen gerçek para = güçlü veriler ve daha fazlası.
  2. Ürünler arabalara eklendi ancak terk edildi.
  3. Aynı ürünleri farklı fiyatlarla sundukları ve sonuçları gördükleri çevrimiçi fiyatlandırma deneyleri (A / B testi vb.)
  4. Farklı "paketlerde" farklı ürünler sundukları veya çeşitli ürün çiftlerini indirdikleri ambalaj deneyleri (A / B testi vb.)
  5. İstek listeleri - sizin için özel olarak sizin için nelerdir - ve toplu olarak başka bir sepet analiz verileri akışına benzer şekilde tedavi edilebilir
  6. Tavsiye siteleri (nereden geldiğinizin belirlenmesi diğer ilgi çekici öğelere işaret edebilir)
  7. Bekleme süreleri (geri tıklayıp farklı bir öğe seçmeden ne kadar süre önce)
  8. Siz veya sosyal ağınızdaki / satın alma çevrelerinizdeki derecelendirmeler - Beğendiğiniz şeyleri derecelendirirseniz, sevdiğiniz şeylerden daha fazlasını alırsınız ve "zaten sahibim" düğmesiyle onaylarsanız, tam bir profil oluştururlar
  9. Demografik bilgiler (gönderim adresiniz vb.) - Çocuklarınız, kendiniz, eşiniz vb.Genel alanınızda neyin popüler olduğunu biliyorlar.
  10. user segmentation = bir yürümeye başlayan çocuk için ayrı aylarda 3 kitap satın aldınız mı? muhtemelen bir çocuğunuz veya daha fazlası var .. vb.
  11. Doğrudan pazarlama tıklama verileri - bunlardan bir e-posta aldınız ve tıkladınız mı? Hangi e-postanın olduğunu ve neyi tıkladığınızı ve sonuç olarak satın alıp almadığınızı bilirler.
  12. Oturumdaki tıklama yolları - sepetinize girip girmediğine bakılmaksızın ne görüntülediniz?
  13. Son satın almadan önce bir öğeyi görüntüleme sayısı
  14. Bir tuğla ve harç deposuyla uğraşıyorsanız, fiziksel satın alma geçmişinize de sahip olabilirler (yani oyuncaklar bize veya çevrimiçi olan bir şey ve ayrıca fiziksel bir mağaza)
  15. vb. vb.

Neyse ki insanlar toplu olarak benzer şekilde davranırlar, bu yüzden satın alma popülasyonu hakkında ne kadar çok bilgi sahibi olurlarsa, neyin satılacağını ve satılmayacağını daha iyi bilirler ve her işlemle ve her derecelendirme / istek listesi, önerileri nasıl kişiselleştireceklerini bilirler. Bunun, muhtemelen önerilerde vb. Sonuçların etkilerinin tam bir örneğinin küçük bir örneği olduğunu unutmayın.

Şimdi Amazon'un nasıl iş yaptığına dair içsel bir bilgim yok (orada hiç çalışmadı) ve yaptığım tek şey çevrimiçi ticaret sorununa klasik yaklaşımlardan bahsediyor - Microsoft için veri madenciliği ve analitiği üzerinde çalışan PM'dim. Commerce Server adlı ürün. Commerce Server'da, insanların benzer özelliklere sahip siteler oluşturmalarına olanak tanıyan araçları gönderdik .... ancak satış hacmi ne kadar büyük olursa, veri o kadar iyi olur ve model de o kadar iyidir. Sadece ticaret odaklı bir sitede bu kadar veriye sahip modellerle oynamanın ne kadar eğlenceli olduğunu hayal edebiliyorum. Şimdi bu algoritmaların çoğu (ticaret sunucusunda başlayan yordayıcı gibi) doğrudan Microsoft SQL içinde yaşamaya başladı .

Sahip olmanız gereken dört büyük yol:

  1. Amazon (veya herhangi bir perakendeci), tonlarca işlem ve tonlarca insan için toplu verilere bakıyor ... bu, sitelerindeki anonim kullanıcılar için bile oldukça iyi tavsiye etmelerini sağlıyor.
  2. Amazon (veya herhangi bir gelişmiş perakendeci), giriş yapan herkesin davranışlarını ve satın alımlarını takip eder ve bunu toplu toplu verilerin üstünde daha da hassaslaştırmak için kullanır.
  3. Çoğu zaman, biriken verilerin üzerine binmenin ve belirli hatların ürün yöneticileri için önerilerin "editoryal" kontrolünü ele geçirmenin bir yolu vardır ('dijital kameralar' dikey veya 'roman romanları' dikey veya benzer olan bazı kişiler gibi) uzmanlar
  4. Genellikle promosyon teklifleri (yani sony veya panasonic veya nikon veya canon veya sprint veya verizon perakendeciye ek para ödüyor veya daha büyük miktarlarda veya bu hatlardaki diğer şeylerde daha iyi bir indirim sağlıyor) belirli "önerilerin" ortaya çıkmasına neden olacak diğerlerinden daha sık - her işlemde daha fazlasını yapmayı veya toptan maliyetleri düşürmeyi vb. hedefleyen her zaman makul bir iş mantığı ve iş nedeni vardır.

Gerçek uygulama açısından? Hemen hemen tüm büyük çevrimiçi sistemler, bir bağlamın bazı formları uygulayan bir dizi modül tarafından değerlendirilmesine izin veren bazı boru hatlarına (veya bir filtre deseni uygulaması veya bir iş akışı vb. iş mantığı.

Genellikle sayfadaki her ayrı görevle farklı bir ardışık düzen ilişkilendirilir - önerilen "paketler / satışlar" (yani baktığınız öğeyle satın alın) ve "alternatifler" (başka bir deyişle satın alma) baktığınız şey yerine bu) ve istek listenizden en yakından ilişkili öğeleri (ürün kategorisine veya benzerine göre) çeken başka bir şey.

Bu boru hatlarının sonuçları, sayfanın çeşitli bölümlerine (kaydırma çubuğunun üstünde, kaydırmanın altında, solda, sağda, farklı yazı tipleri, farklı boyutta görüntüler vb.) Yerleştirilebilir ve hangisinin performans gösterdiğini test edebilir. en iyi. Bu boru hatları için iş mantığını tanımlayan kolay tak ve çalıştır modülleri kullandığınız için, başka bir boru hattı oluştururken uygulanmasını istediğiniz iş mantığından seçim yapmayı ve seçim yapmanızı kolaylaştıran ahlaki eşdeğer lego blokları ile sonuçlanırsınız. Bu da daha hızlı inovasyona, daha fazla denemeye ve sonuçta daha yüksek karlara olanak tanır.

Bu hiç yardımcı oldu mu? Umarım bunun sadece Amazon değil, herhangi bir e-ticaret sitesi için genel olarak nasıl çalıştığı hakkında bir fikir verir. Amazon (orada çalışan arkadaşlarla konuşmaktan) çok veriye dayalıdır ve sürekli olarak kullanıcı deneyiminin etkinliğini ve fiyatlandırma, promosyon, ambalajlama, vb. Ölçer - çevrimiçi olarak çok sofistike bir perakendecidir ve muhtemelen Kârı optimize etmek için kullandıkları algoritmaların çoğu - ve bunlar muhtemelen tescilli sırlardır (KFC'nin gizli baharatlarına formül gibi biliyorsunuz) ve bu şekilde guaard edildi.


1
Evet. Bana çok yardımcı oldu ve konuyla ilgili girdilerinizi gerçekten takdir ediyorum.
Rachel

şaşırtıcı anlayışlar
Shobi

28

Bu doğrudan Amazon'un öneri sistemiyle ilgili değildir, ancak Netflix kullanıcı verilerini kullanarak daha iyi bir öneri sistemi geliştirmek için bir yarışma olan Netflix Ödülünde yarışan kişilerin kullandığı yöntemleri incelemek yararlı olabilir . Topluluklarında genel olarak veri madenciliği teknikleri hakkında birçok iyi bilgi bulunmaktadır .

Kazanan ekip birçok farklı model / teknik tarafından oluşturulan önerilerin bir karışımını kullandı. Kullanılan ana yöntemlerden bazılarının temel bileşen analizi, en yakın komşu yöntemleri ve sinir ağları olduğunu biliyorum. İşte kazanan takımın bazı kağıtları:

R. Bell, Y. Koren, C. Volinsky, " Netflix Ödülüne BellKor 2008 Çözümü ", (2008).

A. Töscher, M. Jahrer, “ Netflix Ödülü 2008'in BigChaos Çözümü ”, (2008).

A. Töscher, M. Jahrer, R. Legenstein, " Büyük Ölçekli Tavsiye Sistemleri İçin Geliştirilmiş Mahalle Temelli Algoritmalar ", SIGKDD Büyük Ölçekli Tavsiye Sistemleri Çalıştayı ve Netflix Ödül Yarışması (KDD'08), ACM Press (2008) .

Y. Koren, " Netflix Büyük Ödülüne BellKor Çözümü ", (2009).

A. Töscher, M. Jahrer, R. Bell, " Netflix Büyük Ödülüne BigChaos Çözümü ", (2009).

M. Piotte, M. Chabbert, " Netflix Büyük Ödülüne Pragmatik Teori çözümü ", (2009).

2008 bildirileri ilk yılın İlerleme Ödülünden alınmıştır. Önce eski olanları okumanızı tavsiye ederim çünkü daha sonraki olanlar önceki çalışmayı temel alır.


2
Bu cevapla ilgili sevdiğim şey, "mükemmel" bir cevap olmadığı ve insanların bu alanda yenilik yapmaya devam ettikleri gerçeğine işaret etmesidir - her zaman iyileştirme için bir yer vardır ve sorunlara zaman değiştikçe ve yeni yöntemler uygulandıkça farklı şekilde çözülmeye devam edecek. Ve ayrıntılı bağlantıları okursanız, ödülün büyük yarışmacılarının her birinde tahmin için birkaç yaklaşımın nasıl bir "harmanı" olduğunu görebilirsiniz. Harika referanslar.
Dave Quick


20

(Feragatname: Amazon'da çalışıyordum, ancak tavsiye ekibinde çalışmıyordum.)

ewernli'nin cevabı doğru olmalı - kağıt Amazon'un orijinal öneri sistemine bağlanıyor ve söyleyebileceğimden (hem Amazon alışverişi olarak kişisel deneyimlerden hem de diğer şirketlerde benzer sistemlerde çalışarak) çok az değişti: özünde Amazon'un öneri özelliği hâlâ büyük ölçüde öğeden öğeye işbirlikçi filtrelemeye dayanıyor.

Sadece önerilerin ne şekle geldiğine bakın: ön sayfamda, hepsi ya "X'i görüntülediniz ... Bunu da görüntüleyen müşteriler ..." ya da başka şeylere benzer öğelerden oluşan bir karışım Daha önce satın aldım veya izledim. Özellikle "Sizin için Önerilenler" sayfama gidersem, her öğe benim için neden önerildiğini açıklar: "Satın aldığınız için önerildi ...", "İstek listenize X eklediğiniz için önerilir ..." vb. öğeden öğeye ortaklaşa filtrelemenin klasik bir işareti.

Öyleyse, öğeden öğeye işbirlikçi filtreleme nasıl çalışır? Temel olarak, her bir öğe için, ilgili öğelerin bir "mahallesini" oluşturursunuz (örneğin, insanların hangi öğeleri birlikte görüntülediğine veya insanların hangi öğeleri birlikte satın aldıklarına bakarak - benzerliği belirlemek için Jaccard dizini gibi korelasyonları kullanabilirsiniz ; korelasyon Amazon'un derecelendirme verilerini çok yoğun kullanmadığından şüpheleniyorum, başka bir olasılık). Sonra, bir X öğesini görüntülediğimde veya Y satın aldığımda, Amazon bana X veya Y ile aynı semtte şeyler önerir.

Amazon'un potansiyel olarak kullanabileceği, ancak muhtemelen kullanamayacağı diğer bazı yaklaşımlar burada açıklanmıştır: http://blog.echen.me/2011/02/15/an-overview-of-item-to-item-collaborative-filtering -ile-amazons-tavsiye sistemi /

Dave'in tanımladığı şeylerin çoğu kesinlikle Amazon'da yapılmıyor. (Sosyal ağımdakiler tarafından derecelendirildi mi? Hayır, Amazon'un sosyal verilerim yok. Bu her durumda büyük bir gizlilik sorunu olurdu, bu yüzden Amazon'un bu verilere sahip olsalar bile bunu yapması zor olacaktır: insanlar arkadaşlarının hangi kitapları veya filmleri satın aldıklarını bilmelerini istemiyorlar. Demografik bilgiler Hayır, önerilerdeki hiçbir şey buna baktıklarını göstermez. [Alanımdaki diğer insanların ne izlediğini gösteren Netflix'in aksine .])


Amazon yıllarca şirket alan adı ve posta koduna dayalı satın alma eğilimleri olan anonimleştirilmiş satın alma çevrelerine maruz kaldı. Bu konuda bilgi alabilmeniz için bir satın alma döngüsünde en az 50 farklı alıcı olması gerekiyordu, bu yüzden Amazon kesinlikle bu bilgileri kendilerinin (ve diğerlerinin) popüler olanı anlamalarına yardımcı olmak için tuttu, izledi ve kullandı. Bölgenizdeki veya şirketinizdeki CD'lere, elektronik cihazlara ve kitap satın alımlarına bakabilirsiniz. 1999-2002 yılları arasında maruz kaldılar. forum.dvdtalk.com/archive/t-122436.html , Amazon'dan gelen ve onları tanımlayan metnin bir kopyasına bile yapışır .
Dave Quick

3

Amazon'un algoritması hakkında özel bir bilgim yok, ancak böyle bir algoritmanın bir bileşeni muhtemelen sık sık birlikte sipariş edilen öğelerin gruplarını izlemeyi ve daha sonra bir müşteri bir alt kümesini satın aldığında gruptaki diğer öğeleri önermek için bu verileri kullanmayı içerecektir. grubudur.

Başka bir olasılık, A maddesini sipariş ettikten sonra N gün içinde sipariş edilen B maddesinin sıklığını izlemek olabilir ve bu da bir korelasyon önerebilir.




0

Bir uygulamalı eğitim istiyorsanız (açık kaynak R kullanarak), bundan geçmekten daha iyisini yapabilirsiniz: https://gist.github.com/yoshiki146/31d4a46c3d8e906c3cd24f425568d34e

Başka bir çalışmanın çalışma zamanı için optimize edilmiş bir sürümüdür: http://www.salemmarafi.com/code/collaborative-filtering-r/

Ancak, ilk bağlantıda kod varyasyonu ÇOK daha hızlı çalışır, bu yüzden bunu kullanmanızı öneririz (yoshiki146 kodunun sadece yavaş kısmını buldum kullanıcı düzeyinde öneri oluşturan son rutin - verilerimle yaklaşık bir saat sürdü benim makinem).

Bu kodu, çalıştığım perakendeci için bir öneri motoru olarak çalışacak şekilde uyarladım.

Kullanılan algoritma - diğerlerinin yukarıda söylediği gibi - işbirlikçi filtrelemedir. Bu CF yöntemi, bir kosinüs benzerlik matrisini hesaplar ve daha sonra her bir element için 'en yakın komşuyu' bulmak için bu benzerliğe göre sıralar (verilen örnekte müzik grubu, uygulamamdaki perakende ürün).

Ortaya çıkan tablo, seçilen başka bir bant / ürüne dayanan bir bant / ürün önerebilir.

Kodun bir sonraki bölümü USER (veya müşteri) tabanlı ortak çalışmaya dayalı filtreleme ile bir adım daha ileri gider.

Bunun çıktısı, belirli bir kullanıcı / müşteri için önerilen en iyi 100 bant / ürün içeren büyük bir tablodur.


1
Bu bağlantı soruyu cevaplayabilse de, cevabın temel kısımlarını buraya eklemek ve bağlantıyı referans olarak sağlamak daha iyidir. Bağlantı verilen sayfa değişirse, yalnızca bağlantı yanıtları geçersiz olabilir. - Yorumdan
Kos

Doğru ... Kullanılan algoritma - diğerlerinin yukarıda söylediği gibi - işbirlikçi filtreleme. Bu CF yöntemi, bir kosinüs benzerlik matrisini hesaplar ve daha sonra her bir eleman için 'en yakın komşu' (verilen örnekte müzik grubu, uygulamamdaki perakende ürün) bulmak için bu benzerliğe göre sıralar. Ortaya çıkan tablo, seçilen başka bir bant / ürüne dayanan bir bant / ürün önerebilir. Kodun sonraki bölümü, USER (veya müşteri) tabanlı ortak çalışmaya dayalı filtreleme ile bir adım daha ileri gider. Bunun çıktısı, belirli bir kullanıcı / müşteri için önerilen en iyi 100 bant / ürün içeren büyük bir tablodur
ChrisD

lütfen yanıtınızı düzenleyin ve bu bilgiyi buraya ekleyin, yorumlar bölümünde değil, teşekkürler
Kos
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.