วันจันทร์ที่ 23 เมษายน พ.ศ. 2555

ประวัติ google และ จุดกำเนิดของ กูเกิ้ล


BLOGGER LINGOTHAILAND



ประวัติ google และ จุดกำเนิดของ กูเกิ้ล (The birth of Google)

ประวัติ google และ จุดกำเนิดของ กูเกิ้ล (The birth of Google)





จุดเริ่มต้นของเรื่องนี้อยู่ที่ มหาวิทยาลัยสแตนฟอร์ด (Stanford University) อีกหนึ่งสุดยอดแห่งมหาวิทยาลัยด้านไอที (จริงๆแล้ว Stanford ก็จัดว่าเป็นอันดับต้นๆของโลกในสาขาอื่นๆอีกมากมาย ด้วยเช่นกัน) มหาวิทยาลัยแห่งนี้ นอกจากจะเป็นต้นกำเนิดของสุดยอด 2 ไอเดียออนไลน์ระดับโลกอย่าง Yahoo! และ Google แล้ว มหาวิทยาลัยแห่งนี้เป็นต้นกำเนิดของคอมพิวเตอร์ที่เราใช้ๆกันอยู่ด้วยซ้ำไป ที่นี่เป็นที่ที่ คุณ John von Neuman (จอห์น วอน นูแมน) คิดและประิดิษฐ์คอมพิวเตอร์ที่มีสถาปัตยกรรมที่เหมือนกับที่เราใช้อยู่นี่แหล่ะ เป็นคนแรกของโลก (แม้จะไม่ใช่คอมพิวเตอร์เครื่องแรกของโลกก็ตาม – สับสนมั้ยครับ – คืออย่างงี้ครับ คอมพิวเตอร์เครื่องแรกของโลกชื่อว่า ENIAC ซึ่งเป็นเครื่องที่มีความซับซ้อนสูง ต่อมาคุณ von Neuman ซึ่งก็ช่วยงานในการสร้างคอมพิวเตอร์ ENIAC อยู่ด้วย แกเสนอว่า เราน่าจะแยกส่วนของคอมพิวเตอร์ออกเป็น หน่วยประมวลผล หน่วยความจำ หน่วยรับเข้าและส่งข้อมูล ซึ่งเป็นสถาปัตยกรรมที่แตกต่างจากคอมพิวเตอร์เครื่องแรก และเป็นสถาปัตยกรรมที่เรายังใช้มาอยู่จนในปัจจุบัน หลายสถาบันก็เลยยกย่องให้ von Neuman เป็นบิดาของคอมพิวเตอร์เลยทีเดียว) แหม! พูดถึงมหาวิทยาลัยสแตนฟอร์ดซะยืดยาวเลย พักไว้แค่นี้ก่อน เดี๋ยวหาใครที่กำลังเรียนแถวนั้นมาบรรยายสรรพคุณของ Stanford ต่อ ตอนนี้เข้าเรื่องกูเกิ้ลดีกว่าครับ เดี๋ยวกระดาษจะหมดซะก่อน




Sergey Brin (เซอร์เก บริน1)


เรื่ิิองก็เริ่มตอนปิดเทอมภาคฤดูร้อนปี 1995 ที่มหาวิทยาลัยแห่งนี้แหละครับ ตอนนั้น Sergey Brin (เซอร์เก บริน1) 1 ใน 2 ของผู้ก่อตั้ง กูเกิ้ล เป็นแค่นักเรียนปริญญาเอก ที่กำลังจะขึ้นปี 2 ของภาควิชา วิทยาศาสตร์คอมพิวเตอร์ (Computer Science) ธรรมดาๆ คนหนึ่ง ที่อาสาเข้ามาเป็นนักศึกษาช่วยงาน Open House

โดยปกติทุกๆปีในช่วงก่อนเปิดเทอมนี้ มหาวิทยาลัยต่างๆเค้าจะมีการเปิดบ้านต้อนรับผู้มาเยือน เราเรียกว่า Open House (ที่เมืองไทยก็เห็นมีบ้างแล้วหลายมหาวิทยาลัย) คือว่าใครที่สนใจที่จะเรียนในมหาิวิทยาลัยไหน คณะไหน ก็จะไปงาน Open House ของที่นั่น ที่จะมีคนมาคอยพาทัวร์ และแนะนำสถานที่ แนะนำคณะ แนะนำ Lab แนะนำครูอาจารย์ เป็นปกติเหมือนทุกๆปี แต่ปีนี้เองพระเอกคนที่สองของเรา คือคุณ Larry Page (ลาร์รี่ เพจ) ก็โผล่มาในงาน Open House ในปีนี้ หลังจากได้ดีกรี วิศวกรรมศาสตร์บัณฑิต จากมหาวิทยาลัยมิชิแกน (Michigan
University
) มาหยกๆ




Larry Page (ลาร์รี่ เพจ)


ทั้งสองเจอกันเพราะ Larry Page ไปอยู่ในกลุ่มทัวร์ ที่มี Sergey Brin เป็นหัวหน้ากลุ่มทัวร์พอดี

ดูท่าว่างานนี้ไม่ใช่รักแรกพบครับ เพราะระหว่างทางที่เดินทัวร์มหาวิทยาลัย และเมือง San Francisco อยู่ ทั้งสองคนนี้ก็มีเรื่องให้ถกเถียงกันได้ตลอดเวลา โดยเฉพาะเรื่องของการจัดผังเมืองของ San Francisco (??!!??)

Page เล่าให้ฟังว่าตอนนั้นเค้าจำได้ว่า Sergey Brin เป็นคนที่มีความคิดที่ค่อนข้างจะติดยึด
เป็นคนที่ไม่ค่อยโสภาที่น่าจะอยู่ใกล้เท่าไหร่ ถ้าคิดว่าตัวเองถูกละก็จะเีถียงหัวชนฝา ซึ่งบังเอิญว่า ตัวเอง (Page) ก็เป็นคนแบบนั้น ส่วน Sergey ก็บอกว่าจริงๆแล้ว Larry ก็ออกจะแปลกๆอยู่เหมือนกันแหละ เถียงหัวชนฝา ไม่ค่อยยอมใคร (เอากันเข้าไป มิน่าหล่ะ เถียงกันได้ทั้งวัน)


