Konuştuğumuz birçok kuruluş, yapay zeka destekli kişiselleştirme, öneriler, anlamsal arama ve anormallik tespiti için vektör aramayı kullanmanın keşif aşamasındadır. BERT ve OpenAI dahil olmak üzere büyük dil modellerinin (LLM'ler) doğruluğu ve erişilebilirliğindeki son ve astronomik gelişmeler, şirketlerin ilgili arama ve analiz deneyimlerini nasıl oluşturacaklarını yeniden düşünmelerini sağladı.
Bu blogda, yapay zekayı uygulamalarına entegre eden, vektör aramayı ilk benimseyen 5 kişinin (Pinterest, Spotify, eBay, Airbnb ve Doordash) mühendislik hikayelerini ele alıyoruz. Bu hikayelerin, yerleştirmelerin oluşturulmasından üretim dağıtımlarına kadar vektör aramanın tüm yaşam döngüsü boyunca düşünen mühendislik ekiplerine yardımcı olacağını umuyoruz.
Vektör arama, verilerin yüksek boyutlu bir alandaki temsillerine dayalı olarak büyük bir veri kümesinden benzer öğeleri verimli bir şekilde bulmaya ve almaya yönelik bir yöntemdir. Bu bağlamda öğeler belgeler, görüntüler veya sesler gibi herhangi bir şey olabilir ve vektör yerleştirmeleri olarak temsil edilir. Öğeler arasındaki benzerlik, iki vektör yerleşiminin yakınlığını ölçen kosinüs benzerliği veya Öklid mesafesi gibi mesafe ölçümleri kullanılarak hesaplanır.
Vektör arama süreci genellikle şunları içerir:
Vektör aramasını daha iyi görselleştirmek için her eksenin bir özelliğe karşılık geldiği 3 boyutlu bir alan hayal edebiliriz. Bir noktanın uzaydaki zamanı ve konumu bu özelliklerin değerlerine göre belirlenir. Bu alanda benzer öğeler birbirine daha yakın, farklı öğeler ise daha uzak konumlandırılır.
^ | x Item 1 | / | / | /x Item 2 | / | / | /x Item 3 | / | / | / +------------------->
Bir sorgu verildiğinde veri kümesindeki en benzer öğeleri bulabiliriz. Sorgu, öğe yerleştirmeleriyle aynı alana gömülen bir vektör olarak temsil edilir ve sorgu yerleştirme ile her öğe yerleştirme arasındaki mesafe hesaplanır. Sorgu yerleştirmeye en kısa mesafeye sahip olan öğe yerleştirmeleri en benzer olarak kabul edilir.
Query item: x | ^ | | x Item 1| | / | | / | | /x Item 2 | | / | | / | | /x Item 3 | | / | | / | | / | +------------------->
Vektör araması yüksek boyutlu uzaylarda çalıştığı için bu açıkça basitleştirilmiş bir görselleştirmedir.
Sonraki bölümlerde vektör aramayla ilgili 5 mühendislik blogunu özetleyeceğiz ve uygulamayla ilgili önemli hususları vurgulayacağız. Mühendislik bloglarının tamamını aşağıda bulabilirsiniz:
Pinterest, ana sayfa akışında önerilen içerik, ilgili pinler ve çok görevli bir öğrenme modeli kullanarak arama da dahil olmak üzere platformunun birçok alanında görsel arama ve keşif için vektör aramayı kullanıyor.
Çok görevli bir model, birden fazla görevi eş zamanlı olarak gerçekleştirecek şekilde eğitilir, genellikle temel temsilleri veya özellikleri paylaşır, bu da ilgili görevler arasında genellemeyi ve verimliliği artırabilir. Pinterest örneğinde ekip, ana sayfa akışında, ilgili pinlerde ve aramada önerilen içeriği yönlendirmek için aynı modeli eğitti ve kullandı.
Pinterest, kullanıcının arama sorgusunu (q) tıkladıkları içerikle veya kaydettikleri pinlerle (p) eşleştirerek modeli eğitiyor. Pinterest her görev için (q,p) çiftlerini şu şekilde oluşturdu:
İlgili Pinler : Kelime yerleştirmeleri seçilen konudan (q) ve kullanıcı tarafından tıklanan veya kaydedilen pinden (p) türetilir.
Arama : Kelime yerleştirmeleri, arama sorgusu metninden (q) ve kullanıcı tarafından tıklanan veya kaydedilen pinden (p) oluşturulur.
Homefeed : Kelime yerleştirmeleri kullanıcının ilgisine (q) ve kullanıcı tarafından tıklanan veya kaydedilen pine (p) göre oluşturulur.
Genel bir varlık yerleştirme elde etmek için Pinterest, ilgili pinler, arama ve ana sayfa beslemesi için ilişkili kelime yerleştirmelerinin ortalamasını alır.
Pinterest, kendi denetimli Pintext-MTL'sini (çok görevli öğrenme) GloVe, word2vec gibi denetimsiz öğrenme modellerinin yanı sıra tek görevli öğrenme modeli olan hassas PinText-SR'ye karşı oluşturdu ve değerlendirdi. PinText-MTL diğer yerleştirme modellerinden daha yüksek hassasiyete sahipti, bu da tüm olumlu tahminler arasında daha yüksek oranda gerçek pozitif tahminlere sahip olduğu anlamına geliyordu.
Pinterest ayrıca çok görevli öğrenme modellerinin daha yüksek bir hatırlamaya veya model tarafından doğru şekilde tanımlanan ilgili örneklerin daha yüksek bir oranına sahip olduğunu ve bu modellerin arama ve keşif için daha uygun hale geldiğini buldu.
Tüm bunları üretimde bir araya getirmek için Pinterest, ana sayfa beslemesinden, aramadan ve ilgili pinlerden veri akışı konusunda eğitilmiş çok görevli bir modele sahiptir. Bu model eğitildikten sonra, Kubernetes+Docker veya harita azaltma sistemi kullanılarak büyük bir toplu işte vektör yerleştirmeleri oluşturulur. Platform, vektör yerleştirmelerinden oluşan bir arama dizini oluşturuyor ve kullanıcılar için en alakalı içeriği bulmak için K-en yakın komşu (KNN) aramasını çalıştırıyor. Sonuçlar, Pinterest platformunun performans gereksinimlerini karşılamak için önbelleğe alınır.
Spotify, kullanıcılar için ilgili podcast bölümü sonuçlarını almak üzere anahtar kelime ve anlamsal aramayı birleştirir. Örnek olarak ekip, Spotify kütüphanesinde ilgili podcast bölümleri mevcut olmasına rağmen 0 sonuç veren bir sorgu olan "elektrikli otomobillerin iklim etkisi" sorgusu için anahtar kelime aramasının sınırlamalarını vurguladı. Hatırlamayı iyileştirmek amacıyla Spotify ekibi, hızlı ve alakalı podcast araması için Yaklaşık En Yakın Komşu'yu (ANN) kullandı.
Ekip, çok dilli olması, küresel bir podcast kütüphanesini desteklemesi ve yüksek kaliteli vektör yerleştirmeleri üretmesi nedeniyle Evrensel Cümle Kodlayıcı CMLM modelini kullanarak vektör yerleştirmeleri oluşturuyor. Büyük bir metin verileri külliyatı üzerinde eğitilmiş bir model olan BERT de dahil olmak üzere diğer modeller de değerlendirildi, ancak BERT'in cümle yerleştirmelerden ziyade kelime yerleştirme için daha uygun olduğunu ve yalnızca İngilizce olarak önceden eğitildiğini buldu.
Spotify, girdi yerleştirmesi olan sorgu metni ve podcast bölümü yerleştirmeleri için başlık ve açıklama dahil olmak üzere metinsel meta veri alanlarının birleşimi ile vektör yerleştirmelerini oluşturur. Benzerliği belirlemek için Spotify, sorgu ile bölüm yerleştirmeleri arasındaki kosinüs mesafesini ölçtü.
Spotify, temel Evrensel Cümle Kodlayıcı CMLM modelini eğitmek için başarılı podcast aramaları ve bölümlerinin pozitif çiftlerini kullandı. Rastgele negatif eşleşmeler oluşturmak için Açık Alan Soru Yanıtlaması için Yoğun Geçiş Erişimi (DPR) ve Que2Search: Facebook'ta Arama için Hızlı ve Doğru Sorgu ve Belge Anlayışı dahil olmak üzere makalelerde vurgulanan bir teknik olan toplu negatifleri dahil ettiler. Testler aynı zamanda sentetik sorgular ve manuel olarak yazılan sorgular kullanılarak da gerçekleştirildi.
Spotify, üretimde podcast önerileri sunmaya vektör aramayı dahil etmek için aşağıdaki adımları ve teknolojileri kullandı:
Bölüm vektörlerini indeksleme : Spotify, yerel YSA desteğine sahip bir arama motoru olan Vespa'yı kullanarak bölüm vektörlerini toplu olarak çevrimdışı olarak indeksler. Vespa'nın seçilmesinin nedenlerinden biri, bölüm popülerliği gibi özelliklere arama sonrası meta veri filtrelemeyi de dahil edebilmesidir.
Çevrimiçi çıkarım : Spotify, bir sorgu vektörü oluşturmak için Google Cloud Vertex AI'yi kullanır. Vertex AI, yerleştirmeler oluşturmak için büyük transformatör modellerini kullanırken daha uygun maliyetli olan GPU çıkarımı desteği ve sorgu önbelleği nedeniyle seçildi. Sorgu vektörü yerleştirme oluşturulduktan sonra Vespa'dan en iyi 30 podcast bölümünü almak için kullanılır.
Anlamsal arama, ilgili podcast bölümlerinin tanımlanmasına katkıda bulunur, ancak anahtar kelime aramanın yerini tamamen alamaz. Bunun nedeni, kullanıcılar tam bir bölümü veya podcast adını aradığında anlamsal aramanın tam terim eşleşmesinde yetersiz kalmasıdır. Spotify, Vespa'daki semantik aramayı Elasticsearch'teki anahtar kelime aramasıyla birleştiren ve ardından kullanıcılara gösterilen bölümleri belirlemek için nihai bir yeniden sıralama aşamasını takip eden hibrit bir arama yaklaşımı kullanıyor.
Geleneksel olarak arama motorları, arama sorgusu metnini öğelerin veya belgelerin metinsel açıklamalarıyla hizalayarak sonuçları görüntülerdi. Bu yöntem, tercihleri anlamak için büyük ölçüde dile dayanır ve stil veya estetik öğelerini yakalamada o kadar etkili değildir. eBay, kullanıcıların aradıkları stile uygun, alakalı, benzer ürünleri bulmalarına yardımcı olmak için görsel arama özelliğini sunuyor.
eBay, tahminlerde bulunmak veya görevleri gerçekleştirmek için birden çok yöntemden veya metin, resim, ses veya video gibi giriş türlerinden gelen verileri işlemek ve entegre etmek için tasarlanmış çok modlu bir model kullanır. eBay, hem metni hem de görüntüleri kendi modeline dahil ederek, Evrişimli Sinir Ağı (CNN) modelini, özellikle de Resnet-50'yi kullanarak görüntü yerleştirmeleri ve BERT gibi metin tabanlı bir modeli kullanarak başlık yerleştirmelerini üretir. Her liste, hem görsel hem de başlık yerleştirmelerini birleştiren bir vektör yerleştirmeyle temsil edilir.
Çok modlu model, resim başlığı listeleme çiftlerinden ve yakın zamanda satılan listelerden oluşan geniş bir veri kümesi kullanılarak eğitildikten sonra, bunu site arama deneyiminde üretime sokmanın zamanı gelmiştir. eBay'deki listelemelerin çokluğu nedeniyle veriler toplu olarak eBay'in veri ambarı HDFS'ye yüklenir. eBay, liste yerleştirmeleri oluşturmak da dahil olmak üzere listelemelerin daha ileri düzeyde işlenmesi için gereken görüntüyü ve ilgili alanları almak ve depolamak için Apache Spark'ı kullanır. Listeleme yerleştirmeleri, büyük ölçekli verileri toplama konusunda iyi olan HBase gibi sütunlu bir depoda yayınlanır. HBase'den, listeleme yerleştirmesi indekslenir ve eBay'de oluşturulan bir arama motoru olan Cassini'de sunulur.
İşlem hattı, yüksek miktarda ve karmaşık görev olduğunda bile ölçeklendirme yapabilen Apache Airflow kullanılarak yönetiliyor. Ayrıca Spark, Hadoop ve Python için destek sağlayarak makine öğrenimi ekibinin benimsemesini ve kullanmasını kolaylaştırır.
Görsel arama, stil ve estetiğin satın alma kararlarında anahtar rol oynadığı mobilya ve ev dekorasyonu kategorilerinde kullanıcıların benzer stilleri ve tercihleri bulmasına olanak tanır. Gelecekte, eBay görsel aramayı tüm kategorilere genişletmeyi ve aynı zamanda kullanıcıların evlerinde aynı görünümü ve hissi yaratabilmeleri için ilgili öğeleri keşfetmelerine yardımcı olmayı planlıyor.
Arama ve benzer listeleme özellikleri AirBnb sitesindeki rezervasyonların %99'unu artırıyor. AirBnb, benzer kayıt önerilerini iyileştirmek ve arama sıralamalarında gerçek zamanlı kişiselleştirme sağlamak için bir liste yerleştirme tekniği geliştirdi.
AirBnb, yerleştirme uygulamasını yalnızca kelime temsillerinin ötesine taşıyarak, tıklamalar ve rezervasyonlar da dahil olmak üzere kullanıcı davranışlarını da kapsayacak şekilde genişletebileceğini erken fark etti.
Yerleştirme modellerini eğitmek için AirBnb, kullanıcının bir oturumda hangi listeleri tıklayıp atladığını temel alarak benzerliği belirlemek amacıyla 4,5 milyondan fazla aktif listeyi ve 800 milyon arama oturumunu birleştirdi. Bir oturumda aynı kullanıcı tarafından tıklanan listeler birbirine yaklaştırılır; Kullanıcı tarafından atlanan listeler daha da ileri itilir. Ekip, çevrimdışı performans ile çevrimiçi sunum için gereken bellek arasındaki denge göz önüne alındığında, d=32'lik bir liste yerleştirmenin boyutu üzerinde karar kıldı.
AirBnb, fiyat gibi meta verilerden doğrudan elde edilebildiği için belirli kayıt özelliklerinin öğrenmeyi gerektirmediğini tespit etti. Ancak mimari, stil ve ambiyans gibi niteliklerin meta verilerden elde edilmesi çok daha zordur.
Üretime geçmeden önce AirBnb, modelin kullanıcının gerçekte rezervasyon yaptığı kayıtları ne kadar iyi önerdiğini test ederek modelini doğruladı. Ekip ayrıca mevcut listeleme algoritmasını vektör yerleştirme tabanlı algoritmayla karşılaştıran bir A/B testi gerçekleştirdi. Vektör yerleştirmeli algoritmanın, TO'da %21'lik bir artışa ve rezervasyon yaptıkları bir ilanı keşfeden kullanıcıların sayısında %4,9'luk bir artışa yol açtığını buldular.
Ekip ayrıca vektör yerleştirmelerin, aramada gerçek zamanlı kişiselleştirmeye yönelik modelin bir parçası olarak kullanılabileceğini fark etti. Her kullanıcı için, son iki haftadaki kullanıcı tıklamalarının ve atlamalarının kısa vadeli geçmişini Kafka kullanarak gerçek zamanlı olarak topladılar ve muhafaza ettiler. Kullanıcı tarafından yapılan her arama için iki benzerlik araması yapıldı:
yakın zamanda aranan coğrafi pazarlara dayalıdır ve daha sonra
aday listeleri ile kullanıcının tıkladığı/atladığı listeler arasındaki benzerlik
Yerleştirmeler çevrimdışı ve çevrimiçi deneylerde değerlendirildi ve gerçek zamanlı kişiselleştirme özelliklerinin bir parçası haline geldi.
Doordash, kullanıcıların sipariş verebileceği çok çeşitli mağazalara sahiptir ve kişiselleştirilmiş tercihleri kullanarak en alakalı mağazaları ortaya çıkarabilmek, arama ve keşfetmeyi geliştirir.
Doordash, vektör yerleştirmeleri kullanarak gizli bilgileri mağaza feed'i algoritmalarına uygulamak istiyordu. Bu, Doordash'in, bir mağazanın tatlı ürünler içermesi, modaya uygun kabul edilmesi veya vejetaryen seçenekler sunması gibi iyi belgelenmemiş mağazalar arasındaki benzerlikleri ortaya çıkarmasına olanak tanıyacak.
Doordash, doğal dil işlemede kullanılan ve mevcut verilere dayanarak uyarladığı,store2vec adı verilen bir yerleştirme modeli olan word2vec'in bir türevini kullandı. Ekip, her mağazayı bir kelime olarak ele aldı ve tek bir kullanıcı oturumu sırasında görüntülenen mağazaların listesini kullanarak cümle başına maksimum 5 mağaza sınırı olacak şekilde cümleler oluşturdu. Kullanıcı vektör yerleştirmeleri oluşturmak için Doordash, kullanıcıların son 6 ayda veya 100'e kadar siparişte sipariş verdiği mağazaların vektörlerini topladı.
Örnek olarak Doordash, bir kullanıcının San Francisco'daki popüler, modaya uygun 4505 Burgers ve New Nagano Sushi mağazalarındaki son satın alma işlemlerine dayanarak benzer restoranları bulmak için vektör aramayı kullandı. Doordash, kullanıcının bölgedeki mağaza yerleştirmelerine olan kosinüs mesafesini ölçen benzer restoranların bir listesini oluşturdu. Kosinüs mesafesi açısından en yakın mağazaların Kezar Pub ve Wooden Charcoal Korean Village BBQ olduğunu görebilirsiniz.
Doordash, daha büyük öneri ve kişiselleştirme modelinin özelliklerinden biri olarak store2vec mesafe özelliğini bünyesine kattı. Doordash, vektör aramayla tıklama oranında %5'lik bir artış görmeyi başardı. Ekip aynı zamanda seq2seq gibi yeni modelleri, model optimizasyonlarını ve kullanıcılardan gelen gerçek zamanlı saha aktivite verilerini birleştirmeyi de deniyor.
Pinterest, Spotify, eBay, Airbnb ve Doordash, vektör aramayla daha iyi arama ve keşif deneyimleri yaratıyor. Bu ekiplerin birçoğu metin aramayı kullanmaya başladı ve bulanık arama veya belirli stil veya estetik aramalarda sınırlamalar buldu. Bu senaryolarda, deneyime vektör aramanın eklenmesi, alakalı ve çoğunlukla kişiselleştirilmiş podcast'leri, yastıkları, kiralıkları, rozetleri ve restoranları bulmayı kolaylaştırdı.
Bu şirketlerin, vektör aramayı uygularken dikkate alınması gereken birkaç kararı var:
Gerçek zamanlı bir arama ve analiz veritabanı olan Rockset, yakın zamanda vektör arama desteğini ekledi. Bugün 300 $ krediyle ücretsiz denemeyi başlatarak Rockset'te vektör aramayı gerçek zamanlı kişiselleştirme, öneriler, anormallik tespiti ve daha fazlasını deneyin.