010-82092128 English

集團概況

加入我們

聯系我們
【AI之美】系列五淺談搜索引擎

互聯網上的搜索引擎很多,有通用的網頁搜索,也有針對不同領域的垂直搜索,2C、2B、用戶產品、商業產品等等。對于一個IT系統來說,搜索功能也是標配功能之一。搜索引擎的主要任務比較單一,就是“搜索”,從大量數據中找到想要的數據。但這個任務并不簡單:數據量大,用戶真正想要的是什么,他的需求如何表達,怎么找到相關的數據,都是需要考慮的問題。

搜索引擎經過多年的發展,大致上經歷了分類目錄、文本檢索、連接分析、場景化這幾個大的發展階段,各方面技術都有了比較成型的體系,主要包括數據獲取、數據分析、檢索、需求分析、數據展現等幾個???。本文將從技術角度,為大家解讀搜索引擎的主要技術原理及其涉及人工智能的部分。

1. 搜索引擎的技術原理

搜索引擎面對的數據多種多樣,主要有文字內容、圖像內容、音頻內容、視頻內容,但技術流程大致相同,如圖1所示。

1.png

1搜索引擎技術流程

整個流程分成離線和在線兩部分,離線部分進行大規模數據處理,包含數據獲取、數據分析、數據索引。在線部分滿足用戶實時的檢索請求,包含需求表達、需求分析、高級檢索、基礎檢索、結果展現。我們以網頁搜索為例,對這個流程做一個梳理:

1) 數據獲取

數據來源主要包括網上的開放數據、自有數據、特定數據等幾類。對于網上的開放數據,可以使用爬蟲技術自動抓取。網絡爬蟲的邏輯其實很樸素,就是先選擇一些網頁作為種子,因為網頁和網頁之間有超級鏈接,從這批種子開始,順著超級鏈接一路爬下去。但是其中的挑戰還是很多的,比如種子如何選取,網頁打開的很慢甚至打不開時如何保證爬取的速度,很多網頁沒有被超級鏈接指向時如何發現他們,循環爬取怎么辦,被爬取的網頁內容變化了怎么辦等等,再加上硬件和帶寬的要求,情況還是比較復雜的。

自有數據是企業自己的數據,范圍是可知的。特定數據主要是有特殊需求的數據或者定性抓取的數據,往往需要定制化處理。這兩類數據相對于開放數據來講,情況簡化了很多。

2) 數據分析

系統把數據存下來之后,就是加工處理環節,包括內容解析、去噪、鏈接分析、作弊分析、數據分類、打標簽、挖掘關鍵詞等。其中任何一個話題,都可以作為一個方向去研究。比如鏈接分析的原理就是利用網頁之間的指向關系,分析每個網頁的重要程度,基本假設是被指向越多的網頁就越重要,當然在工程實踐中會有很多種情況,鏈接有站內的,有站外的,鏈接源的質量有高有低,鏈接文本的表達,如何識別帶有其他意圖而故意制造的鏈接,鏈接關系會經常變化等。

3) 數據索引

接下來的步驟就是與在線環境的銜接,在線搜索對性能要求還是很高的,一般是在毫秒到秒級響應。這個環節就是對這些數據做預處理,處理成可以供在線系統使用的倒排索引格式。正排索引是文檔到詞的映射,倒排索引是詞到文檔的映射,所以在搜索一個詞的時候,可以直接定位到包含該詞的文檔有哪些。對于不同的數據類型,索引結構是不一樣的,比如空間數據要使用n叉樹、R樹等。

離線部分主要包含這三個環節,各系統會根據自己的需求有增減。

4) 需求表達

需求表達是在線部分的第一步,這個環節的主要問題是交互設計。主流傾向是盡量簡化用戶輸入,輸入越簡單,對系統的智能化要求就越高,簡化到極致不需要輸入時,就成了推薦系統。即便是推薦系統,他的隱含輸入項還有時間、地點、ip、瀏覽器、歷史記錄等很多信息,這些信息對系統的幫助非常大,因為用戶是帶著需求來的,但是他不一定知道如何表達自己的需求,系統想辦法獲取更多的參考信息,綜合分析用戶輸入的背后需求。