เอาเป็นว่า ทั้งคู่ถกเถียงกันเรื่องต่างๆทั้งวันที่เดินทัวร์ แม้จะไม่ลงรอยด้วยดี แต่ทั้งคู่ก็จำกันได้ดีก่อนจะแยกจากกันในตอนเย็น (แหม! พล็อตยังกับหนังไทยเลยครับ พระเอกกับนางเอกเจอกันครั้งแรกจะต้องมีทะเลาะตบตี ต่างคนต่างบอกว่าเกลียด แต่ในใจคิดถึงอยู่)

อีก 2-3 เดือนถัดมา มหาวิทยาลัยก็เปิดเทอมครับ Page ก็เข้ามารายงานตัว และเลือก Prof. Terry Winograd ผู้เชี่ยวชาญด้านการโต้ตอบระหว่างคอมพิวเตอร์และมนุษย์ เป็นอาจารย์ที่ปรึกษา และก็เริ่มมองหาหัวข้อวิทยานิพนธ์

พ่อของ Larry Page (ขณะนั้นเป็นอาจารย์ด้าน Computer Science อยู่ที่มหาวิทยาลัยมิชิแกน) บอกว่า Thesis ปริญญาเอก จะเป็นเหมือนกรอบ ที่จะคอยกำหนดอนาคต ด้านวิชาการของเราไปทั้งชีวิต ก่อนจะตัดสินใจเลือกทำให้ไตร่ตรองให้ดี ทำให้ Page ใช้เวลาอยู่นานในการเลือกหัวข้อทำวิทยานิพนธ์ หลังจากลองนึกๆดูสิบกว่าเรื่อง สุดท้ายก็มาลงที่เรื่อง World Wide Web นี่เอง


และแล้วจุดเริ่มต้นของไอเดียเล็กๆ ก็กลายเป็นไอเดียที่เปลี่ยนโลกอินเตอร์เน็ตทั้งใบ จุดกำเนิดของยักษ์ใหญ่ในวงการซอฟท์แวร์อีกตน ก็เริ่มขึ้นที่นี่ …


Remark1 ชื่อ Surgey Brin อ่านออกเสียง ว่า เซอร์เก บริน โดย Assoc. Prof. Stanislav Makanov (อาจารย์ชาวรัสเซีย ประจำสถาบันเทคโนโลยีนานาชาติสิรินธร มหาวิทยาลัยธรรมศาสตร์)

Page เริ่มหัวข้อวิจัยเกี่ยวกับเว็บก็จริง แต่ไม่ได้เริ่มมองหาวิธีที่จะค้นหาข้อมูลบนเว็บ แต่สิ่งที่เค้ามองเห็นกลับเป็น มุมมองทางด้านคณิตศาสตร์ของเว็บไซท์มากกว่า คือ Page มองแบบนี้ครับ...

ถ้าหากมองว่า 1 เซอร์ฟเวอร์ หรือ 1 เว็บไซท์ เช่น วิชาการ.คอม หรือ 1 คอมพิวเตอร์ เป็นเพียง จุด (Node, Vertex) จุดหนึ่งบนกราฟ (Graph) และ ลิ๊งค์ (link) เช่น www.ipst.ac.th ที่ วิชาการ.คอม เชื่อมต่อไปยังเว็บไซท์อื่นๆ เหมือนกับเป็นทางเชื่อมต่อกัน หรือ ขอบ(Edge) ระ่หว่างจุดเหล่านั้น หรือ พูดง่ายๆว่า Page มองเห็น อินเตอร์เน็ตเป็นกราฟ นั่นเอง (แฮ่ะๆ แบบนี้เรียกว่ามันอยู่ในสัญชาติญาณ มองอินเตอร์เน็ตเป็นกราฟ ทำได้ไงเนี่ย) ซึ่งบ้านเรา นิสิต นักศึกษาระดับปริญญาตรี ด้านทางสายวิทย์ มักจะได้เรียนเรื่อง กราฟ ประเภทนี้ในเรื่อง ทฤษฏีกราฟ (Graph Theory) แถวๆปีต้นๆ (ซึ่งน้องๆตัวเล็กๆอาจสับสนนิดนึง เพราะกราฟที่คุ้นเคยอาจจะหมายถึง กราฟที่เป็นตัวแทนของข้อมูล เช่น กราฟแท่ง กราฟเชิงเส้น ซะมากกว่า)

ถ้าไม่ใช่ในวิชาคณิตศาสตร์ ก็จะเป็นวิชา Algorithm โดยเฉพาะพวกที่เรียน วิทยาการคอมพิวเตอร์ ก็น่าจะผ่านหูผ่านตากันมาแล้วทุกคน (ถ้าไม่ใส่ไหคืนอาจารย์ไปหมดแล้วซะก่อน) (มีอาจารย์และนักคณิตศาสตร์ ในเมืองไทยหลายคน ที่เชี่ยวชาญเรื่อง Graph Theory เช่น ดร.จริยา อุ่ยยะเสถียร ภาควิชาคณิตศาสตร์ จุฬาลงกรณ์มหาวิทยาลัย ที่จบปริญญาเอกเรื่องนี้มาโดยเฉพาะ เดี๋ยวจะลองเกี้ยวมาช่วยเขียน เรื่อง Graph Theory อีกซักบทความ)



ตัวอย่างกราฟ สมมติให้จุดแต่ละจุด แทนคอมพิวเตอร์แต่ละเครื่อง และเส้นเชื่อมแทนลิงค์ที่เชื่อมหากัน


