Genlik Tavsiye: Algoritmanın Arkasında

Yayınlanan: 2021-05-10

"Yeterince gelişmiş herhangi bir teknoloji sihirden ayırt edilemez."
– Arthur C. Clarke, Geleceğin Profilleri

Kişiselleştirmenin Zorlukları

Pazarlamacılar her yerde kişiselleştirmenin değerini anlıyor. Kullanıcılarınızın ne istediğini daha istemeden tanıma yeteneği, gerçekten sihirden ayırt edilemez bir güç gibi hissettirebilir. Amplitude'de yeni Tavsiye ürünümüz, müşterilere ortak iş hedeflerine dayalı kişiselleştirilmiş öneriler sağlamak için uygun, kullanıma hazır bir hizmet sunuyor.

Kaliteli bir öneri sistemi oluşturmak birçok işletme için ulaşılmaz olabilir. Amplitude Recommend, müşterilere, bu kullanıcılarla önceki etkileşimlere ve bu kullanıcılar hakkındaki bilgilere dayalı olarak önceden tanımlanmış bir ürün kataloğundan bireysel kullanıcılar için öneriler sunan, kullanıma hazır bir sistem sağlar. Tavsiye ekibi, müşterilerden aşırı girdi veya gelişmiş alan bilgisi gerektirmeden, genel kalite için sistemimizi oluşturmak ve yinelemeli olarak iyileştirmek için yoğun çaba sarf etti. Tavsiye başlığının altında ne yatıyor? Burada, Amplitude'ün kişiselleştirme yaklaşımını destekleyen teknolojide bir tur atıyoruz.

Öneride Kullanıcıları Modelleme

Öneri sistemimiz için, sorunu özellikle bir dönüşüm olayı açısından çerçeveliyoruz: Bir kullanıcıya önerilen bir içerik öğesi sunması durumunda, hangi öğenin bir kullanıcıya dönüşüm gerçekleştirmesi için ilham verme olasılığının daha yüksek olacağını düşünüyoruz? Kullanıcıların tercihlerini modellemek için, öncelikle bir kullanıcının uygun bir temsilini, o kullanıcı hakkında bir takım anlamlı bilgileri temsil eden bir dizi özellik olarak seçmeliyiz. Müşterilerimiz bize iki değerli veri kaynağı sağlar: bu özellikleri toplamak için kullanabileceğimiz kullanıcı etkinliğinden bir olaylar akışı ve teknoloji platformları ve yerel ayarları gibi kullanıcılarla ilişkili bir dizi özellik .

Her müşteri için, belirli bir zaman aralığında en yaygın olayları toplarız ve her kullanıcı için bu olaylarla ilgili, kullanıcının bu olayları kaç kez gerçekleştirdiği ve bu olayların ilk ve son ne zaman gerçekleştiği gibi istatistikleri toplarız. Bu ve özellikler kümesi arasında, kullanıcı temsili için geniş bir özellik kümesi topluyoruz.

Özellik mühendisliğimiz, Nova Query veri depomuz tarafından tutulan olay verilerini modelleme için ilgili özelliklere dönüştürmek için Amplitude'ün Nova AutoML sistemini kullanır. Öner için, belirli bir içerik öğesi ile sonuçta ortaya çıkan dönüşüm olayı arasındaki bağlantıyı daha iyi tanımlamamıza izin veren huni analizi için kullanıcı düzeyinde veriler sağlamak üzere AutoML'ye işlevsellik ekledik. Bu, örneğin, bir müşteri X, Y ve Z ürünleri için alışveriş yaptığında, ancak daha sonra yalnızca Y'yi satın aldığında, dönüşümü özellikle Y ile etkileşime bağladığımızdan emin olmamıza yardımcı olur.

Özellik Matrisi

Genlikte Makine Öğrenimi Önerilir

Tavsiye, bir dizi kullanıcı arasındaki ilişkileri öğrenen denetimsiz öğrenme tekniklerini kullanır. En yaygın denetimsiz öğrenme tekniği, örneklerin özelliklerin benzerliğine göre farklı gruplara ayrıldığı kümelemedir . Bizim bağlamımızda, bir müşterinin kullanıcı tabanının dikkate değer bölümlerini tanımak için kullanıcıları bir arada gruplandırmak için kümeleme tekniklerini kullanabiliriz.

Kullanıcı Kümeleme

Amplitude Recommended, k-ortalama kümeleme olarak bilinen bir teknik kullanarak denetimsiz öğrenmeyi kullanır. Müşterilerimiz bize, yerel ayar ve teknoloji platformu gibi o kullanıcıya özgü özelliklerle birlikte kullanıcılarından gelen bir olay verisi akışı sağlar. Toplanan bu verileri bir dizi kullanıcı özelliğinde işleriz. K-ortalama kümeleme, bu kullanıcı özelliklerini alır ve bu özellikler için benzer değerlere sahip kullanıcıları bir araya getirir, örneğin belirli olayların ve benzer özelliklerin benzer sıklığına sahip.

Kullanılacak küme sayısını seçiyoruz - k anlamındaki "k" bu küme sayısını ifade eder - k için bir dizi farklı sayı üzerinde kümelemeler oluşturarak ve ardından bize "en sıkı" kümeleri sağlayan kümelemeyi seçerek . Buradaki sıkılık, kümeler içindeki kullanıcıların benzerliğinin kümeler arasındaki kullanıcıların benzerliğine oranıyla tanımlanır - ideal olarak, kümeler içindeki benzerlik yüksek ve kümeler arasındaki benzerlik düşüktür. Bu ölçüye göre en iyi kümeleme, son kümelememiz olarak seçilir.

