# PageRank
PageRank, Google tarafından geliştirilen ve web sayfalarının önemini belirlemek için kullanılan bir algoritmadır. İnternet üzerindeki bağlantıların analiz edilmesiyle hesaplanan Pagerank değeri Google Arama sonuçlarında sayfaların sıralanması için kullanılan faktörlerden biridir.
PageRank değeri, bir web sayfasının önemini belirlemek için sayfaya gelen bağlantıların sayısını ve yetkinliğini dikkate alarak, ona bağlanan diğer sayfaların PageRank değerlerine göre hesaplanır. Temel prensibi, bir sayfaya yetkin referanslardan ne kadar çok bağlantı verilirse o sayfanın o denli önemli olduğu varsayımına dayanır.
Google Arama'nın kuruluşundan beri arama motoru sonuçlarında web sayfalarını sıralamak için kullandığı algoritmalardan biri olan PageRank, ilk günlerden bugüne işleyişi çok değişmiş olsa bile, firmanın diğer bağlantı analizi sistemleri ile birlikte web sayfaları arasındaki bağlantıları anlamlandırmaya ve sıralama algoritmalarının temel bir taşı olmaya devam etmektedir.
Eylül 2018 tarihi itibarıyla patent süresi dolmuş olan PageRank'i merak edenler orijinal araştırma makalesini okuyabilir ve teknoloji patentini inceleyebilir.


## Tarihçe.
PageRank, Larry Page ve Sergey Brin tarafından 1996 yılında Stanford Üniversitesi'nde geliştirilmiş ve ismini Larry Page'in soyadının yanı sıra İngilizce "web page" kelimesinden alarak 1998 yılında patent altına alınmıştır. Proje, "BackRub" adıyla web üzerindeki sayfaların birbirine nasıl bağlantı verdiğini analiz etmesiyle başladı.
"BackRub" karşımıza çıkan ilk referanslardan biridir, Lawrence Page ve Sergey Brin'in yazdığı "The PageRank Citation Ranking: Bringing Order to the Web" adlı makalede geçmektedir. Bu çalışmada, web sayfalarının bağlantıları üzerinden nasıl sıralandığı detaylıca açıklanmıştır.
1994'te kaleme alınan [McBryan 94] araştırma yazısından itibaren, birçok araştırma ve makale, PageRank'in geliştirilmesine ve optimizasyonuna katkıda bulundu. Öne çıkan bazı referanslar arasında [Mauldin 97], [Chakrabarti 98] ve [Kleinberg 98] bulunmaktadır. Bu çalışmalar, arama motorlarının etkinliğini artırmak ve Web üzerindeki bilgi akışını daha verimli hale getirmek için çeşitli yöntemler ve algoritmalar sundu.
Bağlantı sayısı ve kalitesi gibi faktörleri dikkate alarak sayfa önemini belirleyen PageRank, Google'ın arama motoru algoritmasının temelini oluşturdu. 1998'de Google, arama motoru pazarında devrim yaratarak PageRank sayesinde hızla popülerlik kazandı. PageRank'in gelişimi, internetin büyümesi ve bilgiye erişim şeklimizi kökten değiştiren bir süreç olmuştur. Google'ın başarısının arkasındaki temel unsurlardan biri olan PageRank, diğer sıralama sistemi faktörleri ile birlikte modern SEO stratejilerinde hala önemli bir rol oynamaktadır.


## Algoritma.
PageRank algoritması, web sayfalarının önemini belirlemek için kullanılan ve Çizge teorisini temel alan bir algoritmadır. Bu algoritma, Web üzerindeki bağlantı yapısını dikkate alarak her sayfanın önemini objektif bir şekilde belirler. Bu sayede, kullanıcıların arama sonuçlarında daha alakalı ve önemli sayfalara daha kolay ulaşmaları sağlanır.
Bu gözle bakıldığında PageRank, kullanıcı davranışının bir modeli olarak düşünülebilir. Tanım gereği, rastgele bir sayfadan başlayarak sürekli bağlantılara tıklayan ve sonunda herhangi bir sebeple başka bir rastgele sayfaya geçen bir "rastgele internet gezgini" olduğunu varsayılır.


### Matematiksel Temel.
PageRank, bağlantılı veritabanlarında bir matrisin özvektörünü hesaplamak için kullanılan yinelemeli bir algoritmadır. Bu algoritma, internetteki rastgele sayfaların önemini belirlemek için bir dizi matematiksel hesaplama yapar. Örneğin, Sayfa A'nın PageRank değeri şu temel formülle hesaplanır:
PR(A)=1-d+d(PR(B)/L(B)+PR(C)/L(C)+PR(D)/L(D)+ ⋯)
Burada,
  - PR(A): Sayfa A'nın PageRank değeri,
  - d: Sönümleme faktörü (genellikle 0.85 olarak ayarlanır),
  - L("n"): Sayfa "n"'nin çıkış bağlantı sayısıdır.
