網際網路:
搜尋是如何進行的呢?
嗨,我是約翰(John)。我帶領著Google的搜尋和機器學習團隊。
我認為這是令人驚奇與振奮的一件事:
全世界的人們會使用搜索引擎來詢問瑣碎小事與重要問題
所以盡我們所能地提供人們最好的答案,成為了重責大任。
嗨,我是Akshaya,我任職於Bing搜索小組。
有很多時候,我們進行人工智慧
與機器學習的研究,但我們必須深刻了解使用者會如何運用
因為最終,我們希望能對社會產生好的影響。
問一個簡單的問題:旅行到火星要花多久時間呢?
這些結果是從哪裡來的?為什麼這個結果排在另一個結果的前面呢?
好。我們一起深入了解:搜尋引擎如何將你的問題轉化成這樣的結果。
你需要知道的第一件事:當你進行搜尋時,
搜尋引擎不是即時到網際網路上去找尋你要的資訊。
那是因為網際網路上有超過數十億的網站
而且每一分鐘還有數以百計的網站被創造出來。
如果搜尋引擎,必須到每一個網站來找你要的資訊,這件事情就會永遠無法完成。
為了讓你的搜尋更加快速,搜尋引擎一直不斷地掃描網站
提前記錄下來,以後可能對你的搜尋有幫助的資訊。
這樣一來,當你搜尋有關「旅行到火星」時
搜尋引擎已經擁有了即時能夠給你答案所需要的資訊。
它是這樣運作的:
網際網路是眾多網頁所連結而成的網。網頁間以超連結彼此相連。
搜尋引擎一直不斷地執行一個名為「蜘蛛」的程式
這個程式在這些網頁中爬行,蒐集這些網頁的資訊。
每次找到一個超連結,它就會順著這個連結,拜訪在網際網路中能夠找到的每一個頁面。
蜘蛛對於每一個它拜訪的頁面,都會記錄所有搜尋所需的資訊。
這些紀錄會加到一個名為「搜尋索引」的特殊資料庫。
現在,讓我們回到先前的搜尋,看看我們能不能弄清楚
搜尋引擎是如何產生出這些結果。
當你問「旅行到火星需要多長時間」時,搜索引擎會用這句話裡的每一個字,
到搜尋索引中檢查,來馬上得到網路上所有包含這些字的網頁清單
但是,只是查看這些搜尋字會得到數以百萬的網頁
所以搜尋引擎必須能夠判定對你最適當的 頁面,來優先顯示。
這就是最微妙的地方,因為搜尋引擎可能需要猜測你在找什麼。
每個搜索引擎會使用自己的演算法,根據它認為你所需要的結果,來排序這些網頁。
搜索引擎的排序演算法可能會檢查:你搜尋的字詞是否出現在網頁的標題上
它可能會檢查這些字詞是否彼此相鄰出現
以及其他的計算方式,來幫助它能更準確的判斷哪些是你想看的網頁、哪些不是。
對於搜尋選出最相關的結果,Google發明了最著名的演算法:
它是將「有多少網頁連結到特定頁面」納入計算
這裡的想法是:如果有很多網站認為這一個頁面很有意思
那麼它很有可能就是你正在找尋的那個網頁。
這個演算法稱為:「佩奇排名 (Page Rank)」。不是因為它排名網頁,而是因為
它是以發明者,拉里佩奇(Larry Page)來命名的。佩奇是Google的創始人之一。
由於,當你查看網頁時,網站往往能因此獲得收入,垃圾郵件發送者便不斷地
嘗試找到欺騙搜尋演算法的方式,來讓他們的網頁能夠在搜尋結果中,有更高的排名
搜索引擎定期地更新演算法
來防止偽造或不受信任的網站來獲得高排名。
到最後,還是需要由你來留意這些不受信任的網頁
你可以查看網址,並確認它有個可靠的來源。
搜索程式不斷地演進,改善演算法來回傳比競爭對手更好、更快的結果。
現今的搜尋引擎,甚至運用你沒有明確提供的資訊,來幫助你縮小搜尋的範圍。
例如,你搜尋可以遛狗的公園,許多搜索引擎
會出所有在你附近的可以遛狗的公園,即便你沒有輸入你的位置。
現代的搜索引擎,能理解的不僅是網頁上的文字,還有實際上的意義
為你找出最符合你正在找尋的東西。
例如,如果你搜索「速球投手(fast pitcher)」,它會知道你正在尋找的是運動員,
如果你搜尋的是「大水壺(large pitcher)」,它會找尋到是與廚房用途的選擇。
為了更好地理解這些字詞,我們運用了機器學習,這是人工智慧的一種。
它能夠讓搜索演算法不只是找尋網頁中的個別字母或字詞
還能了解這些字詞背後的含義。
網際網路不斷成倍地增長,但如果設計搜尋引擎的團隊
能幫助我們做正確的判斷,你所需要的資訊離我們的距離,就只有幾次按鍵之遙。