แต่คราวนี้ลองใช้จินตนาการดูกันหน่อยนะครับ ว่าแน่นอนเว็บไซท์หนึ่งเว็บ ก็ลิงค์ไปยังหลายร้อย หลายพันเว็บ และมีเว็บไซท์หลายๆเว็บ ที่ลิงค์มายังเว็บไซท์หนึ่งๆ และปัจจุบันเรามีกันเป็น พันๆ ล้านเว็บ เพราะฉนั้น กราฟ ที่เราใช้แทน อินเตอร์เน็ต ก็จะเป็นกราฟขนาดมหึมา และมีความซับซ้อน มีเส้นโยงกันไปโยงกันมาอย่างยุ่งเหยิง

ซึ่งตรงนี้แหละที่ Page มองแล้วเห็นว่ามันช่างน่าตื่นเต้น น่าสนใจ น่าติดตาม เสียเหลือเกิน Page เคยบอกว่า Internet คือ กราฟที่ใหญ่ที่สุดที่มนุษย์เคยสร้างขึ้น และมันก็ยังจะเติบโต ใหญ่ขึ้น ใหญ่ขึ้น ทุกๆวัน ด้วยอัตราเร็วในการเติบโตสูงมาก โอ! มันช่างเป็นเรื่องที่น่าสนใจทำวิทยานิพนธ์เหลือเกิน (ถ้าเป็นคนสามัญชนคนไทยธรรมดา ก็อาจจะบอกว่า โอ! มันซับซ้อนเหลือเกิน ไม่มีทางทำได้หรอก ทำไปเดี๋ยวไม่จบ หนีดีกว่า) ซึ่ง Prof. Winograd อาจารย์ที่ปรึกษาของเค้าก็เห็นด้วย และเห็นว่าน่าจะศึกษาเรื่องของโครงสร้างของกราฟของเว็บ เป็นการเริ่มต้นวิทยานิพนธ์

Page ทำการศึกษาด้วยตัวเองอยู่ไม่นาน เค้าก็เจอปัญหาแรกเข้าให้...

โอเคตรงนี้เราเข้าเรื่อง graph theory กันนิดนึง (เอาเป็นว่าผมพยายามวงเล็บภาษาอังกฤษของคำไทยไว้ด้วยครับ จะได้ช่วยให้คนทีคุ้นเคยกับคำอังกฤษในวิชานี้แล้ว ได้เห็นภาพง่ายขึ้นนะ) คืออย่างนี้ ในกราฟปกติ ขอบของกราฟ (Edge) จะเป็นตัวบ่งถึงความสัมพันธ์กันระหว่าง จุด (Vertex) ซึ่งโดยปกติแล้ว เราจะรู้และนับจำนวนได้ว่า จากจุดจุดหนึ่ง มีขอบ หรือ เส้นลากไปยังจุดอื่นๆ อีกกี่จุด และมีกี่จุดที่ลากมาหาตัวเอง แต่หน้าเว็บเพจกลับไม่เป็นแบบนั้นซะทีเดียว เพราะ ที่หน้าเว็บเพจหนึ่งๆ (สมมติว่าเว็บ 1 หน้าเป็น 1 จุดในกราฟ) เรารู้ครับว่า จากจุดที่เราอยู่ปัจจุบัน มันลิงค์ไปยังหน้าไหนบ้าง คือ เรารู้ว่ามันมี จำนวนขอบที่วิ่งออกไป (Out Degree) จากตัวเองกี่ขอบกี่เส้น และไปที่ไหนบ้าง แต่ที่เราไม่รู้นี่คือว่า มีเว็บเพจใดบ้าง กี่หน้า ที่ลิงค์มาหาหน้าที่เราสนใจ

โอยสับสนใช่มั้ยครับ ผมยกตัวอย่างเปรียบเทียบแบบนี้ก็แล้วกัน  ถ้าผมถามคุณว่าคุณรู้จักคนกี่คน คุณอาจจะต้องนั่งไล่นับนิ้วไปเรื่อยๆ แต่คุณก็บอกได้ว่าคุณรู้จักใครบ้าง และคล้ายๆกัน ผมถามว่า "คุณรู้มั้ยว่ามีใครในโลกนี้รู้จักคุณบ้าง?" (เปรียบกับ "รู้มั้ยว่ามีเว็บไหนลิงค์มาที่เราบ้าง") คำตอบคือ ไม่รู้ จะไปรู้ได้ยังไงว่าใครรู้จักเราบ้าง

โอเค เริ่มเห็นภาพนะครับ ลองนึกตามแบบนี้นะครับ ว่าหน้าเว็บที่คุณอ่านอยู่ตอนนี้เนี่ย ลิงค์มาจากหน้าไหน URL อะไรบ้าง ถ้าคุณไม่กด Back มีข้อมูลตรงไหนบอกมั้ยครับ ? หรือแม้แต่คุณจะกด Back คุณก็รู้แค่ลิงค์เดียวที่ลิ๊งค์มาหาหน้านี้ แต่ที่จริง อาจจะมีหน้าเว็บอื่นๆอีกเป็นร้อยๆ ที่มีลิ๊งค์มาหาหน้านี้ ที่เราไม่รู้ คำถามคือ แล้วเราจะรู้ได้ยังไง ?

ซึ่งตรงนี้หล่ะยาก เพราะอินเตอร์เน็ตไม่ได้ให้ข้อมูลนี้มา และตรงนี้เองที่ Page คิดว่า มันน่าจะดี ถ้าหากว่าเรารู้ (หรืออย่างน้อย มีวิธีการที่จะทำให้รู้) ว่าใครลิงค์หาใครบ้าง หรือ มีใครลิงค์มาหาหน้านี้บ้างกี่คน Page ก็เลยเลือกเอาปัญหานี้ มาทำเป็นวิทยานิพนธ์ปริญญาเอก และตั้งชื่อเล่นโปรเจ็คของเค้าว่า "BackRub Project" (โครงการ "ถูหลัง" - แหม! ผมแปลตรงตัวไปหน่อยหรือปล่าวเนี่ย - สงสัยว่า Page คงอยากรู้ว่า ตอนที่อาบน้ำนี่ ใครถูหลังให้เค้าบ้าง - เอ้า ! ว่าไปโน่น)

