Foursquare mekan değerlendirme sisteminin nasıl geliştirildiğini merak ediyor musunuz?

Yakınlarında iyi bir cheeseburger mi arıyorsun veya kullanıcılar için bu bilgileri nasıl sağladığını mı öğrenmek istiyorsun? Foursquare City Guide kullanıcılara yakınlardaki en iyi yerler hakkında bilgiyi ilk elden edinmeleri için mekan değerlendirmelerini 10 üzerinden bir skorlama ile hesaplayıp gösteriyor. Bu yazıda milyonlarca kullanıcı tarafından güvenilirlik ve doğruluğuna güvenilen değerlendirmelerin nasıl hesapladığını, ayrıca algoritmaların geliştirilirken Foursquare ekibinin öğrendiği bazı dersleri açıklayacağız.

Mekan değerlendirmelerine düzinelerce parametre giriyor ama en önemli olanları kullanıcılar tarafından üretilenler. En güçlü parametrelerin arasında belirgin geribildirimler, ufak tavsiyeler ve doğrulanmış check-in’ler bulunuyor. Ayrıca ana uygulamalar olan Foursquare City Guide ve Foursquare Swarm tarafından üretilen pasif konum verilerinin yanında, tescilli Pilgrim Teknolojisine dayanan partner verileri de kullanıyor.

Belirgin Kullanıcı Geribildirimleri

Foursquare City Guide uygulaması, kullanıcıları ziyaret ettikleri mekanları değerlendirmeleri konusunda teşvik ediyor. Geribildirim bırakmanın üç yolu var: Bir kullanıcı beğendiğini söyleyebilir, bir başkası beğenmediğini, diğeri de fena değil diyebilir. Şu ana kadar 175 milyon bu tip geri bildirim toplandı.

Sudenaz Homage’i beğendi!
Ali, Homage’i beğendi!

Bariz bir şekilde görülüyor ki “beğenmek” bir mekanın değerlendirmesini 10 puana yaklaştırırken “beğenmemek” 0 puana yaklaştırıyor. Peki “fena değil” ? Beğenmekle beğenmemek arasında bir yere düştüğünü biliyoruz ama dağılımda tam olarak nereye konumlanıyor ?

Çünkü hedef isabetli mekan değerlendirmeleri sağlamak. Foursquare ekibinin yaptığı değerlendirme, kullanıcı geri bildirimine göre tutarlılığını ölçen bir metrik tasarladı; veritabanındaki inversiyon sayısı. Bir inversiyon: Bir kullanıcı, beğenmediği bir mekandan daha düşük bir puan alan bir mekanı beğendiğinde oluşan duruma inversiyon denir. Örneğin, bir kullanıcı 6.4 puanlı bir bakkalı “beğendi” ise ve ilerideki 8.5 puanlı lüks restoranı “beğenmedi” ise, bu tutarsızlık alınıyor (ki bunu toplam ve mekan kategorisine göre ölçülüyor).

Bütün inversiyonları önlemek pek mümkün olmasa bile, “fena değil”in değerini ayarlayarak inversiyonu minimize edilebiliyor. Inversiyonların toplam grafiğini “fena değil”in bir fonksiyonu olarak çizildiğinde ise, sonuç şaşırtıcı oluyor: Optimal bir “fena değil”, “beğeni”lerin sadece %10’una eşit olduğu görülüyor. Başka bir deyişle, eğer bir mekan kullanıcılardan 10 tane “fena değil” almış ise, bunun mekana etkisi 9 “beğenmeme” ve 1 “beğenme” almış olmak ile birebir aynı oluyor.

Bunu şöyle yorumlayabiliriz: “fena değil” aslında kibar bir insanın “beğenmemesi”. Genellikle yemek ve servisin unutulabilir olduğu anlamına geliyor oysa “beğenmeme” ise hafızalarda kötü yer edinen deneyimler için saklanıyor. Bu ayrıca ölçümlerde de gerçek insanlık adına çok şey katıyor.

Tavsiyeler

Foursquare 100’den fazla dilde yazılmış 95 milyon tavsiyenin bulunduğu bir veritabanına sahip. Her tavsiye bir NLP (Doğal Dil İşleme) kuyruğunda analiz edilip, lezzetler, ve mekanın uzmanlığını belirten “muhlama” veya “vejeteryan” gibi sözcük öbeklerini çıkartıyor. Bunlara ek olarak laf sokma veya olumluluk gibi duygu (sentiment) analizi de yakalanabiliyor.

NLP kuyruğu, her tavsiyeyi 1 ile 4 kelime arasında değişen n-gramlara bölüyor. Eğer bir kullanıcı mekana Ali’nin Homeage’e yaptığı gibi hem tavsiye hem de değerlendirme bıraktıysa, bu tavsiyeden gelen n-gramlar trinominal lojistik regresyon’un eğitim setinin parçası haline geliyor. Bu model elastic net kullanılarak düzenleniyor çünkü elastic net Lasso (L1) regresyonunu da kapsadığı için çoğu sözcük öbeğine 0 değeri veriliyor. Böylece Foursquare City Guide’a şu ana kadar yazılmış muazzam büyüklükteki n-gramların hepsini tutmamıza gerek kalmıyor sadece 0 olmayan yani bir anlam, duygu ifade edenleri saklanıyor. Bu spesifik örnek Python ile yazılıp Cython framework’ü ile optimize edilmiş olup, öğrenme algoritmasının bazı anahtar parçalarını C’ye derliyor.

