Arama motorunun işlevi öncelikle kullanıcı sorgularına cevaplar sağlamaktır. Arama motoru, sorgulara cevaben dizininde bulduğu web sayfalarının bağlantılarını sağlar. Bu dizin, arama motoruna kayıtlı web sayfalarının veritabanıdır. Bu sayede kullanıcının sorgusu arama sonuçları biçiminde yanıtlanır. Bunlar içeriği sorguyla eşleşen web sayfalarının köprüleridir.
Sistemin nasıl işlediğini aşağıda görebilirsiniz:
Günümüzde on iki sonuçtan daha azını sağlayan bir arama sorgusu bulmak zordur. Aramaların çoğu milyonlarca web sayfasına yönlendiren bağlantılar sağlar. Bir sorguyla potansiyel olarak eşleşen cevap sayısı internetin hızla büyümesine paralel olarak büyük bir hızla artmaktadır. Kullanıcıya ilgili sorguyla potansiyel olarak eşleşen tüm sayfaları sağlamak anlamsızdır. Bunun yerine, bir arama motoru arama sonuçlarını sıralandırarak en alakalı olanları üstte gösterir.
Bu arama sonuçlarına bakan kullanıcı tatmin olabilir, pek tatmin olmayabilir veya hiç tatmin olmayabilir. Aradığını bulduğunu düşünen bir kullanıcı arama kalitesinin de yüksek olduğu kanısına varır. Aradığını bulamayanlar ise arama kalitesinin düşük olduğuna inanır. Kullanıcılar kendilerine şunu sorar: Bu bilgi benim için yararlı mı? Burada kişisel görüşleri tespit ederek ölçmek ve herkesi hesaba katmak gerekir. Arama kalitesi arama sonuçlarının ne kadar iyi sıralandığına bağlıdır. Dolayısıyla sıralama derken arama sonuçlarını kullanıcının beklentilerine uygun bir şekilde sıralanması kastedilmektedir.
Öğrenen bilgisayarlar
Bütün sorgular için her zaman en iyi sonucu sağlayacak kusursuz bir algoritma tasarlamak imkansızdır. Yandex’in arama motoru günde milyonlarca sorgu işler. Bu sorguların neredeyse yarısı birbirinden farklı sorgulardır. Arama motorunun bu kadar çok sorguyla başa çıkabilmesi için tecrübelerine dayanarak karar vermeyi bilmesi, yani öğrenmesi gerekir.
Öğrenen bilgisayarlar arama teknolojisi dışında da kullanılmaktadır. Örneğin, konuşma veya metin tanıma yazılımların da fonksiyonlarını yerine getirmek için öğrenebilmesi gerekir. 1950’lerde kullanılmaya başlayan “öğrenen bilgisayar” terimi bir bilgisayarın normal insan davranışlarına benzer görevleri yerine getirebilmesini sağlama çabalarını tanımlamaktadır. Ancak, bu davranışları bilgisayarların “anlayacağı" algoritma modellerine dökmek zordur. Öğrenebilen bilgisayarların, girdi algoritmalarını, deneysel verileri ve tecrübelerini temel alarak kendi kararlarını alabilmesi gerekmektedir.
Karar almak insani bir yetidir ve bilgisayarlar aslında bunu başaramaz. Bunun yerine, bilgisayarlar, bir web sayfasının kullanıcının sorusuna uygun bir yanıt olup olmadığına karar vermeye yardımcı olacak kurallar oluşturmayı ve uygulamayı öğrenir. Bu kurallar web sayfalarının özelliklerine ve kullanıcı sorgularına dayanır.
Belirli bir sayfaya yönlendiren bağlantı sayısı gibi hem web sayfasını hem de arama sorgusunu tanımlayan bazı özellikler statiktir. Bir web sayfasını tanımlamak, web sayfasında arama sorgusuyla eşleşen kelimeler olup olmadığı ve bir sayfada kaç adet eşleşen kelime ve bunların nerede bulunduğu gibi özellikler ise dinamiktir. Bu da arama motorunun, kullanıcının sorusuna doğru yanıt vermek için sorunun neden kaynaklandığını hesaba katması anlamına gelir.
Web sayfaları ve arama sorgularının sayısal olarak gösterilebilen özelliklerine sıralama faktörleri denir. Bu faktörler doğru arama yapmakta ve hangi sonuçların alakalı olduğuna karar vermekte büyük önem taşır. Bir arama motorunun kullanıcının sorgusuyla alakalı sonuçlar sağlamak için bunun gibi birçok arama faktörünü dikkate alması gerekir.
Üç sıralama faktörü bulunur:
Kullanıcıların beklentilerine uygun sonuçlar sağlamak için arama motorunun örnek kullanıcı sorguları ve bunlarla eşleşen sonuçlara gereksinimi vardır. Bunların da kullanıcılar tarafından tatmin edici olarak değerlendirilmiş olması gerekir. Sonuçları değerlendiriciler (bir web sayfasının belirli bir sorguya “doğru” cevap olup olmadığına karar veren ölçütler) değerlendirir. Değerlendiriciler; bir arama motorunun ilgili sorgularla birlikte web sayfaları ile özellikleri arasındaki bağıntıları “bulmayı öğrenmesi” için bir dizi arama cevabı, yani öğrenim örneği oluşturur. Öğrenim örneğinin, gerçek kullanıcılarının arama modellerine uygun olması için günlük hayatta görüldüğü sıklıkta bütün ilgili arama sorgularını içermesi gerekir.
Arama motoru, öğrenim örneğindeki web sayfaları ve özellikleri arasındaki bağıntıları bulduktan sonra, belirli bir kullanıcı sorgusu için sağlayabileceği arama sonuçlarına uygun en iyi sıralama formülünü seçerek en alakalı sonuçları listenin başında gösterir.
Bir bilgisayara en lezzetli elmaları nasıl seçeceğini öğretmeyi düşünün: Önce, değerlendiriciler bütün elmaları ısırarak bunları "tadına bakılan elmalar" grubunda toplar ve tüm lezzetli elmaları sağa, tüm ekşi elmaları da sola yerleştirir. Bu kasada, bir bahçede yetişen tüm elmalar bahçede yetiştikleri oranda bulunacaktır. Bilgisayar, elmaları tadamaz ancak büyüklük, renk, şeker miktarı, sertlik, yapraklı veya yapraksız olma gibi özelliklerini analiz edebilir. Tadına bakılan elmalar grubu, bir öğrenim örneğidir ve bu da bilgisayarın en iyi özelliklere sahip elmaları seçmeyi öğrenmesini sağlar: büyüklük, renk, elmanın ne kadar tatlı olduğu ve sertlik. Ancak, hatalar olacaktır. Bilgisayar böcek larvalarıyla ilgili bilgi sahibi değilse, seçtiği en iyi elmalar da kurtlanmış olabilir. Hata olasılığını en aza indirgemek için bilgisayarın olabildiğince çok elma özelliğini hesaba katması gerekir.
MatrixNet
Öğrenen bilgisayar konsepti 90’ların başından itibaren arama teknolojilerinde kullanılıyor. Farklı arama sistemleri farklı modeller kullanıyor. Öğrenen bilgisayar teknolojisindeki sorunlardan biri alakalı-alakasız bütün verileri arama sonuçlarına ekleme anlamında “gerekli-gereksiz bütün sonuçları ölçütlere uydurma” sendromudur. Bütün verileri aynı sepette toplayan bu tür bir algoritma, kitapta okuduğu bütün hastalıklara yakalandığını düşünen hastalık hastası bir tıp fakültesi öğrencisine benzer. Yeterince deneyimli olmayan bu öğrenci gördüklerine bahane uydurmaktadır. Bir bilgisayar da küçük ve yetersiz bir öğrenim örneğinden (değerlendiricilerin “doğru” olduğunu tahmin ettiği sonuçlar) yola çıkarak çok fazla sayıda faktörü hesaba katmaya çalıştığında (bu durumda, web sayfaları ve arama sorgularının özellikleri) gerçekte var olmayan bağıntılar tespit edecektir. Örneğin, öğrenim örneğine aynı faktörlere sahip (2 KB'lık dosya boyutu, mor renkli arka plan ve “A” harfiyle başlayan gövde metni gibi), ancak birbirinden farklı iki sayfa dahil edilmiş olabilir. Üstelik tümüyle rastlantı eseri olarak her iki sayfa da [elma] arama sorgusuyla alakalı olabilir. Bu durumda bilgisayar söz konusu faktörlerin [elma] arama sorgusuyla alakalı arama sonuçlarına uygun olduğuna karar verebilir. Aynı zamanda, elmalar hakkında gerçekten alakalı ve yararlı bilgiler veren web sayfaları da bu faktörlere sahip olmadığı için önemsiz olarak değerlendirilebilir.
Yandex, 2009 yılında, yeni bir bilgisayara öğretme yöntemi olan MatrixNet’i kullanmaya başladı. Bu yöntemin en büyük özelliği; bir yandan gerekli-gereksiz bütün sonuçları ölçütlere uydurma olasılığını azaltırken, diğer yandan da Yandex’in arama motorunun arama sonuçlarının alaka düzeyini belirlemek için çok sayıda faktörü hesaba katmasını sağlamasıydı. Üstelik arama sisteminin, “doğruyu” “doğru olmayandan" ayırt etmeyi öğrenmesi için büyük bir arama sonucu örneğine de ihtiyacı yoktu. Bu da sistemin var olmayan bağıntılar bulma hatasına düşmesini önlüyordu.
MatrixNet, çok sayıda faktörü bir arada dikkate alan uzun ve ayrıntılı bir sıralama formülünün oluşturulmasını sağlamaktadır. Buna benzeyen diğer bilgisayara öğretme yöntemleri ise ya az sayıda faktör kullanarak benzer sonuçlar üretir ya da daha büyük bir öğrenim örneğine gerek duyar. MatrixNet, on binlerce faktöre dayanan bir arama formülü oluşturur. Bu da arama sonuçlarının çok daha alakalı olmasına imkan tanır.
MatrixNet’in bir diğer önemli özelliği de farklı arama sorguları için farklı sıralama formülleri oluşturulmasını sağlaması. Örneğin, sıralama algoritmasında müzik aramalarını kolaylaştıracak değişiklikler yapmak diğer sorgu türlerinin kalitesini düşürmeyecektir. Sıralama algoritmaları onlarca düğmesi, şalteri, kolu ve kadranı olan karmaşık bir makine gibidir. Nitekim böyle bir makinede tek bir şalteri çevirmek bile bütün makinenin işleyişini değiştirecektir. MatrixNet ise bütün sistemin değiştirilmesine gerek kalmadan her sorgu türü için ayrı parametreler belirlenmesine imkan verir.
Her sıralama formülünde tek bir parametrenin değiştirilmesi:
MatrixNet, gerekirse sıralama faktörlerinin ölçüm aralığını da otomatik olarak değiştirebilir. Bu, havaalanında fısıldayarak konuşan birini duymaya çalışmaya benzer. MatrixNet aynı anda hem fısıltıyla konuşanları hem de havalanan uçakları tek tek ve net olarak duyabilir.
Sıralama
Bir arama motorunun kullanıcılarının sorguları için milyonlarca sayfanın özelliklerini değerlendirmesi, ne kadar alakalı olduğunu belirlemesi ve bunları en alakalı sonuç üste gelecek şekilde sıralaması gerekir. Sayfaları arka arkaya taramak çok sayıda sunucu kullanılmasını gerektirir (bütün bu sayfaları hızla işleyebilecek kadar çok sayıda). Bu işlem aksi halde çok uzun sürer. Ancak, arama yapanların beklemeye tahammülü yoktur. Web sayfalarını çok sayıda sıralama faktörüne göre kontrol etmek için çok güçlü işlemciler gerektirmeyen MatrixNet bu sorunu çözer.
Her bir sorgu için 1000’den fazla sunucu aynı anda arama yapar. Her sunucu indeksin kendine ayrılan bölümünü tarayarak en iyi sonuçlardan oluşan bir liste üretir. Bu liste o sorguyla en alakalı web sayfalarını içerir.
Sonraki aşama sunucuların ürettiği en alakalı sayfalar listelerine dayalı en iyi sonuçların nihai listesini çıkarmaktır. Bu sonuçlar da çok sayıda sıralama faktörü ile kombinasyonunun dikkate alınmasını sağlayan uzun ve ayrıntılı MatrixNet formülünü kullanarak sıralanır. Böylece, en alakalı web siteleri kullanıcının sorusuna neredeyse anında yanıt alabilmesi için arama sonuçları olarak en süt sıralarda gösterilir.
Sıralama şu şekilde yapılır:
0 yorum:
Yorum Gönder