怎樣理解「我們沒有更好的演算法,我們只是有更多的數據」 ?
01-09
「我們沒有更好的演算法,」谷歌的彼得·諾維奇(Peter Norvig)說,「我們只是有更多的數據。這句話怎樣理解?謝謝!
對於搜索引擎,精準廣告,推薦系統,信息發現等複雜的互聯網服務而言
很多重要的演算法都是和數據緊密相關的甚至在某些情況下, 巧婦難為無米之炊, 沒有數據再高級的演算法可能都無能為力, 有了一些核心的關鍵數據, 一些簡單的演算法即可實現別人很難完成的效果. 可以說在這些領域內數據的重要性&>演算法的重要性. 如果大家數據相同的情況下, 比拼的才是演算法.
舉一些例子:
在搜索引擎的這個場景下, 搜索量越大, 使用的用戶越多, 那麼獲取到的用戶數據也就越充分. 演算法可以從這些用戶行為裡面分析出有效的信息來, 反饋搜索結果, 進而提升搜索引擎的效果.用戶行為分析這部分功能, 大概是繼Anchortext的使用後, 對搜索引擎效果影響最大的.
這樣就會形成一個正向循環, 搜索引擎效果越好-&>用戶使用越多-&>用戶行為數據越充分-&>搜索引擎效果越好 "數據"目前也成為了"技術壁壘"中很重要的一部分, 不妨把"數據"稱為一個產品的"用戶壁壘". 佔領用戶, 進而佔領用戶數據, 可以有效的抑制追趕者的前進步伐. 這既是Google一直保持的優勢,也是Google害怕Facebook的一部分原因: 在Facebook的王國內, Google是獲取不到任何數據的.搜索有兩個目標:
1、快;2、准分散式、存儲、性能優化等解決的都是快的問題,但更重要的是,你能否返回用戶需要的結果/廣告。
在數據挖掘的世界裡,演算法只是個一個輸入特徵,輸出權重的黑盒而已。不同的演算法對於結果的影響並不是最核心的。核心卻在於特徵。你有數據,就能挖掘出別人不知道的特徵,就能給相同的特徵訓練出更精確的參數。另一個類似的例子,搜狗拼音輸入法,為什麼佔有率這麼高?口碑和用戶習慣是一方面,另一方面是,他有這麼多人的輸入習慣,有了這些日誌數據,它才能計算出更好的模型,找到最新的辭彙,給出最準確的結果。
搞機器學習的人應該有第一手感覺,就是數據質量高了,演算法就是次要的了。花哨的演算法,是為了彌補採樣不足,數據失真等數據質量問題。這種問題在網路信息這種超高維度超複雜分布上尤為突出。獲取更多更好的信息,比設計更好的演算法,要有效的多,可以大大減少對設計者先驗知識的依賴,也就更能保持競爭優勢。
數據太多了之後,演算法不好做了。。。 所以說,目前很多網站跟google競爭都是想在垂直搜索引擎領域競爭了。。。
好的數據加上合適的演算法就可以好的效果
對於實際問題,無論是數據挖掘,還是機器學習,數據都很重要。那麼搜索都哪裡用到數據,而利用數據的結果究竟作用有多大?從以下幾方面來說明:
- 搜索需要大量的數據、爬蟲信息;
- 數據挖掘需要大量用戶行為的數據積累;
- 機器學習需要大量的數據訓練;
- 演算法的驗證、提升需要大規模數據檢驗,而且這些數據一方面是其成型的基礎,另一方面在檢驗其效率的好壞。
針對一個好的搜索系統,如何通過數據去提升效率,進一步促進更好的搜索結果在現,從google建立時就已經成立了。
數據貫穿著整個演算法的生命,數據的量和質直接影響演算法的進步! 個人愚見,見諒。其言外之意是: 我們的演算法是經過海量數據的考驗的 !
演算法數據很像生產關係生產力,生產力發展會帶來新的生產關係,適合的生產關係會解放更多的生產力。生產力與生產關係是社會生產的兩個方面,二者的有機統一構成為生產方式。 就像演算法數據才是真正的搜索引擎。
個人認為。。。演算法是在數據的基礎上開發出來的,只有足夠的數據對數據有足夠的研究才可以根據數據的形式和關係及其上的操作等的一些東西相應的開發出對該類數據有針對性的高效演算法,他應該是在強調數據的基礎地位吧。。。
推薦閱讀:
※A*演算法 A*是念「A 星」還是"A star"?
※怎樣才能贏得這個2048遊戲?有沒有必勝的策略?有沒有可能同時製造出兩個2048來?
※關於01背包問題九講的優化?
※如何評價ZJOI2017 Day1?
※尋路演算法中如何處理動態障礙物?