Blog

DFW’de 1.296 yapay zeka araması yaptık: bunun için kurduğumuz motoru anlatıyoruz

Vimina’nın DFW araştırmasının tam yöntemi: milyonlarca gerçek aramadan oluşan bir veritabanına göre ağırlıklandırılmış komut modeli, cevaplardaki değişimi ölçmek için tekrarlanan çalıştırmalar, kontrollü veri toplama ve denetlenebilir bir puanlama modeli. Sistemi kuran mühendisler anlatıyor.

Yapay zeka görünürlüğü satan ajansların çoğu size motorların ne istediğini anlatır; neredeyse hiçbiri bunu ölçmemiştir. Biz mühendisiz. Bu yüzden Vimina olarak hiçbir şey satmadan önce bir ölçüm aracı geliştirdik. Ekibimizden biri Boston University’de yapay zeka alanında yüksek lisansını tamamlıyor, diğeri Columbia University’de çalışıyor. Danışmanımız veri analitiği alanında doktora yapmış. Aşağıda gerçek yöntemimizi rakamları, sabitleri ve ters giden kısımlarıyla birlikte bulacaksınız. Tek paragraflık özeti şöyle: İki yapay zeka cevap yüzeyinde ve sekiz DFW şehrinde 1.944 veri toplama işi çalıştırdık, sistemin sınıflandıramadığı yerlerde 10.279 kaynağı elle denetledik ve dört sektörü, her ağırlığı yazılı olan bir modelle puanladık.

Soruyu netleştirmek

Belirli bir DFW şehrinde yaşayan bir tüketici, bir yapay zeka motoruna satın alma niyeti yüksek, yerel bir hizmet sorusu sorduğunda cevapta hangi kaynaklar gösteriliyor, bu cevap zaman içinde ne kadar sabit kalıyor ve cevabın ne kadarını bir işletme meşru yollarla etkileyebilir? Soru bulanık sorulursa ortaya bulanık ajanslar çıkar. Net sorulduğunda ise bir ölçüm problemine dönüşür; ölçüm problemlerinin de mühendislikte bir karşılığı vardır.

Komutları tahmin etmedik, verilerden bulduk

Komutlar kötüyse araştırma da kötü olur. Bir odaya kapanıp insanların ne yazdığını hayal ederek komut uydurmadık. Komut modelimiz iki katmandan oluşuyor. Birincisi niyet sınıflandırması: hiper yerelden (Arlington’da yakınımdaki kaporta servisi) nasıl yapılır, karşılaştırmalı, çok koşullu, görüş ve deneysel sorulara uzanan yedi tüketici niyeti türü var ve her birinin modelde açıkça tanımlanmış bir ağırlığı bulunuyor. Hiper yerel sorguların ağırlığı 0,30, çünkü gerçek yerel hizmet talebinin büyük kısmı şehir adı ya da “yakınımda” geçen aramalardan geliyor. Ağırlıkların hepsi birinin kafasında değil, bir yapılandırma dosyasında yazılı.

İkinci katman bu şablonları gerçekte gözlemlenen talebe dayandırıyor. Sorguları, milyonlarca anahtar kelime için gerçek arama hacmini, ilişkili sorguları ve niyet sınıflandırmasını izleyen ticari bir arama veritabanına göre ağırlıklandırıyor ve genişletiyoruz. Canlıda çalışan tarayıcımız bunu bir kaldıraç puanıyla formüle ediyor: hacim, ticari değer, niyet uyumu ve fırsat birbiriyle çarpılıyor ve her biri sıfır ile bir arasında bir değer alıyor. Çarpmayı bilerek seçtik. Hacmi çok yüksek ama ticari niyeti olmayan bir sorgu sıfıra yakın puan alır; kimsenin yazmadığı bir sorgu da ne kadar kazanılabilir olursa olsun sıfıra yakın puan alır. Örnekleme bütçesi, dört faktörün aynı anda sıfırdan büyük olduğu komutlara gider. Önemli olanı örneklemekle akla ilk geleni örneklemek arasındaki fark da budur.

DFW araştırmasında bu süreç, dört sektörde 140 temel şablon üretti. Şablonlar niyete göre coğrafi olarak genişletildi: hiper yerel şablonlar sekiz şehrin hepsinde, çok koşullu olanlar dört şehirde, geri kalanlar ise iki ana şehirde, Dallas ve Fort Worth’te çalıştırıldı. Böylece 280 somut sorgu birimi ortaya çıktı; motorlar ve tekrarlar da eklenince bu sayı 1.944 veri toplama işine ulaştı.

Aynı sorguyu neden birden fazla kez çalıştırdık?

Tek bir cevap size bugün kimin kazandığını söyler. Sıralamanın oturup oturmadığını ya da hâlâ değişip değişmediğini ise söyleyemez; oysa cevaplara girmeye çalışan biri için asıl önemli olan budur. Bu yüzden en kritik iki niyet türü, yani hiper yerel ve karşılaştırmalı sorgular, üçer kez çalıştırıldı. Ardından değişimi ölçtük: Aynı komuta verilen her cevap çiftinde kaynak gösterilen alan adı kümelerini alıp aralarındaki farkı Jaccard uzaklığıyla hesapladık. Sıfır, atıfların birebir aynı olduğunu; bir ise hiç örtüşme olmadığını gösteriyor. Bu hesabı iki şekilde yapıyoruz: zaman içindeki değişim için birebir aynı tekrarlı çalıştırmalar arasında, coğrafi değişim için aynı şablonun farklı şehir varyantları arasında. İki sonucu 60/40 oranında birleştiriyoruz. Ayrıca belirtmeye değer bir uç durum var: Hiç kaynak göstermeyen iki cevap oynak değil, tutarlı biçimde seyrektir; bu yüzden değişim sıfır sayılır. Bu iki durumu karıştırmak, motorun kaynak bulmakta en çok zorlandığı yerde sıralamanın değiştirilebilirliğini olduğundan yüksek gösterirdi.

Değişimin yüksek olması, motorun henüz standart bir kaynak kümesinde karar kılmadığını gösterir. Bu da sıralamanın değiştirilebileceği ve iyi yapılandırılmış yeni bir oyuncunun kendine yer açabileceği anlamına gelir. Bir sektörün açık olduğunu sezgiyle değil, veriyle söyleyebilmemizi sağlayan rakam bu.

Neleri sabit tuttuk?

  • Tek model, tek yapılandırma: ChatGPT cevapları, web arama aracı açık şekilde OpenAI Responses API üzerinden alındı ve her işte aynı model kullanıldı. Böylece cevaplar arasındaki farklar bizim istemci ayarlarımızdan değil, cevapların kendisinden kaynaklanıyor.
  • Sabitlenmiş konumlar: Google AI Mode’a yapılan her çağrıda şehir düzeyinde açık bir konum bilgisi gönderildi; belirsiz çözümlenen tek şehir de düzeltildi (McKinney, Collin County’ye sabitlendi). Hiçbir cevabın genel bir ABD sonucuna kaymasına izin verilmedi.
  • Değişmeyen şablonlar: Komutlar, temel şablon matrisinden kodla üretiliyor. Çalıştırma sırasında hiçbir komut yeniden yazılmadı.
  • İçerik adresli önbellek: Her ham cevap; motor, sorgu ve çalıştırma numarasından oluşan bir anahtarla önbelleğe alınıyor. Süreç kesilirse kaldığı yerden devam ediyor, aynı iş için asla iki kez ödeme yapılmıyor ve rapordaki her rakam saklanan bir ham cevaba kadar geri izlenebiliyor.
  • Deneme çalıştırmasıyla maliyeti hesaplayan katı bir bütçe tavanı: Öngörülen harcama tavanı aşarsa çalıştırma durduruluyor. Disiplinli olmak, sonradan özür dilemekten ucuzdur.

Puanlama modeli nasıl çalışıyor?

Her sektör, birbiriyle çarpılan üç faktörden oluşan bir fırsat puanı alıyor: cevapların ne kadar değiştirilebilir olduğu, rekabette ne kadar boş alan bulunduğu ve tek bir müşterinin ne kadar değerli olduğu. Burada da aynı nedenle çarpma kullandık: Faktörlerden biri sıfıra yakınsa fırsat da sıfıra yakındır; toplama yapsaydık bu durum gizlenirdi. Değiştirilebilirlik faktörü de ölçülen dört sinyalin ağırlıklı bir karışımı. Açıklık: bir eksi atıfların yoğunlaşması; yani Wikipedia tarzı bir tekel sıfıra yakın, atıfların pek çok alan adına eşit dağıldığı bir alan ise bire yakın puan alır. Oynaklık: yukarıda anlattığımız değişim ölçüsü. Seyreklik: cevaplarda ne kadar az sayıda farklı kaynak gösterildiği ve hiç kaynak göstermeyen cevapların oranı. Son olarak mevcut oyuncuların zayıflığı: En çok kaynak gösterilen rakipleri tarıyor; llms.txt dosyası yayımlayıp yayımlamadıklarını, yapılandırılmış veri kullanıp kullanmadıklarını ve içeriklerinin güncel olup olmadığını otomatik olarak kontrol ediyoruz. Zayıf bir rakibi geçmek mümkündür ve zayıflık ölçülebilir.

Müşteri değeri de tahmine dayanmıyor. Her sektör için ortalama iş tutarı, aciliyet, sigorta faktörü ve satışa dönüşme oranı çarpılarak hesaplanıyor. Hasar onarımında iş başına bedel altı bin dolar ve aciliyet neredeyse tam. Eşya ve hurda toplama daha fazla ham atıf üretse de sıralamanın zirvesine hasar onarımının çıkabilmesinin nedeni bu.

Kimsenin yapmak istemediği denetim