โอเค งั้นกลับมาที่คำถามเดิม ถ้าเราอยากจะรู้ว่ามีใครรู้จักเราบ้างกี่คน เราจะทำอย่างไร  จริงๆคำตอบนี้ง่ายมากครับ คุณก็ถามคนทุกๆคนทั่วทั้งโลกนี้เลยซิครับว่าเค้ารู้จักใครบ้าง ด้วยวิธีนี้ พอคุณถามครบทุกคนทั้งโลก คุณก็จะรู้ว่าทั้งโลกนี้มีคนรู้จักคุณกี่คนใช่ป่าวครับ แหม! คิดได้ไง ง่ายจัง

คล้ายๆกัน เพื่อจะรู้ว่าใครลิงค์มาที่หน้าเว็บนี้บ้าง Page ก็เริ่มจากการไล่ไปที่ละหน้าเว็บแล้วดูว่าหน้านั้นลิงค์ไปที่ไหนบ้าง (เหมือนว่าหน้านั้นรู้จักใครบ้าง) แล้วเก็บลิงค์ทั้งหมดในหน้านั้นมาเข้าคิวไว้ เพื่อจะได้ไล่ถามไปเรื่อยๆ (ตรงนี้แหล่ะครับที่เรียกว่า Crawler - หน้าถัดไปจะอธิบายอีกที) Page คิดว่าแหมไล่ไปเรื่อยๆแบบนี้ ซักอาทิตย์นึงก็เก็บเว็บหมดจากทั่วโลกแล้ว ... น้าน.... ก็เป็นจุดเริ่มต้นของ Backrub โปรเจ็คนั่นเอง



back rub line - ถ้ามองไปข้างหน้าอย่างเดียว เราไม่มีทางรู้ว่าใครกำลังถูหลังเราอยู่


จาก BackRub Project ที่ค่อยๆ เติบโตมา ด้วยน้ำมือของนักศึกษา 2 คน ที่ใช้ห้องนอนที่หอพักนักศึกษา ทำเป็น ห้อง Server และ ห้องเขียนโปรแกรม ได้กลายเป็น Google Project โปรแกรม Search Engine ขนาดจิ๋ว ที่ดูดทรัพยากร Network ของมหาวิทยาลัย สแตนฟอร์ด ที่ได้ชื่อว่า Network ที่เร็วเป็นอันดับต้นๆของโลก ได้อย่างไร
Page เริ่มที่จะคิดว่า เราจะทำไงถึงจะรู้ว่า ลิงค์ใดบ้างที่ลิงค์มาัยังเว็บหนึ่งๆ หลังจากที่ศึกษาเกี่ยวกับเรื่องนี้ได้ไม่นาน(ไม่กี่เดือน) Page ก็พบว่า จริงๆแล้ว เรื่องของการลิงค์ไปลิงค์มาของเอกสารนี่ มีกันมานานแล้วในวงการวิชาการ ก็คือเรื่องของ ผลงานวิชาการ นั่นเอง คือโดยปกติแล้ว หากนักวิชาการท่านใด คิดทฤษฎีอะไรออกมาได้ใหม่ๆ หรือค้นพบอะไรใหม่ หรือต้องการจะแก้ไขสิ่งที่มีอยู่แล้ว ก็จะทำการตีพิมพ์ผลงานของตนเองในวารสารวิชาการ (Journal) โดยจะต้องอ้างอิงถึงที่มาของความรู้ หรือ ผลงานที่มีมาก่อนของคนอื่น หรือที่ใกล้เคียง ก็เพื่อให้องค์ความรู้ใหม่ที่ตีพิมพ์ มีรากฐานจากองค์ความรู้ ที่ได้รับการพิสูจน์แล้ว (ตีพิมพ์แล้ว) นั่นเอง ดังนั้น ผลงานวิชาการ ไหนที่ได้รับการอ้างถึง (Citation) บ่อยๆ จาก นักวิชาการคนอื่นๆ แสดงว่า ผลงานวิชาการชิ้นนั้นได้รับการยอมรับอย่างจริง ในวงการวิชาการเรามีตัวชี้วัดกันเลยว่า ผลงานหนึ่งๆ มีการถูกอ้างถึงมากน้อยเพียงใด เราเรียกดัชนีตัวนี้ว่า Citation index ซึ่งการอ้างอิงด้านวิชาการถือเป็นเรื่องใหญ่ ใหญ่ขนาดไหนครับ ก็ใหญ่พอที่จะมีิวิชาที่ว่าด้วยเรื่องนี้โดยเฉพาะเลย คือวิชา bibliometrics (ผมเองก็ไม่เคยเรียนครับ แต่เข้าใจว่าน่าจะเป็นทางกลุ่มนักศึกษา วารสาร หรือ บรรณารักษ์ หรือ สารสนเทศ - เดี๋ยวจะค้นมาให้ว่าที่ไหนสอนบ้างในเมืองไทย)


• Kiattisin Kanjanawanishkul and Bunyarit Uyyanonvara, Novel fast color reduction algorithm for time-constrained applications, Journal of Visual Communication and Image Representation, Volume 16, Issue 3, June 2005, pp. 311-332 (2005) • Y. Sirisathitkula, S. Auwatanamongkola and Bunyarit Uyyanonvara, Color Image Quantization using Adjacent Colors’ Line Segments. Pattern Recognition Letters, Vol 25/9 pp 1025-1043. (2004) • Lloyd Bender, David J. Spalton, Bunyarit Uyyanonvara, James Boyce, Catherine Heatley, Romina Jose and Jaheed Khan, POCOman: New system for quantifying posterior capsule opacification, Journal of Cataract & Refractive Surgery, Volume 30, Issue 10, October 2004, Pages 2058-2063 (2004)


