BBY 220 - Bilgi Erişim İlkeleri Web Arama Motorları
Arama Motorları Arama motorlarının temeli geleneksel bilgi erişim sistemleri mimarisine dayanmakla birlikte, gerek mimari gerek işlevsel açıdan bazı farklılıklar içermektedir. Arama motorları temel olarak 3 ana bileşenden oluşur Web örümceği (crawler) bileşeni Dizinleme (indexing) bileşeni Arama (search) bileşeni
Arama Motorları ve BES Farklılıklar Bilgi erişim sistemlerinde dizinlenecek belgeler durağandır (statik). Başka bir deyişle, bir belge bir defa dizinlendikten sonra bir daha dizinleme işlemine tabi tutulmaz. Diğer taraftan, Web kaynakları tahmini olarak ortalama 75 gün değişmeden kalmaktadırlar (Brake, 2001), . Web kaynaklarının %40’ı her ay değişiyor (Kahle, 1996), . Internet ortamındaki bir bağlantının (link) ortalama ömrünün 44 gün olduğunu belirtmektedir (Kahle, 1997), . Bir Web sitesinin “yarı ömrü”nün (half-life) iki yıl civarında Bu tür bilgiler, arama motorlarının mimarisinin bilgi erişim sistemlerininkine göre elbette farklı olmasını gerektirmektedir çünkü çok daha dinamik bir yapı var.
Bilgi Erişim Sistemleri İşlevsel Mimarisi ön yüz arka yüz (Tonta, Bitirim, ve Sever, 2002) ön yüz
Arama Motorları İşlevsel Mimarisi
Web Örümceği Bileşeni Ziyaret edilecek olan sayfaların bir listesini tutar, sıraya uygun olarak bu sayfaları ziyaret eder, içeriklerini getirir ve link analizi yaparak ziyaret edilmesi gereken yeni sayfaları keşfeder. Web örümcekleri, başlangıçta hangi web sayfalarını ziyaret edeceklerini bilmek zorundadır bu nedenle bir başlangıç listesi (seed) verilir. Başlangıç listeleri için genellikle DMOZ (www.dmoz.org) linkleri kullanılıyor.
Web Örümceği Bileşeni Döngüsü WebDB’de başlangıçta ziyaret edilecek olan tüm sayfaların sıralı listesi tutuluyor, İlk iterasyonda (çevrimde) ziyaret edilecek olan web sayfalarının listesi oluşturuluyor (URL Listesi), Sayfa getirici modülü belirli parametrelere göre, web üzerinden, listedeki her bir web sayfasının içeriğini sisteme getiriyor, Erişilen sayfayla ilgili olarak elde edilen yeni bağlantılar (link), sayfalara erişim zamanı gibi güncellemeler oluşturuluyor, WebDB üzerindeki adresler güncelleniyor ve bir sonraki iterasyona geçiliyor.
Sayfa Getirici Sayfa Getirici Parametreleri Derinlik (depth) ve getirilecek belge sayısı (topN) gibi 2 önemli parametre var. Derinlik: ilgili web kaynağında dikeyde ne kadar aşağıya inileceğini gösteriyor, Belge sayısı: her bir seviyede erişim sağlanacak belge sayısını ifade ediyor.
Web Sitelerinin Hiyerarşik Yapısı
Sayfa Getirici Belirli dillere özel web örümcekleri gerçekleştirmek için dil tespiti gerekir, Örneğin, çok dilli web üzerinde sadece Türkçe belgelerin toplanmasını sağlayacak akıllı web örümceği, Çok dilli ortamda dil tespiti yapmak üzerinde çalışılan akademik bir problem, Problem 2 farklı biçimde olabiliyor 1) Web üzerinde her bir belgenin dilini tespit etmek 2) Sadece belirli dille yazılmış belgeleri seçmek
Dil Tespiti Web üzerindeki Türkçe belgelerin tespit edilmesine yönelik olarak kullanılan farklı yöntemler var ve yöntemler genellikle istatistiklere dayanıyor, - Sesli / sessiz harf yaklaşımı: Türkçe’de kelimelerin %50’si sesli harfle bitiyor. İngilizce kelimelerin %28’i sesli harfle bitiyor - Türkçe heceleme kurallarına göre karar verme: bir belgede ki kelimelerin %70’i Türkçe heceleme kurallarına uygun olarak heceleniyorsa belge Türkçe’dir. - Durma kelimeleri yaklaşımı: bir belge içinde Türkçe için tanımlanan durma kelimelerinden farklı n tanesi geçiyorsa belge Türkçe’dir. - Türkçe karakter yaklaşımı: bir belge içerisinde Türkçe karakterlerden (ı, ç, ş, ğ, ü) farklı n tanesi geçiyorsa belge Türkçe’dir.
Web Örümceği Politikaları Seçme politikası (selection policy): hangi sayfaların getirileceğini belirler, Tekrar ziyaret etme politikası (re-visit policy): daha önce ziyaret edilen sayfaların, değişiklikler için tekrar ne zaman (ya da hangi aralıkla) ziyaret edileceği, Nezaket politikası (politeness policy): web sitelerinin arama motorlarının ajanları (bot) tarafından aşırı meşgül edilmemesi sağlanır, Paralel işleme politikası (parallelization policy): aynı anda sürdürülen crawl işlemleri nasıl koordine edilecek. http://en.wikipedia.org/wiki/Web_crawler
Web Örümceği Örneği (Seçme Politikası) Örnekte verilen web sitesi için topN: 3 ve depth:4 parametreleri için her bir iterasyonda keşfedilen yeni linkler ve getirilen sayfalar ne olur?
Web Örümceği Örneği 1. İterasyon Getirilen sayfalar: Homepage Keşfedilen linkler: Search, Statistics, Technology, Application, ContactForm 2. İterasyon Getirilen sayfalar: Search, Statistics, Technology Keşfedilen linkler: QuickStart, CDBasic, Internet, Network, Application, OrgChart, FAQ, SendMailFromForm,
Web Örümceği Örneği 3. İterasyon Getirilen sayfalar: QuickStart, CDBasic, Internet Keşfedilen linkler: Reference, Samples, Tutorial, Overview1, Overview2, Overview3 4. İterasyon Getirilen sayfalar: Reference, Samples, Tutorial Keşfedilen linkler: Download, Ref1, Ref2, Download, Tut1, Tut2, Tut3, Tut4
Sayfa Getirici (Seçme Politikası) topN bir derinlikte (hiyerarşik seviye) getirilecek toplam sayfa sayısını belirliyor, Peki bir derinlikteki sayfa sayısı topN parametresinden büyükse ne olacak? Örneğin, topN:3 ve örümceğin bulunduğu derinlikteki sayfa sayısı 15 ise örümcek hangi sayfaları getirecek? Bu durumda sayfalar arasında bir önceliklendirme yapılması zorunludur, Bu önceliklendirme genellikle daha değerli sayfaların seçilmesi şeklinde olur, Peki daha değerli sayfa nasıl anlaşılır? (Link Analizi)
Sayfa Getirici: Tekrar Ziyaret Etme Politikası Web örümceği tarafından getirilen ve indekste saklanan bir sayfa, bu sayfada zamana bağlı olarak meydana gelebilecek değişiklik ve güncellemeleri yansıtabilmesi için düzenli olarak tekrar ziyaret edilmelidir. Bu ziyaretlerin ne zaman yapılacağını belirlemek için sayfanın yenilenme (freshness) hızı ya da yaş (age) değerine bakılır. Bazı arama motorları bu değerlere bakmadan düzenli aralıklarla getirilen sayfaları tekrar ziyaret eder.
Sayfa Getirici: Nezaket Politikası Web örümcekleri tarafından kullanılan bot’lar, web siteleri için ilgili web serverlara sayfaları indirmek için istek yollarlar, Örümcekler tarafından kullanılan bant genişliği çok geniş olduğu için örümceğin kullandığı bot, ilgili web sitesinin sınırlı bant genişliğinin tamamını kullanabilir (server overload), Bu durumda, ilgili siteye erişmeye çalışan diğer kullanıcılar yoğunluktan dolayı sayfalara erişemez, bu istenmeyen bir durumdur. Bu tıkanıklığı engellemek için robots exclusion protocol yöntemi kullanılır, Bu protokolde sunucuda tutulan robots.txt dosyasında örümceklerin erişmesi istenmeyen sayfalar ve web sunucusuna örümcek tarafından yapılacak iki istek arasında geçmesi gereken zaman gibi parametreler yazılır. http://en.wikipedia.org/wiki/Robots_Exclusion_Standard
Sayfa Getirici: Paralel İşleme Politikası Web örümceklerinin eş zamanlı olarak pek çok web sitesini indirebilmesi gereklidir, bunu sağlamanın iki yolu var: 1) Aynı anda farklı bilgisayarlarda birden fazla web örümceğinin çalıştırılması, 2)Tek bilgisayarda aynı anda birden fazla iş parçacığının (thread) çalıştırılması. Arama motorları genellikle iki yöntemi birlikte kullanıyor.
Arama Sonuçlarının Derecelendirilmesi Pek çok arama motoru erişim fonksiyonu (vektör uzayı, olasılıksal, dil modeli v.b.) olarak kullanılan yöntemlerin belge/sorgu eşleşmesi için ürettiği skor değerlerine göre bir derecelendirme yapar, Google ile birlikte bu derecelendirme skoruna link alma skorları da eklendi. PageRank (Sayfa Derecelendirme) yöntemi, Internet üzerinde bir sayfaya diğer sayfalardan ne kadar fazla referans (link) verilirse o sayfanın o kadar değerli olacağı görüşü üzerine geliştirilmiştir. Bu yaklaşım “bilimsel bir çalışmaya diğer makalelerden ne kadar çok atıfta bulunulursa o çalışma o kadar önemlidir” mantığına benzemektedir.
Arama Sonuçlarının Derecelendirilmesi Pek çok arama motoru erişim fonksiyonu (vektör uzayı, olasılıksal, dil modeli v.b.) olarak kullanılan yöntemlerin belge/sorgu eşleşmesi için ürettiği skor değerlerine göre bir derecelendirme yapar, Google ile birlikte bu derecelendirme skoruna link alma skorları da eklendi. PageRank (Sayfa Derecelendirme) yöntemi, Internet üzerinde bir sayfaya diğer sayfalardan ne kadar fazla referans (link) verilirse o sayfanın o kadar değerli olacağı görüşü üzerine geliştirilmiştir. Bu yaklaşım “bilimsel bir çalışmaya diğer makalelerden ne kadar çok atıfta bulunulursa o çalışma o kadar önemlidir” mantığına benzemektedir.
Sayfa Derecelendirme Page Rank'in ana fikri şöyledir: Eğer bir A sitesi B sitesinin linkini yayınlamışsa bunun nedeni B sayfasının A sayfası ziyaretçileri tarafından dolaşılabilecek olarak düşünülmüş olmasıdır. Bu yapıya göre A sayfası B sayfasının pagerankini yükseltmiş olacaktır. A sayfası ne kadar yüksek pageranke sahipse B sayfasının pagerank değeri de buna orantılı olarak artacaktır. A sayfasında ne kadar az dışarı link varsa, B sayfasının pagerank değeri o kadar yüksek olacaktır. Bu mantığa göre A sayfası sadece B sayfasını link verilecek değerde görmüşse, B sayfasının pageranki çok daha fazla artacaktır.
Sayfaların PageRank Değeri Nasıl Hesaplanıyor? Aslında PageRank değeri kullanıcının rastgele bir linki tıkladığında ilgili sayfaya gitme olasılığını göstermektedir, Olasılık 0-1 arasında bir değerle ifade edilir ve 0.5 bir şeyin olma olasığının %50 olduğu anlamına gelir, Bir sayfanın page rank değerinin 0.5 olması: rastgele bir linke tıklayan kullanıcnın page rank değeri 0.5 olan sayfaya gelme olasılığının %50 olduğunu gösterir.
Sayfaların PageRank Değeri Nasıl Hesaplanıyor? Örnek Elimizde A, B, C ve D sayfalarından oluşan bir derlem olsun Başlangıçta her bir sayfaya gitme olasılığını eşit kabul edersek her bir sayfanın pageRank değeri 0.25 olur (1/4=0.25) Elimizdeki sayfalardan B, C ve D’nin her birinin A sayfasına link verdiğini kabul edelim ve A için güncellenmiş pageRank değerini bulalım: PR(A)= PR(B)+PR(C)+PR(D) = 0.25+0.25+0.25 = 0.75 Şimdi B sayfasının aynı zamanda C sayfasına ve D’nin diğer tüm sayfalara link verdiğini düşünelim, o halde verilen linklerin ağırlıklarının düşürülmesi gerekir ki bu da sayfanın başlangıçtaki pageRank değerinin verilen toplam link sayısına bölünmesi ile elde edilir. O halde A sayfası için yeni pageRank değeri aşağıdaki gibi hesaplanır: PR(A) = (PR(B)/2)+(PR(C)/1)+(PR(D)/3)=0,125+0,25+0,083=0458
Sayfaların PageRank Değeri Nasıl Hesaplanıyor? C B A D
Erişim Çıktısı Nasıl Oluşuyor Derleme bir sorgu yollandığında sorgu/belge eşleştirmesi vektör uzayı modeline göre hesaplanıyor ve bir skor değeri hesaplanıyor (skor1) Vektör uzayına göre döndürülen her bir belge için page rank değerleri hesaplanıyor ve ikinci bir skor değeri hesaplanıyor (skor2) Her bir belge için yeni benzerlik değeri iki skorun çarpımı ile hesaplanıyor: SIM (Q, D)= skor1 * skor2 Yeni benzerlik skoru değerlerine göre erişim çıktısındaki belgeler sıralanarak yeni erişim çıktısı oluşturuluyor.
Erişim Çıktısı Nasıl Oluşuyor, Örnek Bir arama motoruna gönderilen sorgu sonucu A,B,C ve D belgeleri döndürülüyor Vektör uzayı modeline göre sorgu ile bu belgeler arasındaki benzerlik ölçümleri sırası ile 0.24, 0.35, 0,12 ve 0.02 olarak hesaplanmıştır A,B,C ve D belgeleri için page rank değerleri sırası ile 0.1, 0.02, 0.32 ve 0.64 ise erişim çıktısı hangi sırada oluşturulur? SIM (Q, A) = 0,24 * 0,1 = 0.024 SIM (Q, B) = 0,35 * 0,02 = 0.007 SIM (Q, C) = 0,12 * 0,32 = 0.0384 SIM (Q, D) = 0,02 * 0,64 = 0.0128 Erişim çıktısı: B, A, C, D (Vektör uzayına göre) Erişim çıktısı: C, A, D, B (Sayfa derecelendirmeye göre)