lyft2vec — Lyft'te Yerleştirmeler
Ortak yazarlar: Javen Xu , Hakan Baba ve Adriana Deneault
giriş
Grafik öğrenme yöntemleri, altta yatan ilişkisel yapıları yakalayan ilginç içgörüleri ortaya çıkarabilir. Grafik öğrenme yöntemleri, ürün veya içerik tavsiye sistemleri ve ağ analizi gibi alanlarda birçok endüstri uygulamasına sahiptir.
Bu gönderide, yüksek boyutlu bilgilerin kompakt vektör temsili olan yerleştirmeler oluşturmak için Lyft'te grafik öğrenme yöntemlerini nasıl kullandığımızı tartışacağız. Binicilerin, sürücülerin, konumların ve zamanın yerleştirilmesiyle ortaya çıkarılan ilginç araç paylaşımı içgörülerini paylaşacağız. Örneklerin göstereceği gibi, grafiklerden eğitilmiş yerleştirmeler, geleneksel, basit özelliklerle yakalanması zor olan bilgileri ve kalıpları temsil edebilir.
Lyft Verileri ve Katıştırmalar
Lyft'te sürücüler, sürücüler, konumlar ve zaman arasındaki karmaşık etkileşimleri yakalayan yarı yapılandırılmış verilerimiz var. Bu etkileşimleri temsil eden grafikler oluşturabiliriz (örneğin, bir biniciyi ziyaret ettikleri tüm konumlarla ilişkilendirerek bir grafik oluşturulabilir). Bu grafiklerden, bir sürücünün veya sürücünün tüm sürüş geçmişini özlü bir şekilde ifade etmek için yerleştirmeler oluşturabiliriz. Bu yerleştirmeler, geniş ve çeşitli bilgileri makine dostu bir sunumda verimli bir şekilde özetlememizi sağlar.
Örneğin, San Francisco Körfez Bölgesi çevresinde 9.000'den fazla Geohash-6 (Gh6) seviyesi konumu vardır. Bir sürücünün Körfez Bölgesi çevresindeki sürüş geçmişini yerleştirmeler olmadan tanımlamak istiyorsak, bunu kesin olarak tanımlamak için 9.000'den uzun bir histograma veya vektöre ihtiyacımız olacaktır. Vektör, sürücünün bazı Gh6'larda hiç bulunmamışsa, çok sayıda sıfırla birlikte, sürücünün her Gh6'da başladığı sürüş sayısını içerecektir.
Grafik öğrenme ile aynı bilgiyi temsil eden daha düşük boyutlu bir katıştırma vektörü eğitebiliriz. İçsel boyut küçültme nedeniyle tam ayrıntıları yakalayamayabilir, ancak aşağıda Lyft Ride Insights'ta göstereceğimiz gibi, iyi eğitilmiş yerleştirmeler bir sürücünün seyahat geçmişinin genel resmini yakalayabilir.
Diğer bir fayda ise, gömmelerin d boyutlu bir vektör uzayındaki tek noktaları tanımlayan d boyutlu vektörler olması ve bu boşlukların tanımlanmış farklı varlıklar tarafından paylaşılabilmesidir. Varlıklar, girdi grafiğinde katıştırılmış vektörlerle temsil edilmesini istediğimiz ve varlık türlerine göre birlikte gruplandırılmış noktalar veya düğümlerdir. Örneğin, biri aynı grafikten bir sürücü varlığını ve diğeri bir konum varlığını temsil eden iki yerleştirme vektörü oluşturabiliriz; burada grafikteki bağlantılı bir kenar, bu sürücünün bu konumu ziyaret ettiği anlamına gelir. benzerlik fonksiyonu ile(problem kurulumunda tanımlanmıştır), aralarında bir benzerlik puanı hesaplayarak iki gömme vektörünü doğrudan karşılaştırabiliriz. Bu grafikte benzerlik puanı, sürücümüzün seçilen bu konumu ne sıklıkta ziyaret ettiğini açıklayacaktır.
Bir grafik birçok farklı varlık tipini (örn. sürücü, konum, sürücü) ve ilişkileri (örn. alınan, bırakılan) içerebilirken, basit grafikler yine de bilgilendirici olabilir. Örneklerimizin göstereceği gibi, yalnızca iki varlık türü ve bir ilişki türü olsa bile, grafik tabanlı katıştırmalar yine de değerli içgörüler sağlayabilir.
Metodoloji
Özetle Grafik Tabanlı Gömmeler
Çoklu varlık grafiği, öğeleri düğümler olarak çizerek ve yorumlanabilir bir ilişkinin olduğu öğeler arasında bağlantılar (yani kenarlar) yaparak oluşturulur. Grafiğe dayalı gömme fikri, düğümleri, gömme alanındaki benzerliğin (örneğin iç çarpım ) grafikteki yakınlığa yaklaşacağı şekilde kodlamaktır . İki varlık, orijinal grafikte doğrudan bağlantılıysa (yani "1 derece" bağlantı mesafesi) veya çok yakın bir mesafeye sahipse (yani "2 derece" bağlantı) yerleştirmeleriyle yüksek benzerlik puanına sahiptir.
İki temel bileşen vardır: 1) her düğümü düşük boyutlu bir vektöre eşleyen bir kodlayıcı ve 2) vektör uzayındaki ilişkilerin orijinal ağdaki ilişkilerle nasıl eşleştiğini belirleyen bir benzerlik işlevi .
Gömme (yani çıktı) alanının boyutlarını eğitim sürecinde belirtebiliriz. Uygun bir boyutluluk seçerek, orijinal girdi grafiğindeki varlıklar arasındaki karmaşık ilişkileri çok daha düşük ve kompakt bir boyutlu vektör uzayında yakalayabiliyoruz. Farklı varlıklar arasındaki "benzerlik" veya "mesafe"nin niceliksel bir ölçüsünü elde etmek için katıştırma alanındaki vektör nokta çarpımlarıyla mesafe hesaplamaları bile yapabiliriz.
Ardından, gömme eğitiminin ayrıntılarını göstermek için örnek olarak basit bir Lyft sürüş grafiği kullanacağız.
Lyft ve Gömme Eğitiminde Ride Graphs
Lyft'te, sürücüler, sürücüler ve konum ve zaman gibi faktörlere göre sürüş tercihleri hakkında bilgi edinmekle ilgileniyoruz.
Konumu örnek alarak, Şekil 2 gibi bir grafik oluşturabiliriz. Her sürücü, sürücü ve konum ayrı bir varlık olarak temsil edilir ve bir sürücü veya sürücünün belirli bir konumdan yola çıktığı yerde bağlantılar çizilir.
Eğitim algoritmamız, Pytorch BigGraph paketinden uzanır. Eğitimin başında, elde etmek istediğimiz gömme vektörlerinin d boyutlarını belirliyoruz ve algoritma bu d -boyutlu gömme vektörlerine başlangıç parametreleri olarak rasgele değerler atamaktadır. Genel bir ilke olarak, orijinal grafik çok sayıda öğe ve girift bağlantılı kenarlarla karmaşıksa, daha yüksek bir çıktı gömme boyutu seçeriz. Daha yüksek bir yerleştirme boyutu, grafikten daha fazla bilgi yakalayacaktır.
Eğitimin amacı , her varlık (yani düğüm) için d -boyutlu gömme vektörlerini öğrenmektir, öyle ki herhangi iki varlık arasında hesaplanan benzerlik onların ilişkisini yansıtır. Örneğin, uzayda çok yakın olan iki varlık, iki uzak varlıktan daha pozitif benzerlik puanına sahip olacaktır.
Her eğitim döngüsü sırasında, her bir varlık için, orijinal giriş grafiğindeki varlığa bağlı her kenar pozitif (+) bir örnek olarak kabul edilirken, algoritma negatif (-) örnekler için bağlantısız varlıklardan rastgele örnekler alır. Sürüş grafiğimizde, örnekler aşağıdaki Şekil 3 gibi görünecektir. Yukarıdaki Şekil 2'de pozitif etiketli kenarların var olduğuna, ancak negatif etiketli kenarların olmadığına dikkat edin.
Varlıklar için gömme vektörleri, bir benzerlik puanı oluşturmak için seçilen bir karşılaştırıcı kullanılarak ikili olarak karşılaştırılır. Basit bir seçim, iki vektörün iç çarpımı olarak hesaplanan kosinüs benzerliğidir.
Tüm pozitif ve negatif örneklerin puanları belirlendikten sonra, bir kayıp metriği, öğrenmeyi sağlamak için puanları dönem başına tek bir kayıp değerinde toplar. Yaygın kayıp fonksiyonu , sıralama kaybı, lojistik kayıp ve softmax kaybıdır .
Son olarak, tüm model parametrelerini güncellemek için bir Adagrad optimizasyon yöntemi kullanılarak kayıp en aza indirilir .
Lyft Ride İçgörüleri
Şimdi, sürüş grafiği yerleştirmelerinin ortaya çıkardığı ilginç içgörüleri gösterebiliriz. Analizimizin anonim veya birleştirilmiş bilgilere odaklandığına ve öğrenilen yerleştirmelerden sürücülerimiz ve sürücülerimiz hakkında herhangi bir kişisel özellik veya içgörü elde etmeyi amaçlamadığımıza dair kısa bir sorumluluk reddi beyanı.
Sürücü Sürüş Modeli Karşılaştırması
İlk örnek, gömmelerin zengin yüksek boyutlu bilgileri kompakt bir şekilde nasıl yakalayabildiğini gösterecektir. Eğlenceli bir alıştırma olarak, Körfez Bölgesi çevresindeki sürücülerin farklı konum modellerini keşfeden bir grafik oluşturuyoruz.
Girdi, Sürücü ve Gh6'nın varlık olarak olduğu bir grafiktir ve birkaç ay boyunca (yani yerleştirme eğitim süresi) talep edilen her sürüş için bir sürücüyü ve bir sürüşün Gh6 alımını birbirine bağlayan kenarlar. Çıktı, her Gh6 konumu ve her sürücü için 32 boyutlu bir yerleştirmedir.
Gömmelerle, her bir sürücü çifti ile Gh6 arasındaki benzerliği hesapladık. Bu örnekte benzerlik, bir sürücünün bir Gh6 konumundan ne sıklıkta araç aldığına işaret eder. Benzerlik puanı ne kadar yüksekse, bir sürücü o konumdan o kadar çok sürüş almıştır.
A ve B olmak üzere iki sürücü seçtik ve yerleştirmelerinin nokta çarpımı aracılığıyla onlarla her Gh6'nın benzerlik puanını hesapladık. Şekil 4, her Gh6'nın sırasıyla Sürücü A ve Sürücü B'ye olan benzerliklerini, daha yüksek puanların daha koyu gölgelere sahip olduğunu göstermektedir.
Benzerlik grafiklerinden, sürücülerin farklı sürüş modellerini açıkça görselleştirebiliyoruz. Driver A'nın (sol panel) bir SF City Driver olduğunu görüyoruz . Bazen Yarımada bölgesindeki gezintiler için biraz güneye veya North Bay bölgesindeki gezintiler için biraz kuzeye doğru sürüyorlar, ancak nadiren East Bay veya South Bay bölgelerine gidiyorlar.
Buna karşılık, Sürücü B (sağ panel), en koyu gölgelerin yoğunlaştığı Fremont bölgesinde daha fazla sürüş yapmış olan bir Doğu Körfezi Sürücüsüdür . Bazen köprüler aracılığıyla South Bay Yarımadası bölgesine gidiyorlar, ancak nadiren San Francisco şehir bölgesine gidiyorlar.
Bu ilginç sürüş modelleri, tanımlanacak konumlara göre sürüş frekanslarının geniş bir histogramını gerektirebilir. Gömmelerle, sadece 32 boyutlu bir vektörle sürücülerin sürüş modellerinin çok zengin bir resmini elde edebiliyoruz!
Hafta Boyunca Sürüş Modelleri
Bir sonraki örnekte, geçici gömme özelliklerini kullanmanın, günün saati veya haftanın saati gibi basit zaman özellikleriyle açık olmayabilecek gizli ilişkileri ve içgörüleri ortaya çıkarmaya nasıl yardımcı olabileceğini göstereceğiz.
Sürücü ve haftanın saati varlık olarak bir grafik oluşturduk ve bir sürücüyü ve o saatte başlayan sürücünün aldığı her yolculuk için haftanın bir saatini birbirine bağlayan kenarlar oluşturduk. Çıktı, haftanın her saati ve her sürücü için basit bir dört boyutlu yerleştirmeydi. Önceki örnekteki binlerce Gh6'ya kıyasla yalnızca 168 haftanın saati varlığı olduğundan yalnızca dört boyutlu gömme vektörleri kullandık. Bu grafik ile haftanın her saati ile diğer saatlerinin arasındaki benzerliği karşılaştırabilir ve hafta boyunca sürüş modellerini gözlemleyebiliriz.
ABD'deki tüm bölgelerde yerel saatle Cumartesi 20:00 ve Pazartesi öğlen olmak üzere iki referans saat seçtik ve onlarla haftanın her saatinin benzerlik puanını hesapladık. Bu iki referans saati, çok farklı sürüş modellerini temsil ettikleri için seçilmiştir.
Şekil 5'in sol grafiğinde, “x = Su”dan biraz önceki tümsek, Cumartesi 20:00'nin kendisine en yüksek benzerlik puanına sahip olduğunu gösteriyor ki bu da beklendiği gibi. İlginç olan, Cumartesi 20.00'ye en çok benzeyen saatlerin Cuma 20.00 ve ardından Pazar 20.00 olması. Bir sonraki en benzerler, Pazartesi'den Perşembe'ye saat 20:00'dir, ancak belirgin şekilde Cuma günü saat 20:00'den daha düşük benzerlik düzeyindedirler.
Pazartesi saat 12:00 referans saati olduğunda farklı bir tablo ortaya çıkıyor. Şekil 5'in sağ grafiği, pazartesiden cumaya öğle vaktine en çok benzer ve öğle saatlerinde cumartesi veya pazara daha az benzer.
Bu ne anlama gelir? Varlıklar olarak sürücüleri ve haftanın saatini içeren grafiği oluşturmamıza bağlı olarak, bu durumda benzer , biraz farklı yorumlanabilir. Bir yorum , haftanın bir saatine daha çok benzeyen sürücülerin o saatte daha fazla yolculuk yapmış olabileceği şeklinde olabilir .
Bu iki grafiğin basit bir karşıtlığıyla, Lyft platformunda neredeyse ayırt edici sürücü ve araç grupları seçebiliyoruz — hafta sonu "parti saati" sürücüleri ve yolculukları ile hafta içi "işe gidip gelme saati" sürücüleri ve yolculukları. Bu bilgilerin tümü, bir modele girdi olarak kolayca beslenebilen, haftanın her saati için 4 boyutlu vektörlerde temsil edilir. Bir özellik olarak yalnızca haftanın saatini kullanmış olsaydık kaçırmış olacağımız bu gizli ilişkiyi yerleştirmeler aracılığıyla zarif bir şekilde yakalayıp iletebiliyoruz!
Sıradaki ne
Gömmelerin birkaç başarılı uygulamasını gördükten sonra, Lyft'teki birçok makine öğrenimi (ML) modelleyicisini bunları kullanması için güçlendirecek bir platform oluşturuyoruz. Veri grafikleri oluşturma ve yerleştirmeler oluşturma yaklaşımı çok esnektir ve Lyft araç paylaşımı işinin çeşitli inceliklerini incelemek için uygulanabilir. Ortaya çıkarılan içgörüler, farklı sürüş kalıplarını, pazar dinamiklerini anlamamıza ve nihayetinde sürücülerimiz ve sürücülerimiz için daha iyi ürünler ve sürüş teklifleri oluşturmamıza yardımcı olabilir.
Bir Gömme Platformu girişimi kapsamında, özel katıştırmalar oluşturmak ve bunları ML modellerinde yenilikçi özellikler olarak kullanmak için birçok farklı modelleme projesi desteklenir. Desteklenen ekiplerimiz için veri ve özellik kalitesi, otomatikleştirilmiş yeniden eğitim, yönetişim, uyumluluk ve eğitim sunma altyapısı ile ilgili sorunları eş zamanlı olarak çözüyoruz.
Lyft pazarındaki en ilginç varlıklar için yeni yerleşimler sağlamayı ve bunları birçok yaygın kullanım durumu için kolay erişilebilir özellikler olarak sunmayı planlıyoruz.
[1] Stanford CS224W kursu ders slaytlarından bir şekil.

![Bağlantılı Liste Nedir? [Bölüm 1]](https://post.nghiatu.com/assets/images/m/max/724/1*Xokk6XOjWyIGCBujkJsCzQ.jpeg)



