5) 需求分析

需求分析是搜索引擎的核心環節之一,也是非常具有挑戰性的一個環節。用戶的輸入非常簡單,系統要從中分析出用戶背后的意圖,再將這個意圖落地成系統能夠使用的形式?!耙饌肌鋇謀硎痙椒ê芏?,有分類、關鍵詞、向量化、結構化等等。這些方法一般是綜合使用的,因為單一的表示方式信息量太少。這里有一個更根本的問題,即人的“意圖”如何用符號來表征,符號能不能表征人大腦中的“意圖”,在以后的文章中我們會詳細的討論。

6) 在線檢索

在線檢索??槭紫燃釉厥菟饕?,接收需求分析的結果,負責從海里數據里命中滿足需求的數據,然后匯總結果,統一整理,生成計算結果返回給用戶。這里消耗的硬件資源會比較多,有的系統還會使用GPU做數據處理,對性能要求也比較高,要達到毫秒級、不超過秒級的響應時間。在實際部署時,要平衡cpu、內存、硬盤、帶寬等硬件資源,通?;岵渴鵒教諄肪?,作為備份或者測試使用。

7) 結果展現

結果展現是最后一個環節了,在應用層拼裝數據展示給用戶,但這個環節直接影響用戶體驗,跟需求表達環境相對應,主要問題是交互的設計。

2. 搜索引擎與人工智能

搜索引擎的任務是一邊理解用戶的需求,另一邊理解數據的含義,然后兩者做匹配。用戶是帶著需求來的,這個需求隱藏在用戶頭腦中,表現出來的就是在系統中的幾個簡單操作步驟,系統要盡量從簡單的輸入還原出其背后的需求。同樣數據的表現形式雖然多種多樣,但其抽象含義隱藏在這些表現之后,系統也要從這些表現中還原出抽象含義。這個過程完全符合人工智能的特點。所以不僅AI技術發揮的空間非常大,筆者認為搜索引擎本身就是一項人工智能技術,其中的每個環節都需要AI技術的深入應用。

我們以需求分析為例,介紹下其中的AI技術(圖2)。

2.png


圖2需求分析中的 AI 技術

用戶的輸入是五花八門的,涉及的領域也是非常的多。有的輸入非常簡單,比如“incoPat”是有明確指向的,這種就比較好處理,最典型的意圖是尋址,但還有可能是找他的介紹,找他的歷史發展,找他的新聞等等。這時大數據就要發揮作用了,我們可以分析這個用戶以前都關心什么,最近這段時間什么話題最熱門,其他人都在關心什么,最近什么內容產生的最多,把這些信息綜合起來,可以為每種需求賦予一個概率,爭取在第一頁把可能性最高的數據展現給用戶。

如果輸入的內容復雜一些,比如“incoPat是什么時候成立的”,意圖非常明確,但理解這句話對計算機來講并非易事。比如“incPcat的成立時間”,這兩句話的意思是一樣的,對這里問題,我們上篇中介紹的知識圖譜比較擅長,因為成立時間是實體的一個屬性,可以直接給出答案。如果輸入的再復雜一些,內容更長一些,挑戰就會更大,當然可以簡化成我們介紹過的話題模型,也能得到一些結果,但噪音會比較大。

如果輸入是圖片等多媒體信息,比較重要的是抽取特征,然后做特征之間的匹配。限于篇幅這里就不展開介紹了。

3. 搜索引擎的展望

我們說“智能”的一個比較重要的體現是反應應該是整體化的、場景化的,“搜索”是一個動作,雖然很專,但難免限制其價值發揮。筆者認為搜索引擎的未來發展會更偏專業化和場景化。從給出內容,到給出答案,到給出解決方案,再到一套服務,在這個發展過程中,搜索引擎的概念已經擴大了。

從技術角度講,可以說搜索引擎是incoPat的核心功能之一,后面的文章中,我們會詳細介紹incoPat作為可信好用的全球專利檢索運營平臺,如何做到專業化、場景化的搜索,如何打通各種形式的輸入,如何提升用戶的使用體驗。

 

微信掃一掃 關注我們