Rastgele gezginin bir sayfayı ziyaret etme olasılığı, o sayfanın PageRank değerine eşittir. Bu gezginin her sayfada sıkılma olasılığı ise Damping faktörü (d) olarak tanımlanır. Böylece algoritma, Web'deki bağlantı yapısını kullanarak her sayfaya bir önem derecesi atar ve web sayfalarının PageRank değerlerinin olasılık dağılımı şeklinde olmasını sağlar; yani tüm sayfa PageRank değerlerinin toplamı 1 (bir) olur.


### Basitleştirilmiş Algoritma.
Üç web sayfasından oluşan küçük bir bağlantılı veritabanı üzerinde düşünelim: A, B ve C. Sayfaların kendi kendilerine verdikleri bağlantıları yok sayıp, diğer sayfalara birden fazla bağlantı vermediklerini kabul edelim. Sayfa değeri (PR), tüm sayfalar için aynı başlangıç değerine sahip olarak başlatılır. Tüm sayfaların PR değerlerinin toplamının 1 olması gerektiği için bu örnekteki her sayfa için başlangıç değeri yaklaşık olarak 0,333 olarak belirlenir.
Eğer sistemde B'den A'ya ve C'den A'ya olmak üzere sadece 2 bağlantı olsaydı, her bağlantı bir sonraki yinelemede A'ya 0,333 PageRank aktarır ve A'nın PageRank değeri yaklaşık 0,666 olurdu.
PR(A)=PR(B)+PR(C) 
Bunun yerine, A'ya gelen bağlantı sayısı değişmeden, B ve C'nin birbirlerine bağlantı vermiş olduğunu varsayalım. Bu durumda B sayfası, ilk yinelemedeki mevcut değerinin yarısını (0,1665) A sayfasına, diğer yarısını (0,1665) C sayfasına aktaracaktır. Benzer şekilde, C sayfası da mevcut değerinin yarısını (0,1665) A'ya ve B'ye aktarıyor olacaktır. Bu yinelemenin sonunda A sayfasının PR'si yaklaşık 0,333 olacaktır.
PR(A)=PR(B)/2+PR(C)/2. 
Ancak, yukarıdaki örnekte de görüldüğü gibi, PageRank basit bir alıntı sıralama sisteminden daha karmaşık ve inceliklidir. Elbette PageRank de dayandığı matematiksel temeller gereği, geri bağlantı sayısı arttıkça artan bir sayfa sıralaması sağlar. Ancak yüksek değerli bir geri bağlantıyı, düşük değerli bir geri bağlantıdan daha önemli olarak kabul eder.
İşte, Page ve Brin'in dahiyene teorisi da tam olarak burada başlar, çok yüksek değerde yalnızca 1 geri bağlantıya sahip bir sayfanın, çok sayıda düşük değerli geri bağlantıya sahip başka bir sayfadan daha yüksek bir sıralamaya sahip olabilir. Basit alıntı sıralamasına dayanan basitleştirilmiş sayfa sıralama algoritmasında böyle bir durum mümkün değildir.