Veri toplama bittiğinde kaynak gösterilen alan adlarının %89’unu sınıflandırıcımız tanımıyordu; bu haliyle sahiplenilebilirlik rakamları anlamsız olurdu. Biz de uzun kuyruğu elden geçirdik: toplam 8.900 anılmayı kapsayan 3.045 bilinmeyen alan adı. Neredeyse hepsi işletmelerin kendi web siteleri çıktı; yani tam da bir işletmenin kontrol edebildiği kaynaklar. Her yeniden sınıflandırma, gerekçesiyle birlikte bir denetim dosyasına kaydediliyor. Az sayıdaki istisna ise ayrıca sınıflandırıldı: İki toplayıcı site sahiplenilebilir rehber olarak yeniden sınıflandırıldı; birden çok işletmenin kullandığı bir site oluşturucu alan adı ise tek bir işletmenin kontrolünde olmadığı için yarı sahiplenilebilir sayıldı. Nihai dağılım: Atıfların %97,2’si sahiplenilebilir, %1,9’u yarı sahiplenilebilir, %0,9’u kapalı.

Ölçümlerden çıkan sonuçlar

  • İki motor, iki ayrı strateji. Sahiplenilebilir rehber profilleri Google AI Mode atıflarının %15,6’sını, ChatGPT atıflarının ise %0,3’ünü oluşturdu. ChatGPT neredeyse yalnızca işletmelerin kendi web sitelerini kaynak gösteriyor. İki yüzeyde öne çıkmak için yapılması gerekenler neredeyse hiç örtüşmüyor.
  • ChatGPT, cevaplarının %8,5’inde hiçbir kaynak göstermedi; Google AI Mode’da bu hiç olmadı. Kaynak gösterilmeyen cevapların henüz bir sahibi yok.
  • Kaynak gösterilen tüm kaynakların kabaca %98’i, bir işletmenin sahibi olabileceği ya da sahiplenebileceği kaynaklar. Yani bu yarış kazanılabilir ve bunu artık bir slogan olarak değil, ölçüme dayanarak söylüyoruz.
  • Hasar onarımı, müşteri değeri ve cevaplardaki dağınıklık sayesinde ölçeğimizde 0,718 puanla ilk sırada yer aldı. Ölçtüğümüz en dağınık cevaplar ise ev hizmetlerindeydi; yani kazananların en az belli olduğu alan ev hizmetleri.

Ters gidenleri de açıkça yazıyoruz

İki şey ters gitti ve ikisini de paylaşıyoruz. Birincisi, Google AI Overview verilerini toplayan aracımızda bir hata vardı: Gerekli olan ikinci asenkron isteği hiç göndermiyordu. Bu yüzden o taramaların %82’si boş döndü ve ham içerik, yeniden çalıştırma yapılmadan kurtarılamıyor. Bu yüzeyi devreden çıkardık ve Google sinyali olarak eksiksiz toplanan Google AI Mode verilerini kullandık. Bu değişiklik nihai puan tablosunu 0,01’den az etkiledi. İkincisi, çalıştırma hücrelerinin %74’ünü hiper yerel komutlar oluşturdu. Dolayısıyla karşılaştırmalı ve nasıl yapılır niyetleri yeterince örneklenmedi; bu araştırmayı en doğru haliyle bir hiper yerel araştırma olarak okumak gerekiyor. Verilerinde hiçbir dipnot olmadığını söyleyen bir tedarikçi, aslında verilerine hiç bakmadığını söylüyordur.

Motor bundan sonra nasıl gelişti?

DFW araştırması ilk nesildi. Bu çalışmadan doğan ve bugün canlıda kullandığımız tarayıcı, her yapay zeka motorunu farklı yüzeyler üzerinden gözlemlenen bir sistem olarak ele alıyor, her gözlemi bir güven aralığıyla örnekliyor ve bir sonucu ancak birbirinden bağımsız yüzeyler aynı şeyi gösterdiğinde raporluyor. Dolaylı bir ölçümü, doğruluğu daha yüksek bir ölçümle tek bir sayıda birleştirmeyi tasarım gereği reddediyor. Raporlarında da dolaylı bir ölçümü tüketicinin kullandığı uygulamanın kendisiymiş gibi sunmak yerine “yapay zeka aramasındaki görünürlük” ifadesini kullanıyor. Bu ölçülü tavır da bir mühendislik kararı. Bütün bunların dayandığı literatür herkese açık: KDD 2024’te sunulan üretken motor optimizasyonu (GEO) çalışması, içerik değişiklikleriyle ortalama yaklaşık %40, sıralamada geride kalan sitelerde ise %115’e varan görünürlük artışı ölçtü. Bu çalışmanın geriden gelen işletmelere giderek büyüyen bir avantaj sağladığını düşünmemizin yayımlanmış dayanağı bu.

Müşterilerimiz için her ay çalıştırdığımız ölçüm aracı da tam olarak bu. Ölçüyoruz, motorların okuduğu içeriği değiştiriyoruz ve yeniden ölçüyoruz. İkinci ölçümü gösteremeyen bir tedarikçi, size ilk ölçümü sonsuza kadar satmaya devam eder.