Bu kümeleri kullanarak, o kümedeki kullanıcılar arasında özellikle popüler olan içerik öğelerini tanıyabilir ve böylece o kümedeki kullanıcılar için benzersiz bir içerik öğeleri sıralaması sağlayabiliriz. Daha da önemlisi, yeni kullanıcılar veya pek çok içerik öğesiyle etkileşime girmemiş kullanıcılar üzerinde, "benzer" kullanıcıların daha önce yakınlık gösterdiği şeylere dayanarak bu kullanıcıların nelerden hoşlanabileceğini anlayarak benzer bir analiz gerçekleştirebiliriz.

Kümeleme tekniklerinin karşılaştığı yaygın bir sorun gürültülü özelliklerdir. Bir özellik seti, bazıları kullanıcı ve tercihleri ​​hakkında önemli sinyaller içeren ve bazıları sorunla ilgisiz ve dikkat dağıtıcı olmayan rastgele bir istatistik karması olabilir. Modelimize gürültülü, alakasız özellikler eklemek yalnızca bilgi işlem kaynaklarını boşa harcamakla kalmaz, aynı zamanda kullanıcıların anlamsız ve tesadüfi benzerlikler üzerinde kümelenmesine de neden olabilir.

Kümelemede gürültülü özelliklerle ilgili sorunlardan kaçınmak için, hedef olayla minimum korelasyon eşiğine sahip olanları tanıyarak ve kalan özellikleri filtreleyerek potansiyel olarak anlamlı özelliklerin bir alt kümesini özel olarak tanımlarız. Bu eşik, daha az anlamlı ilişkilendirmeleri veya daha küçük kohortları toplamak için düşük, ancak muhtemelen alakasız özellikleri kaldıracak kadar büyük olarak ayarlanır.

Özellik filtreleme ve kümelememiz, özellik mühendisliği için özel Apache Spark kodu kullanılarak yapılır ve daha yüksek verimlilik için Amazon EMR'de çalıştırılır. Ek olarak, bu Spark kodu, özellik verilerini daha yönetilebilir hale getirmek için, kümeleme kalitesi üzerindeki olağandışı özellik verilerinin etkilerini azaltmak için özellik ölçekleme ve aykırı değerlerin kaldırılması dahil olmak üzere bazı ek son işlemler gerçekleştirir.

Sıralamaya göre kümeler

Kullanıcıların optimal kümelenmesini seçtikten sonra, her küme için, bu öğelerle mevcut etkileşimlere dayalı olarak, o küme içindeki göreceli popülerliklerine dayalı olarak bir öğe sıralaması sağlarız. Öğeleri sıralamak için birincil faktör olarak her küme için değiştirilmiş bir koşullu dönüşüm oranı (madde ile etkileşime göre dönüşüm olasılığı) kullanırız. Sonuçtaki güven derecesini belirtmek için dönüşüm oranını biraz değiştiririz—bazı öğeler kümede çok az etkileşime sahip olabilir (örneğin, nispeten yakın zamanda eklendikleri için) ve bu nedenle bu öğelere daha az güveniriz. Bu, daha az veriye sahip olduğumuz içerik öğeleri için bir miktar "ortalama" davranış olasılığını varsayan önceki bir modelin eklenmesi kullanılarak yapılır.

Son sıralama atamamız Python kodu ve Google'ın TensorFlow teknolojisi kullanılarak yapılır. Bu kodu, özellikle makine öğrenimi görevlerinin yönetimine adanmış bir bulut platformu olan Amazon Sagemaker'da çalıştırıyoruz.

Kişiselleştirme, Sıcak Borular

Her iki saatte bir müşteri tarafından seçilen bir kullanıcı grubu için yeni sıralamalar oluşturmak için ardışık düzenimizi çalıştırıyoruz. İşlem hattımızın tüm farklı bileşenlerinin sorunsuz bir şekilde etkileşime girmesini sağlamak için, işlem hattı yönetimi için Apache Airflow'u kullanarak farklı platformlardaki bilgi işlem görevlerini optimize edilmiş bir şekilde bir araya getirmemize olanak tanıyoruz. Her çalıştırdığımızda, özellikleri ve modeli yenileriz, öğelerin sıralaması ve dağılımı hakkında istatistikler toplarız ve müşterilerimizin kolayca erişebileceği bir API aracılığıyla verimli bir şekilde sunulmak üzere bir anahtar/değer deposundaki sıralamaları yenileriz. API'miz, seçilen bir N değeri için kullanıcı başına en üst N öğe sıralamasını sağlayan JSON verilerini sunar.

Bu yayının yayınlanmasıyla birlikte, Tavsiye aracılığıyla her gün düzinelerce müşteriye çeyrek milyardan fazla kişiselleştirilmiş tavsiye içeren veri tabanımızı sunuyoruz. Önerme için mevcut planlanmış geliştirmelerimizden bazıları şunlardır:

  • Kişiselleştirmeyi daha da geliştirmek için sinir ağları gibi denetimli öğrenme tekniklerinin kullanılması;
  • İçerik öğeleri arasındaki ilişkileri tanımamıza ve ayrıca çok az veya hiç ilişkili olay verisi olmadan yepyeni içerik öğeleri için uygun kitleler bulmamıza yardımcı olacak içerik tabanlı öğe özellikleri; ve
  • Öneri'nin çok büyük içerik gruplarına (>1000 öğe) ölçeklenmesine izin vermek için akıllı öğe alımı, yine de dönüşümü en üst düzeye çıkarır.

Öneri kalitesini iyileştirmenin ve müşterilerimize daha iyi kişiselleştirme sağlamanın yollarını her gün yinelemeye devam ediyoruz. Amplitude Recommended hakkında daha fazla bilgi edinin.