ตัวอย่างของการอ้างอิงทางวิชาการ


ตอนที่ Tim Berners-Lee (ตอนนี้ได้รับการแต่งตั้ง เป็น Sir Tim Berners-Lee เรียบร้อยแล้ว) วิศวกรอิสระของ CERN คิดค้น World Wide Web ขึ้นเป็นครั้งแรกของโลก (ไว้วันหลังค่อยเขียนเรื่อง จุดกำเนิดของ WWW อีกทีแล้วกัน) คุณ Tim แกก็คิดว่า เราน่าจะมีวิธีที่ละลิงค์ผลงานวิชาการของนักวิชาการเข้าด้วยกันเลย ไม่ต้องมานั่งกำหนดรูปแบบที่ยุ่งยาก (เหมือนที่เห็นในกรอบด้านบน) คุณ Tim ก็เลย คิดเรื่องของ Hypertext ขึ้นมา แต่สิ่งที่ Page กำลังทำเป็นการ Reverse Engineer ของ WWW เพราะเค้าต้องการค้นหาถึงที่มา ต้นตอของเอกสารที่ิลิงค์กันนั่นเอง ด้วยความรู้นี้ งานของเค้าก็ง่ายขึ้นเยอะครับ (แม้ที่เหลือก็จะยังสุดหินก็ตาม) ที่เหลือก็คือว่าเค้าจะต้องหาให้ได้ ว่า ใคร อ้างอิงจาก ใคร โดยอัตโนมัติ พูดง่ายๆ ว่าเค้าต้องวาด กราฟของอินเตอร์เน็ต ขึ้นมา บนเครื่องคอมพิวเตอร์ของเค้านั้นเอง แน่นอนว่า กราฟที่เค้าจะสร้างขึ้น จะมีความซับซ้อนสูง และการคำนวนจำนวนลิงค์ ที่เชื่อมหากันก็ทำได้ยาก เนื่องจากกราฟมีการเจริญเติบโตเรื่่อยๆ เพราะความซับซ้อนของข้อมูลสูง ดังนั้นสูตรการคำนวณเพื่อให้คะแนนแต่ละหน้า ก็จะมีความซับซ้อนด้วย ตรงนี้นี่เอง ที่ทำให้ Brin กระโดดเข้ามาในโปรเจ็คนี้



Page และ Brin ในช่วงเริ่มต้นโปรเจ็ค google ที่หอพักนักศึกษาของมหาวิทยาลัย (ภาพจากวารสาร WIRED )


ด้วยพื้นเพ back ground เดิมของ Brin ที่เป็นนักคณิตศาสตร์ ที่จัดว่าเข้าขั้นเป็นอัจฉริยะคนหนึ่ง มีเชื้อสายเป็นคนรัสเซีย เกิดที่รัสเซีย มีพ่อเป็นนักวิทยาศาสตร์ชาวรัสเซีย ที่ทำงานที่องค์การ NASA และ เป็นอาจารย์สอนคณิตศาสตร์ ที่มหาวิทยาลัยแมรี่แลนด์ (University of Maryland) โดยครอบครัวเค้าอพยบ มาอยู่ทีอเมริกา ตอนที่ Brin อายุแค่ 6 ขวบ Brin เรียนจบ ม.ปลาย 1 ปีก่อนชาวบ้าน และหลังจากจบปริญญาตรี ที่แมรี่แลนด์ Brin ก็มาต่อเอกทันทีที่ Stanford ตัว Brin เองก็ต้องมองหาโปรเจ็คปริญญาเอก ด้วยเช่นกัน แต่เค้าเลือกไปเลือกมา่เกือบ 2 ปีแล้ว ก็ยังหาหัวข้อลงตัวไม่ได้ จนได้เข้ามคลุกคลีกับโปรเจ็คของ Page ก็เกิดความสนใจ ที่จะเข้ามาทำในส่วนคณิตศาสตร์ ของโปรเจ็คนี้ และอีกสาเหตุก็คือเค้าชอบ Page (ฮั่นแน่! กะแล้ว เหมือนหนังไทยไม่มีผิด)

การสร้างกราฟของอินเตอร์เน็ตโดยอัตโนมัติ เป็นจุดเริ่มให้ Page เขียนโปรแกรมเล็กๆ ประเภท Crawler ขึ้นมาตัวหนึ่ง ในห้องนอน ตอนที่ Page เริ่มเขียน crawler นี่ จำนวนหน้าเว็บทั่วโลกก็มีอยู่ประมาณ 10 ล้านหน้าเห็นจะได้ แต่จำนวนลิงค์ที่เชื่อมกันอยู่นี่คงนับไม่ถ้วน โดยหวังจะให้เจ้า Crawler ไต่ไปเก็บข้อมูลมาสร้างเป็นกราฟโดยอัตโนมัติ ในตอนนั้น เค้าอาจจะยังไม่รู้หรอก ว่าโปรแกรมเล็กๆที่เค้าเริ่มเขียนในห้องนอน จะเป็นสิ่งที่ประสบความสำเร็จที่สุดในโลก ต่อจาก Internet ....

หลายคนคงอาจจะยังไม่คุ้นกับคำว่า Crawler ผมขยายความให้อีกนิด Crawler เป็นโปรแกรมเล็กๆโปรแกรมนึง ที่ทำหน้าที่ไปดึงเว็บเพจต่างๆมา ซึ่งปกติแล้วข้อมูลแสดงหน้าเว็บไซท์ที่เราเห็นนี่ เป็นแค่ text file หรือ ข้อมูลตัวอักษรธรรมดาๆนี่เอง (ลองกดที่เมนู view->source ดูนะครับ นั่นแหละคือข้อมูลของหน้าเว็บที่แท้จริง) พอโปรแกรมประเภท บราวเซอร์ เช่น IE หรือ FireFox ได้รับข้อมูลพวกนี้แล้วมันก็ทำการแปล และแสดงให้เป็นสิ่งที่คุณเห็นบนหน้าจอตอนนี้อีกที)