### Sönümleme Faktörü.
Bağlantılar arasında rastgele dolaşan bir internet ziyaretçisinin, bir süre sonra gezinmeyi sonlandıracağını öngören PageRank teorisi, her adımda bağlantıları takip etme olasılığını "d" sönümleme faktörüyle tanımlar. Bu olasılık, rastgele bir sayfaya atlama olasılığı olan "1-d"'ye eşittir. Çeşitli araştırmalarda farklı oranlar test edilmiş olsa da, sönümleme faktörü için 0,85 civarında bir değer genel kabul görmüştür.
Bu değer, 1'den çıkartılı ve daha sonra sönümleme faktörü ("d") ile toplam PageRank puanının çarpımına eklenir. Adından da anlaşılacağı gibi sönümleme faktörü, elde edilen PageRank puanlarını aşağı çeker.
PR(A)=1-d+d(PR(B)/L(B)+PR(C)/L(C)+PR(D)/L(D)+ ⋯)
Bazı algoritma varyasyonlarında, sönümleme faktörünün ("d") 1'den çıkarıldığında elde edilen değer, koleksiyondaki sayfa sayısına ("N") bölünür.
PR(A)=1-d N+d(PR(B)/L(B)+PR(C)/L(C)+PR(D)/L(D)+ ⋯)
Bu formül "N" ile taraf tarafa çarpıldığında iki formül arasındaki fark açığa çıkar: İlk formüldeki PageRank değerlerinin toplamının 1 olması, ikinci formülde ise toplamın "N" olmasıdır. Page ve Brin'in makalesindeki "tüm PageRank'lerin toplamı 1'dir" ifadesi " ve diğer Google çalışanlarının iddiaları yukarıdaki formülün ilk varyantını desteklemektedir.
Esasen, Page ve Brin, en popüler makaleleri olan "Büyük Ölçekli Hiper Metinsel Web Arama Motorunun Anatomisi"nde iki formülü karıştırken yanlışlıkla ikinci formülün web sayfaları üzerinde bir olasılık dağılımı oluşturduğunu öne sürmüşlerdi.
Teori, birkaç tıklamanın ardından arzu ettiği sayfaya ulaşan ve daha sonra rastgele bir sayfaya geçiş yapan rastgele bir internet ziyaretçisi modelini kullanmaktadır. Bir sayfanın PageRank değeri, rastgele gezinen bir kullanıcının bir bağlantıya tıklayarak o sayfaya gelme şansını yansıtır. Bu model, durumların sayfalar ve geçişlerin de sayfalar arasındaki bağlantılar olduğu bir Markov zinciri olarak yorumlandığında her durumun eşit derecede olası olduğu söylenebilir.
Örneğin, bir sayfanın başka sayfalara bağlantısı yoksa, bu sayfa bir "yutan durum" haline gelir ve rastgele gezinti sürecini sonlandırır. Rastgele gezgin bu durgun noktaya ulaşırsa, rastgele başka bir URL seçerek gezinmeye devam eder.
PageRank hesaplanırken, giden bağlantısı olmayan sayfaların koleksiyondaki tüm diğer sayfalara bağlantı verdiği varsayılır. Bu nedenle PageRank puanları diğer tüm sayfalar arasında eşit olarak bölünür. Başka bir deyişle, geçişlere sahip olan sayfalar için adil olmak gerekirse bu rastgele geçişler Web'deki tüm köşelere eklenir. Bu artık olasılık (d), ortalama bir sörfçünün tarayıcısının yer imi özelliğini kullanma sıklığına göre tahmin edilerek genellikle 0,85 olarak ayarlanır ve denklem aşağıdaki gibi gösterilir.
PR(p_i)=1-d/N+d∑_p_j∈M(p_i)PR(p_j)/L(p_j)
Burada p_1,p_2...,p_Nincelenen sayfaları, M(p_i), p_i'ye bağlanan sayfalar kümesini, L(p_j), p_j sayfasındaki giden bağlantıların sayısı ve N toplam sayfa sayısıdır.
PageRank değerleri, her sütunun toplamı bir olacak şekilde yeniden ölçeklendirilmiş, değiştirilmiş bitişiklik matrisinin baskın sağ özvektörünün girdileridir. İşte bu, Page ve Brin'in meşhur algoritmasının harika bir ölçüm olduğu noktadır:
𝐑 =[ PR(p_1); PR(p_2); ⋮; PR(p_N) ]
Burada özvektör 𝐑 denkleminin çözümüdür.
𝐑 =[ (1-d)/N; (1-d)/N; ⋮; (1-d)/N ]+d[ ℓ(p_1,p_1) amp;ℓ(p_1,p_2) amp;⋯ amp;ℓ(p_1,p_N); ℓ(p_2,p_1) amp;⋱ amp; amp;⋮; ⋮ amp; amp;ℓ(p_i,p_j) amp;; ℓ(p_N,p_1) amp;⋯ amp; amp;ℓ(p_N,p_N) ]𝐑 
Bitişiklik fonksiyonu ℓ(p_i,p_j) , "j" sayfasından "i" sayfasına giden bağlantıların sayısının, "j" sayfasındaki toplam giden bağlantı sayısına oranıdır. p_j sayfası p_i 'ye bağlanmıyorsa bitişiklik işlevi 0'dır ve bu durum her "j" için standartlaştırılır:
∑_i=1^Nℓ(p_i,p_j)=1 
Yani her bir sütunun öğelerinin toplamı 1'e eşit olduğu için PageRank matrisi, Markov zincirinin geçişlerini tanımlamak için kullanılan bir stokastik matristir ve ağ analizinde yaygın olarak kullanılan özvektör merkezilik ölçüsünün bir çeşididir.
Yukarıdaki değiştirilmiş bitişiklik matrisinin büyük özboşluğu nedeniyle, PageRank özvektörünün değerleri yalnızca birkaç yinelemede yüksek derecede doğrulukla tahmin edilebilir.
Google'ın kurucuları, orijinal makalelerinde, 322 milyon bağlantıdan oluşan bir ağ için PageRank algoritmasının 52 yinelemede kabul edilebilir bir sınıra yakınsadığını belirttiler. Bunun yarısı kadar bir ağda ise yakınsamanın yaklaşık 45 yineleme gerektirdiğini söyledir. Bu veriler sayesinde, algoritmanın çok iyi ölçeklenebileceği ve son derece büyük ağlar için ölçeklendirme faktörünün, n'nin ağın boyutu olduğu logn cinsinden kabaca doğrusal olacağı sonucuna vardılar.
Markov teorisinin bir sonucu olarak de bir sayfanın PageRank'inin, çok sayıda tıklama sonrasında o sayfaya ulaşma olasılığı olduğu söylenebilir. Bu durumda t sayfadan kendisine geri dönmek için gereken tıklama (veya rastgele atlama) sayısının beklentisi iken bu olasılık t^-1 'e eşit olur.
Teori gereği, PageRank'in en ciddi dezavantajlarından biri eski sayfaları tercih etmesidir. Yeni bir sayfa, çok iyi bir sayfa bile olsa, Wikipedi gibi mevcut bir sitenin parçası olmadığı sürece çok fazla bağlantıya sahip olmayacaktır.
Bu dezavantaj yüzünden, arama sonuçları sıralamasını iyileştirmek ve reklam bağlantılarından para kazanmak için kötü niyetli SEO uzmanları PageRank'i manipüle etmeye yönelik uygulamalar yapmıştır. Bu uygulamalar, hangi sayfaların Web topluluğu tarafından gerçekten çok değerli olduğunu belirlemeyi amaçlayan PageRank kavramının güvenilirliğini ciddi şekilde etkilemiştir.
Ancak Google, Google Search Console üzerinden insanların ücretli ve spam bağlantıları bildirmelerini sağlayan mekanizması dahil olmak üzere, 2007'den bu yana yapay olarak PageRank değerini yükseltmek için yerleştirilen spam bağlantılar ve ücretli metin bağlantıları satan siteleri aktif olarak cezalandırıyor. Günümüzde ise ilk kez 2019 Webspam Raporu'nda adından "webspam" olarak bahsedilen SpamBrain başta olmak üzere, şirketin spam politikaları çerçevesinde tüm spam algılama sistemleri ile sadece bağlantılar değil internet üzerindeki tüm kötü niyetli uygulamalarla mücadele etmeye devam ediyor.


## Sayfa değeri.
Sayfa değeri, sitenin doğal yapısına ve link içeriğine uygun olarak sitenin değerinin bir göstergesidir. Google, bir linki A sayfasından B sayfasına, B sayfası için A sayfasını kullanarak bağlar. Aynı zamanda sayfanın hakkının yenmemesi için bazı içerik analizleri de yapar. Kendisini "önemli" yapan kriterlerde iyi yerlerde olan bir site önem sıralamasında diğer sitelerin üzerine çıkacaktır. Yani bir sitenin Google Arama sonuçları sıralamadaki yeri onun için önemli olan birçok kriterlerin birleşimi sonucunda belirir.
Google, aynı zamanda spam amaçlı siteleri Google Ban ile cezalandırıp tüm indexlerini silerken, yeni açılan sitelerin de hızlı bir şekilde arama sonuçlarında yükselmesini engelleyen Google Sandbox sistemlerini de kullanmaktadır. Sandbox'a giren bir site 3-6 ay boyunca ne kadar iyi olursa olsun, Google tarafından denenir ve belirli bir sürenin sonunda arama sonuçlarında daha iyi bir yere getirilir.
Ancak site sıralamasını etkileyen tek parametre PageRank değildir. Site sıralamasını esasen "alakalılık" ve "önemlilik" değerlerini kombine etmeye çalışan Google algoritması için de Topic Sensitive Page Rank olarak tartışılan kavramın etkili olduğu düşünülmektedir.


## Güncellenmesi.
Günümüzde PageRank, Google'ın arama sonuçlarını sıralamak için kullandığı çekirdek algoritmanın bir parçasıdır. Çekirdek algoritmadaki büyük değişiklikler yılda 1 veya 2 kez yapılıyor olsa da yüzlerce sıralama faktörünü içeren Google Arama sıralama sistemlerinde halka açık bilgilendirmeler eşliğinde sürekli güncellemeler yapılmaktadır.