所有app的對外接口基本上是兩個,輸入和輸出。兩個都很重要。
早期的search engine 非常多,多如牛毛。很多人的錢都砸裏麵了。幾乎所有的 都是按照 關鍵詞進行檢索的,通過在數據庫中 調用 Full Text Search 找到結果,輸出給用戶。包括後起之秀 Google。
Google勝出的幾個原因,、
一是輸出排序用了PageRank,這是Larry Page模仿科學文獻中的 Impact factor搞的,
二是Google對輸入關鍵詞的選擇,是Google成功的另一大關鍵,Google把英文詞分為三類,1)常用詞,比如 the, to, in, 等等;2)中度流行詞;3)偏僻詞 少用詞。Google檢索基本上忽略常用詞,而是以 中度流行詞為主進行檢索,偏僻詞稍作些許參考。哪些詞是檢索詞,是Google的秘密。
三是用了Nosql數據庫,發明了自己的document database, 極大的提高了速度。
我當時最喜歡的 search engine 是 AllTheWeb,它的獨特之處是給你很多的輸入欄,可以對 title 定 檢索詞,對 url 定檢索詞,對內容定 檢索詞,對 meta 定 檢索詞,等等,然後它在對應的數據庫的 Column 裏麵查詢,所以給出的結果 不僅快,而且非常準,原因是輸入非常準,直接針對每個 column。但是廣大的勞動人民不喜歡,大概嫌煩,勞動人民不愛勞動。
Google成功後,也最早希望能夠 通過人工智能進行 NLP natual language processing 來解讀 輸入。當然,可能WolframAlpha 更早就解讀 問句來回答問題。但是 WolframAlpha 沒有成功,盡管我很喜歡它。它在解讀輸入上相當成功,但是他的基本理念還是從數據庫從得到萬無一失的正確答案給用戶,所以沒有得到勞動人民的垂青。
Google放棄了 RNN (recurrent neural networks),終於在 2017年 靜悄悄的 完成了一項壯舉,那就是 language model Transformer. 這是 革命性的一步,現在所有的先進 language model 都是用 Transformer!比如
- OpenAI 的 GPT-3, (chatGPT) 是 Generative Pretrained Transformer 的縮寫
- Google 的 BERT,是 Bidirectional Encoder Representations from Transformer 的縮寫
- 微軟的 CTRL,是 Conditional TRansformer Language 的縮寫
- Facebook 的,RoBERTa ,是 Robustly Optimized BERT Transformer Approach的縮寫
- 華為的 Hi-Transformer
- 等等
遺憾的是,由於Google是個好麵子的大公司,不能輕易的推出不成熟的東西 以及不安全的東西。所以 Google的訓練數據搞的太大,好像是 OpenAI 的幾十倍,而且安全性也搞得過於複雜。要知道,模型訓練是非常昂貴的,所以 臃腫遲緩的Google BERT 被 GPT 捷足先登。
總結一下,檢索輸入,從 分類 Column 檢索 (All The web)到 關鍵詞 (Google),到 NLP Language model (Transformer)應該是趨勢,Google 是否還能保住檢索的市場,關鍵在於 BERT 能不能取勝