หลังจากที่โปรแกรมประเภท crawlwer ได้รับข้อมูลมาแล้ว มันก็จะทำการแยกข้อมูล และลิงค์(ที่จะไปหน้าอื่น) ออกมา

สมมุติว่าหน้าที่คุณอ่านอยู่ตอนนี้นี่ มีลิงค์ออกจากมันไป อีกประมาณ 30 ลิงค์ เจ้าตัว crawler ก็จะทำการจัดการเอาลิงค์เหล่านี้มาเข้าคิวเรียงกันไว้ แล้วก็ไล่ไต่ไปทีละลิงค์ตามคิว แล้วก็ไปดึงข้อมูลหน้านั้นมา แล้วแยกลิงค์แบบเดิมอีก แล้วลิงค์ที่ได้จากหน้าถัดไปนี้ก็จะเอามาเข้าคิว เรียงต่อกันไป เรื่อยๆ เพื่อจะทำการไปดึงข้อมูลมาในเวลาถัดๆไป เพราะฉะนั้นมันก็เลยให้ความรู้สึกคล้ายๆกับว่า เจ้า crawler มันค่อยๆคืบคลานออกจากจุดเริ่มต้นไปทีละน้อย ทีละน้อย

และแล้ว ในเดือนมีนาคม 1996 (เพียงแค่ไม่ถึงปีจากที่เค้าเริ่มศึกษา) Page ก็ปล่อยเจ้า crawler ตัวแรกให้เริ่มทำงาน โดยไต่จากหน้าเว็บเพจของเค้าเอง ที่อยู่บนเว็บไซท์มหาวิทยาลัยสแตนฟอร์ด เจ้า crawler เวอร์ชั่นแรกของ Page ไต่ไปตามเว็บเพื่อเก็บแค่ ชื่อเว็บ และ ข้อมูลใน header เท่านั้นเอง แต่ก็ถือว่าเป็นจุดเิริ่มอย่างเป็นรูปธรรมของ Google (ที่ในปัจจุบันกลายเป็น ซุปเปอร์อภิมหาอมตะนิรันดร์กาล crawler ไปแล้ว เพราะมันไต่ไปเก็บข้อมูลทุกอย่าง ของทุกหน้าเว็บ) เพราะตอนนั้นขืนเก็บทุกอย่าง ทรัพยากรของระบบ เช่น memory หรือ ฮาร์ดดิสต์ ที่จะต้องใช้ในการจัดการกับข้อมูลเหล่านี้ ก็คงต้องมีขนาดใหญ่มหึมา และมันก็มากเกินกว่าจะเป็นโปรเจ็คของเด็กนักเรียนคนนึง

โปรแกรมเล็กๆ ที่ถูกปล่อยออกจากห้องนอนที่หอพักนักศึกษาคนนึง ได้กลายเป็นปรากฏการณ์ ที่ใหญ่ที่สุด รองจากการคิดค้นอินเตอร์เน็ต
Page และ Brin ได้ร่วมกันคิดหาสูตร หรือ วิธีคำนวณว่า จะให้คะแนนแต่ละหน้าเว็บเพจอย่างไรดี

เว็บเพจหนึ่งหน้า ถ้ามองให้ดีมันก็เป็นเหมือนผลงานวิชาการชิ้นนึง ภายในผลงานวิชาการนี้ ก็จะมีการอ้างอิงผลงานคนอื่น (หรือลิงค์ไปหาคนอื่นนั่นเอง) (แต่บ้านเราอาจจะไม่เป็นแบบนั้น เพราะบ้านเรา ถ้าเห็นว่าเรื่องไหนดี ก็ใช้วิธี cut-paste เนื้อหานั้นไปเลย โดยไม่ได้อ้างอิงที่มา นอกจากจะละเมิดลิขสิทธิแล้ว ยังถือว่าเป็นการเสียมารยาทอย่างรุนแรงด้วยครับ แม้ว่าจะนำไปใช้ในทางไม่ก่อรายได้ ที่อาจจะไม่ผิดลิขสิทธิในบางกรณี แต่ก็น่าจะมีมารยาทในการอ้างอิงถึงที่มาของเนื้อหานั้นด้วย ช่วยๆกันผลักดันให้มันไปในทางถูกต้องมากขึ้นนะครับ) เพราะฉนั้นหากหน้าเว็บใดมีคนอ้างอิงถึง (ลิงค์) ถึงหน้านั้นเยอะ ก็น่าจะแสดงว่าหน้านั้นมีข้อมูลที่ดี หรือ น่าเชื่อถือ ซึ่งหากมีการให้คะแนนแต่ละหน้าเว็บ Page คิดว่าการอ้างถึงจากเว็บอื่นก็จะมีส่วนสำคัญต่อคะแนน



PageRank




ภายหลังเค้าตั้งชื่อเล่นระบบคิดคะแนนของเค้า ว่า Pagerank (ซึ่งล้อคำ 2 ความหมาย คำแรกคำว่า Page หมายถึงได้ทั้งหน้าเว็บ หรือ หมายถึงชื่อของเค้าเอง) ซึ่งก็ล้อเลียนการคิดคะแนนมาจากการอ้างอิงกันของผลงานวิชาการ เพราะเค้ารู้ว่า การอ้างอิงกันของเอกสารทำอย่างไร มีการให้คะแนน Citation Index อย่างไร และเค้าก็ได้เพิ่มเรื่องของการให้และลดคะแนนพิเศษด้วย หากว่าลิงค์ที่ลิงค์มาหาหน้าใดหน้าหนึ่ง เป็นลิงค์ที่มีคะแนนสูง เป็นเว็บที่มีความน่าเชื่อถือ เว็บที่ถูกลิงค์ ก็จะย่อมได้คะแนนสูงด้วย และหากนำเว็บมาเรียงลำดับกัน เว็บที่ได้คะแนนสูงกว่า ก็จะอยู่ลำดับต้นๆ ส่วนเว็บที่มีคะแนนต่ำก็จะอยู่ท้ายๆ