Sudenazın Homage’deki tavsiyesi %99 pozitif ve %1 nötr. Berkecan Postacıdaki tavsiyesi ise %83 negatif, %10 nötr, %7 pozitif.
Ali’nin Homage’deki tavsiyesi %99 pozitif ve %1 nötr. Berkecan Postacıdaki tavsiyesi ise %83 negatif, %10 nötr, %7 pozitif.

Modele göre, pozitif, nötr ve negatif için kullanılan ortak İngilizce sözcük öbekleri şu şekilde:

 ╔════════════════╦════════════════╦════════════════╗
║    POSITIVENEUTRALNEGATIVE    ║
╠════════════════╬════════════════╬════════════════╣
║   "amazing"    ║   "average"    ║   "worst"      ║
║   "awesome"    ║   "okay"       ║   "disgusting" ║
║   "delicious"  ║   "ok"         ║   "terrible"   ║
╚════════════════╩════════════════╩════════════════╝

Model eğitildikten sonra, tavsiyelerden çıkartılan bütün n-gramların skorlanması için kullanılıyor. Tavsiye başına bütün skorları toplayıp bunları 3 parçalı skora çevriliyor ki bu 3 parça da yukarıda bahsedilen “Beğen”, “Beğenme” ve “Fena değil”. Her mekan için bütün n-gramların skorlarının toplamı en son pozitif, nötr ve negatif anlamın yüzdelerini veriyor.

Kültürel Önyargıyı Denormalize Etmek

Foursquare ekibi, belirgin kullanıcı değerlendirmeleri ve anlamsal skorlandırmadan sonra verilerde bir anomaly olduğu fark etti. Bazı ülkelerdeki değerlendirmeler ABD’deki değerlendirmelere kıyasla gözle görülür derecede aşağı veya yukarı doğru kaymıştı. Araştırmalardan sonra kullanıcı geribildirimlerinde yüksek kültürel önyargılar olduğunu fark etti.

Bulgulardan bazıları: Rus kullanıcılar Amerikan kullanıcılara göre 2 kat daha sık negatif geribildirim bırakıyor ama Japon kullanıcılar da Amerikan kullanıcılara göre %10 daha az negatif geribildirim bırakıyor. Bu önyargıyı mekanın bulunduğu ülkeye göre normalize ediliyor artık.

Onaylanmış Check-in’lerden Yürüme Trafiği

Genel olarak insanların kaliteli mekanlara gitmeyi sevip, düşük kaliteli mekanlardan uzak durmayı istiyor. Yüksek kaliteli restoranlar, örneğin New York şehrinin yukarı batı yakasında olan popüler lüks restoranlardan birisi ruh gıdası üzerine uzmanlaşmış, farkı ziyaretçilerden oluşan düzenli bir akış deseni oluşturuyor. Birinin o bölgede yaşadığını veya başka bir bölgede yaşayan yemek meraklısı olduğunu veya şehir dışından gelen ve unutulmayacak bir yemek arayan turist olup olmadığını normalde ne zaman ve nerelerde check-in yaptığına bakarak bulunabiliyor.

Yakup'un Turşuları 22 bin’in üzerinde Foursquare kullanıcısına hizmet vermiş.
Jacob’s Pickles, 22 binin üzerinde Foursquare kullanıcısına hizmet vermiş.

Bir mekan, ne kadar fazla trafik çekerse değerlendirmesi de o kadar fazla oluyor. Trafik sinyalleri mahalle, şehir ve kategoriye göre normalize ediliyor. Böylece mahalledeki bakkal Haydar Amcanın dükkanı, İstanbul Atatürk Havalimanı ölçeğindeki bir mekan ile rekabet etmek zorunda kalmıyor. Trafiğin değerlendirmelere katılması, sistemin zararlı kullanıcılara karşı doğal bir savunma mekanizması olarak da işe yarıyor. Ayrıca spamcıların hiçbir zaman ziyaret etmedikleri mekanlara önyargılı tavsiyeler bıraktığını saptanıp bir güvenlik ağı oluşturulabiliyor. Buradakilerin tersi de mümkün, ne kadar tekrar eden ziyaretçi olduğunu saptayıp sadakat temelli olarak mekan hakkındaki değerlendirmeyi pozitif yönde artıran bir sistem de var.

Zamanın İşareti

Yukarıda tatışılanlara ek olarak, kullanıcının uzmanlığından türeyen, yüklenen fotoğraflardan gelen ve yeterli miktarda verisi olmayan yeni mekanlar için farklı skorlar da var. Bütün bu sinyaller günlük olarak güncellenip kullanıcıya mümkün olan en güncel bilgi sunuluyor. Dünyayı daha lezzetli yapma misyonu bakımından türünün tek örneği bir değerlendirme sistemi, kullanıcıların günlük hayatlarındaki en iyi seçimleri yapmaları konusunda teşvik ediyor.

Eğer Foursquare Veri Bilimi hakkında daha güncel konuları merak ediyorsanız, daha fazlasını Foursquare’in Medium sayfalarında bulabilirsiniz ve abone olup haber bülteni alabilirsiniz.

Barışcan Tunalı

Ege Üniversitesi Bilgisayar Mühendisliği mezunu, 1990 model, gezmeyi tozmayı sever, evde oturmak zor gelir. Naçizane uzmanlık alanı iş zekâsı ve veri madenciliğidir.

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir