পেজর্যাঙ্ক (PageRank): সংজ্ঞা এবং মেকানিজম
PageRank হলো একটি মেথড ওয়েব পেজ অবজেক্টিভলি এবং মেকানিক্যালি রেটিং করার জন্য, হিউম্যান ইন্টারেস্টের দিকে মনোযোগ দিয়ে। ওয়েব সার্চ ইঞ্জিনগুলো ইনএক্সপেরিয়েন্সড ক্লায়েন্ট এবং পেজ ম্যানিপুলেটিং কনভেনশনাল র্যাঙ্কিং সার্ভিসের সাথে অডাপ্ট করতে হয়। কিছু ইভ্যালুয়েশন মেথড যেগুলো ওয়েব পেজের রেপ্লিকেবল নেচার কাউন্ট করে সেগুলো ম্যানিপুলেশনের বিরুদ্ধে অইমিউনাইজড।
টাস্ক হলো ওয়েবের হাইপারলিংক স্ট্রাকচারের সুবিধা নেওয়া প্রতিটি ওয়েব পেজের গ্লোবাল ইম্পোর্টেন্স র্যাঙ্কিং তৈরি করতে। এই র্যাঙ্কিংকে PageRank বলা হয়।
ওয়েবের মেকানিজম প্রায় ১৫০ মিলিয়ন নোড (ওয়েব পেজ) এবং ১.৭ বিলিয়ন এজ (হাইপারলিংক) সহ একটি গ্রাফের ওপর নির্ভর করে। যদি ওয়েব পেজ A এবং B পেজ C-কে লিংক করে, A এবং B হলো C-এর ব্যাকলিংক। সাধারণত, হাইলি লিংকড পেজগুলো বেশি গুরুত্বপূর্ণ। তাই তাদের বেশি ব্যাকলিংক থাকে এবং গুরুত্বপূর্ণ ব্যাকলিংক কম পরিমাণে থাকে।
উদাহরণস্বরূপ, একটি ওয়েব পেজ যার একটি ব্যাকলিংক আছে Yahoo-র থেকে সেটি হাইয়ার র্যাঙ্কড হতে হবে একাধিক ব্যাকলিংক থাকা অজানা বা প্রাইভেট সাইট থেকে থাকা পেজের চেয়ে। একটি ওয়েব পেজের হাই র্যাঙ্ক থাকে যদি এর ব্যাকলিংকদের র্যাঙ্কের যোগফোল বড় হয়।
সরলীকৃত PageRank ভার্সন
u, v হোক ওয়েব পেজ। তাহলে Bu হোক পেজের গ্রুপ যা u-কে পয়েন্ট করে। আরো, Nv হোক v থেকে একাধিক লিংক। c < 1 হোক একটি নরমালাইজেশন ফ্যাক্টর। একটি সিম্পল র্যাঙ্ক R ডিফাইন করা যাক, যা PageRank-এর একটি সিম্পলিফাইড ইন্টারপ্রিটেশন:
$$\mathrm{R(u)\:=\:c\displaystyle\sum\limits_{u\in{Bu}}\frac{R(v)}{N_v}}$$
একটি পেজের র্যাঙ্ক এর ফরওয়ার্ড কানেকশনগুলোর মধ্যে সমানভাবে ভাগ করা হয় যাতে তাদের র্যাঙ্ক কন্ট্রিবিউট করতে পারে যেগুলো সেগুলো মার্ক করে। ইকুয়েশনটি রিকারসিভ কিন্তু এই সিম্পলিফাইড ফাংশনে একটি সমস্যা রয়েছে।
যদি দুটি ওয়েব পেজ একো অপরকে পয়েন্ট করে কিন্তু অন্য কোনো পেজ না করে যখন কিছু অন্যান্য ওয়েব পেজ उनमें से একটিকে পয়েন্ট করে, ইটেরেশন során একটি লুপ জেনারেট হবে। এই লুপ র্যাঙ্ক জমা করবে কিন্তু কখনো কোনো র্যাঙ্ক শেয়ার করবে না। লুপ দ্বারা ফোর্মড এই ট্র্যাপ একটি গ্রাফে আউট-এজ ছাড়া র্যাঙ্ক সিংক হিসেবে পরিচিত।
Page Rank অ্যালগরিদম শুরু হয় ডেটাবেস থেকে প্রতিটি URL কে একটি নম্বরে কনভার্ট করার সাথে। পরবর্তী ফেজ হলো প্রতিটি হাইপারলিংক ডেটাবেসে সংরক্ষণ করা ইন্টিজার IDs ব্যবহার করে ওয়েব পেজ চেনা করার জন্য। ইটেরেশন শুরু হয় লিংক স্ট্রাকচারকে পেরেন্ট ID দিয়ে সর্ট করার পর এবং ড্যাঙ্গলিং লিংক রিমUভ করলে।
বেস্ট ইনিশিয়াল অ্যাসাইনমেন্ট সিলেক্ট করা উচিত কনভারজেন্স স্পিড আপ করতে। কারেন্ট টাইম স্টেপের ওয়েটগুলো মেমরিতে রাখা হয় এবং প্রিভিয়াস ওয়েটগুলো ডিস্কে লিনিয়ার টাইমে অ্যাক্সেস করা হয়। ওয়েটগুলো কনভার্জ করার পর ড্যাঙ্গলিং কানেকশন আবার ইনসার্ট করা হয় এবং র্যাঙ্কিং রিক্যালকুলেট করা হয়। ক্যালকুলেশন ভালো কাজ করে কিন্তু কনভারজেন্স ক্রাইটেরিয়া ঢিল দেওয়া এবং আরও ইফেক্টিভ অপ্টিমাইজেশন পদ্ধতি ব্যবহার করে কুইকার করা যায়।