สมมุติว่าตอนนี้มีคนลิงค์มาหา เว็บ วิชาการ.คอม อยู่ 1000 ลิงค์ ในขณะเดียวกัน มีคนลิงค์ไปที่เว็บ ของเด็กชาย ก. จากจังหวัดสงขลา เพียง 10 ลิงค์ ทำให้ ณ ตอนนี้ ถ้าดูแค่จำนวนลิงค์เฉยๆ เว็บของ วิชาการ.คอม จะมีคะแนน สูงกว่า เว็บของ เด็กชาย ก และ ต่อจากนั้น ถ้า เว็บ วิชาการ.คอม มีลิงค์ไปยังเว็บของ สสวท. และ เว็บของเด็กชาย ก ก็ลิงค์มายังเว็บของ สสวท เช่นกัน ดังนั้น เว็บของ สสวท ก็จะไ้ด้คะแนน จาก เว็บของ วิชาการ.คอม มากกว่า จากเว็บของ เด็กชาย ก. ด้วยนั่นเอง (คือไม่ได้นับเฉพาะจำนวนของลิงค์) ซึ่ง Google ก็ทำการให้คะแนน แต่ละหน้าของเว็บ แบบนี้ไปเรื่อยๆ ไปเรื่อยๆ ไปเรื่อยๆ จนวนเกือบครบทั้งโลก คะแนนของแต่ละหน้า ก็ขึ้นอยู่กับคะแนนของหน้าทีลิงค์มาหามัน คะแนนของหน้าทีลิงค์มาหามัน ก็ขึ้นกับ คะแนนของหน้าทีลิงค์มาหามันก่อนหน้านี้ คะแนนของหน้าทีลิงค์มาหามันก่อนหน้านี้ ก็ขึ้นกับ คะแนนของหน้าทีลิงค์มาหามันก่อนหน้านี้ก่อนหน้านี้ ไปเรื่อยๆ

จินตนาการออกมั้ยครับว่า คณิตศาสตร์สำหรับคำนวณคะแนนของ Google Pagerank จะซับซ้อนขนาดไหน นั่นหล่ะของเล่นของนาย Surgey Brin เค้าหล่ะ




ภาพตัวอย่าง สมมติให้หน้ายิ้มแต่ละอันแทนแต่ละเว็บ ขนาดของหน้ายิ้มแทนความสำคัญของเว็บ


สังเกตุว่า เว็บสีแดงด้านบนจะมีขนาดใหญ่กว่าเว็บสีเขียวด้านล่าง แม้จะมีลิงค์เข้ามาแค่ 1 ลิงค์ จากสีส้ม เท่านั้น แต่เพราะเว็บสีส้มมีความสำคัญสูง เพราะได้รับการลิงค์มาจากหลายที่ เว็บสีแดงด้านบนก็เลย มีความน่าเชื่อถือด้วย (ดังนั้นถ้าเว็บไซท์ไหน ได้รับการลิงค์จากเว็บที่เป็นที่ยอมรับ ก็จะได้รับความยอมรับด้วย)

งงมั้ยครับ เอางี้ เปรียบเทียบง่ายๆอีกตามเคย การจัดอันดับเว็บก็เหมือนกับการจัดอันดับความสำคัญของคน สมมุติว่าเมืองไทยมีคนชื่อ คุณลำไย หลายคนมาก เอาเป็นว่า สมมุติเป็น คุณลำไย  A กับ คุณลำไย  B ก็แล้วกัน คุณลำไย A เป็นที่รู้จักกันทั่วในหมู่เด็กอนุบาล มีเด็กอนุบาล 50 กว่าคนที่รู้จักคุณลำไย A แต่ ในขณะเดียวกัน มีเพียง 3 คน คือ ท่านนายกทักษิณ  คุณอภิสิทธ์ และ หมอพรทิพย์ เท่านั้นที่รู้จัก คุณลำไย B แต่จะเห็นได้ว่า คนที่รู้จักคุณลำไย B ได้รับการยอมรับจากคนทั้งประเทศว่ารู้จัก ว่ามีชื่อเสียง ดังนั้นเวลาคนค้นหาคำว่า คุณลำไย ใน Google คุณคิดว่า Google จะเอาชื่อคุณลำไย A หรือ คุณลำไย B ขึ้นก่อนกัน คำตอบคือ คุณลำไย B ครับ เพราะ Google คิดว่าคุณลำไย B ได้รับการยอมรับ จากคนที่ได้รับการยอมรับแล้ว ซึ่งน่าจะเป็นคุณลำไย ที่ผู้ใช้ต้องการค้นหานั้นเอง (เหมือนเว็บที่ได้ใหญ่ๆลิงค์มาที่เรา เราก็ได้คะแนนดีกว่า เว็บเล็กๆหลายเว็บลิงค์มาที่เรา นั่นเอง)

ตอนที่ทั้งสองคนคิดระบบให้คะแนนนี้ขึ้น ทั้งสองคนไม่ได้คิดถึงเรื่องของการค้นหาข้อมูลบนเว็บเลย ที่คิดอยู่ในหัวก็มีแต่เรื่องที่ว่า จะค้นหาให้ได้ว่าใครลิงค์มาที่เว็บเพจหน้าหนึ่งๆบ้าง (ฺBacklinks) โดยที่ทั้งสอง ทำโปรเจ็ค Backrub นี้ มาจนถึงขั้นที่ รับ ลิงค์ (URL) มาหนึ่งลิงค์ มันก็จะให้ ผลลัพธ์ มาเป็น ลิงค์ที่ลิงค์มาหา (backlinks) ทั้งหมดที่ลิงค์มาหาหน้าที่กำหนด โดยเรียงลำดับตามความสำคัญ (เช่นถ้าใส่ เว็บ สสวท ไป ก็จะได้ทั้งเว็บ วิชาการ.คอม และ เว็บเด็กชาย ก. และเว็บอื่นๆ ที่ลิงค์มาหา สสวท เป็น ผลการค้นหา แต่เว็บ วิชาการ.คอม จะอยู่ด้านบนกว่า เว็บของ เด็กชาย ก. เป็นต้น)

ซึ่งเค้าก็พบว่าจริงๆแล้ว มันสามารถประยุกต์ ไปทำเป็น Search Engine น่าจะได้ หลังจากเล่นไปเล่นมากับ กราฟของเว็บ ที่ทั้งคู่สร้างขึ้นมา พบว่า การค้นหาข้อมูลทำได้รวดเร็ว และ ถูกต้อง อย่างไม่น่าเชื่อ ชนิดที่ทั้งสองคนยังงงว่าทำไม ไอเดียที่จะใช้เรื่องนี้ทำ Search Engine ถึงไม่ผุดมาในหัวตั้งแต่ต้น เพราะมันชัดเจนเหลือเกิน

หลังจากทดลองปรับแต่ง Backrub ให้กลายเป็น โปรแกรม Search engine ทำการค้นหาข้อมูล บนหน้าเว็บหน้าใดหน้าหนึ่ง(ผมละเชื่อเค้าเลย สองคนนี้ ปกติแล้วเรื่อง การค้นหาข้อมูลใน document นี่ไม่ใช่เรื่องง่าย เพราะไม่ได้ค้นกันแบบ เอาคำเทียบคำ แต่ต้องมีการแปลงรูปแบบของ ข้อมูลให้เป็นเมตริกซ์ ทั้ง SVM กับ LSI (Latent Sematic Indexing - เป็นวิธีการที่กำลังมาแรง) ก็สุดหิน ที่อยู่ในวิชา Information Retrieval - แต่สองคนนี้เล่นเรียนรู้เรื่องเหล่านี้ชนิดที่ประมาณว่า ชั่วข้ามคืน) เค้าพบว่าผลการค้นหา ดีกว่า search engine ที่มีอยู่ในตอนนั้น เช่น AltaVista หรือ Excite มาก โดย Search Engine ที่มีอยู่นั้นมักจะให้ผลการค้นหา ที่ไม่ค่อยจะเกี่ยวข้องกับเรื่องที่ต้องการหาจริงๆ เพราะอาศัยเพียงแค่การจับคู่คำ ไม่คำนึงถึงสัญญาณ หรือข้อมูลอื่นๆที่ใกล้เคียง search engine ใหม่ของพวกเค้า ไม่เพียงว่าผลการค้นหาจะดี แต่ ระบบการให้คะแนนนี้จะดีขึ้นเรื่อยๆ เมื่อเว็บโตขึ้นเรื่อยๆ กราฟของเว็บโตขึ้นเรื่อยๆ ผลการค้นหาก็จะดีขึ้นเรื่อยๆ เพราะจะมีตัวให้คะแนนซึ่งกันและกัน เยอะขึ้น ตรงนี้นี่เองที่

ทั้ง Brin และ Page รู้ว่าเค้า สะดุดขุมทรัพย์ มหึมาเข้าให้แล้ว...

และแล้ว โปรเจ็ค search engine โดยนักศึกษา 2 คน ... ก็เริ่มเป็นรูปร่างที่ชัดเจน เค้าเริ่มขอบริจาคเครื่องคอมพิวเตอร์เก่าๆที่มหาวิทยาลัยไม่ได้ใช้แล้วมาต่อกันเป็น server เค้าเริ่มจะหาเงินมาซื้อ harddisk เพิ่มเติม เพราะตอนนี้ข้อมูลที่ clawler เก็บมามันโตขึ้นเรื่อยๆ

ทั้งสองคนจึงตั้งชื่อ search engine ตัวใหม่ของเค้าว่า Google ที่ไม่ได้ตั้งใจ แต่สะกดผิด เพี้ยนมาจากคำว่า googol (ที่แปลว่า เลข หนึ่ง ตามด้วย ศูนย์ 100 ตัว - สังเกตุสัญลักษณ์ของ Gooooooooooooooooooooogle)



Server ของ Google เมื่อปี 1998 สมัยที่ยังอยู่ที่ Stanford เป็นเครื่องที่ได้จากการบริจาคทุกเครื่อง
(ปัจจุบัน Search Engine ของ Google ทำงานอยู่บน Linux Server Farm จำนวนประมาณ 250,000 เครื่อง)


และ Google เวอร์ชั่นแรก ถูกปล่อยออกสู่สาธารณะชน ไว้บนเว็บของมหาวิทยาลัย Stanford เป็นครั้งแรก ตอนเดือนสิงหาคม 1996 - เพียง 1 ปี หลังจากที่ทั้งคู่เจอกันครั้งแรก - เพียงไม่กี่เดือนนับจากเริ่มศึกษาปัญหา - โอ จอร์จ ทำได้ยังไงเนี่ย ! ! ! ! อัจฉริยะจริงๆ ! ! !

บทความโดย:
ผศ.ดร.บุญญฤทธิ์ อุยยานนวาระสถาบันเทคโนโลยีนานาชาติสิรินธร (SIIT)
มหาวิทยาลัยธรรมศาสตร์
นักเขียนประจำ วิชาการ.คอม

ไม่มีความคิดเห็น:

แสดงความคิดเห็น

หมายเหตุ: มีเพียงสมาชิกของบล็อกนี้เท่านั้นที่สามารถแสดงความคิดเห็น