Arama motorunun işlevi öncelikle kullanıcı sorgularına yanıtlar sunmaktır. Arama motoru, sorgulara yanıt olarak dizininde bulduğu web sayfalarının bağlantılarını listeler. 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ği aşağıda görülmektedir:
Günümüzde on iki sonuçtan daha azını sağlayan bir arama sorgusu bulmak zordur. Aramaların çoğu kullanıcıyı milyonlarca web sayfasına yönlendiren bağlantılar sağlar. Bir sorguyla potansiyel olarak eşleşen yanıt 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 ilgili 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 saptayarak ölçmek ve herkesi dikkate almak 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ı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 her gün 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 önceki deneyimlerine 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 işlevlerini yerine getirebilmeleri için öğrenebilmeleri 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 sorgusuna doğru yanıt vermek için sorunun neden kaynaklandığını dikkate alması 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 ilgili olduğuna karar vermekte büyük önem taşır. Bir arama motorunun kullanıcının sorgusuyla ilgili 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” yanıt 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 ilgili 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 sertliği gibi. 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 1990’ların başından itibaren arama teknolojilerinde kullanılmaktadır. Farklı arama sistemleri farklı modeller kullanır. Öğrenen bilgisayar teknolojisindeki sorunlardan biri ilgili-ilgisiz 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 saptayacaktır. Ö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 ilgili olabilir. Bu durumda bilgisayar söz konusu faktörlerin [elma] arama sorgusuyla ilgili arama sonuçlarına uygun olduğuna karar verebilir. Aynı zamanda, elmalar hakkında gerçekten ilgili 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 önemli ö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 ilgililik düzeyini belirlemek için çok sayıda faktörü dikkate almasını sağlamasıydı. Üstelik arama motorunun, “doğruyu” “doğru olmayan”dan 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 ilgili 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, sayfaların sorguyla ne kadar ilgili olduğunu belirlemesi ve bunları en ilgili 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 kullanıcıların beklemeye sabrı 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 ilgili web sayfalarını içerir.
Sonraki aşama sunucuların ürettiği en ilgili 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 ilgili web siteleri kullanıcının sorusuna neredeyse anında yanıt alabilmesi için arama sonuçları olarak en üst sıralarda gösterilir.
Sıralama şu şekilde yapılır: