数据vs.算法,究竟谁更重要
【編者按】隨著服務器愈加的廉價,集群計算框架愈加成熟,大家似乎已經(jīng)完全把眼光放到海量的數(shù)據(jù)上,算法的精心調(diào)校似乎已成為某些領(lǐng)域或者某些公司才去鉆研的事情。那么,數(shù)據(jù)為王的時代,算法真的已無用武之地?下面我們一起看看Rio和鄧毅的辨析。
免費訂閱“CSDN大數(shù)據(jù)”微信公眾號,實時了解最新的大數(shù)據(jù)進展!
CSDN大數(shù)據(jù),專注大數(shù)據(jù)資訊、技術(shù)和經(jīng)驗的分享和討論,提供Hadoop、Spark、Imapala、Storm、HBase、MongoDB、Solr、機器學習、智能算法等相關(guān)大數(shù)據(jù)觀點,大數(shù)據(jù)技術(shù),大數(shù)據(jù)平臺,大數(shù)據(jù)實踐,大數(shù)據(jù)產(chǎn)業(yè)資訊等服務。
以下為原文:
谷歌的強不是強在 PageRank 算法,而在于它是第一個在排名時把鏈接——而不只是文字和標題——考慮進去的。又以自己教的數(shù)據(jù)挖掘課為例。他讓學生以 Netflix 用戶對一萬八千多部電影的打分為基礎數(shù)據(jù),寫程序為她們推薦別的電影。其中有組學生的算法較優(yōu),另外一組學生算法一般,但使用了外部數(shù)據(jù)——IMDB 對電影類型的歸類。結(jié)果第二組的結(jié)果勝過了第一組。
那么到底是數(shù)據(jù)重要還是算法重要呢?
來自Rio的觀點:
————————————————————————————————————————————
雖然不能這么絕對的判斷一定誰比誰重要,但在實際應用中很多時候的確是數(shù)據(jù)更加重要。有幾方面的原因:
在很多問題中,算法的“好壞”在沒有大量有效數(shù)據(jù)的支撐下是沒有意義的。換句話說,很多算法得到的結(jié)果的質(zhì)量完全取決于其和真實數(shù)據(jù)的擬合程度。如果沒有足夠的數(shù)據(jù)支撐、檢驗,設計算法幾乎等于閉門造車。
很多算法會有一堆可調(diào)參數(shù)。這些參數(shù)的選擇并沒有什么標準可依,無非是扔給大量數(shù)據(jù),看參數(shù)的變化會帶來什么樣的結(jié)果的變化。大量、有效的數(shù)據(jù)成為優(yōu)化這類算法的唯一可行方法。
更極端的例子是,算法本身很簡單,程序的完善全靠數(shù)據(jù)訓練。比如神經(jīng)網(wǎng)絡。
對于很多成熟的算法,優(yōu)化算法的增量改善通常遠小于增大輸入數(shù)據(jù)(這是個經(jīng)濟性的考慮)。
比如問題中舉例的 Google。在它之前的搜索引擎已經(jīng)把基于網(wǎng)頁內(nèi)容的索引算法做得很好了,要想有更大的改善需要換思路。PageRank 算法的采用大大增加了輸入的數(shù)據(jù)量,而且鏈接數(shù)據(jù)本身對于網(wǎng)頁排名相當關(guān)鍵(當然他們也做了大量算法的優(yōu)化)。【插話:在這樣的思想指導下,Google 想要插手社交網(wǎng)絡或微博也不足為奇了吧?實時搜索、排名沒有真人的互動怎么可能。】
Netflix 挑戰(zhàn)賽的例子中,Netflix 本身的推薦算法也是優(yōu)化到極致了。再從算法本身去找改進之處,投入產(chǎn)出比太低。引文中的學生僅僅是加入了 IMDB 數(shù)據(jù)庫關(guān)于電影分類(從而更加明確觀眾的偏好)就能帶來比復雜算法更加顯著的改善,試想如果他們能拿到 Rotten Tomatoes 的數(shù)據(jù)會怎樣?
When people are equally smart, big data wins。這個結(jié)論的悲摧之處在于,在類似行業(yè)中,今后小的創(chuàng)業(yè)公司想要打敗巨頭就不那么容易。要么要改變思路,要么要改變策略。指望靠小聰明扳倒大象會很成問題。
當然這也不是絕對的。比如典型的反例(算法比數(shù)據(jù)重要)是 Google 剛被批準收購的 ITA Software。這家牛 B 烘烘(估計是現(xiàn)存最大的 Lisp shop)的公司的機票搜索引擎驅(qū)動著世界各大航空公司、票務中介的后臺系統(tǒng)。它的數(shù)據(jù)來自一個各大航空公司授權(quán)的公司,其他競爭者也可以花錢(雖然不便宜)買到同樣的數(shù)據(jù)。但它的牛 B 之處在于能從同樣的數(shù)據(jù)里比別人更快挖出更好的結(jié)果。
來自鄧毅的觀點:
———————————————————————————————————————————
程序 = 數(shù)據(jù)結(jié)構(gòu) + 算法,數(shù)據(jù)結(jié)構(gòu)用來干啥的,裝數(shù)據(jù)的呀。
數(shù)據(jù)能干啥?數(shù)據(jù)是信息的源泉,沒有足夠的數(shù)據(jù),就沒有信息,信息技術(shù)沒有信息啥都沒有。
算法能干啥?把數(shù)據(jù)中信息提取出來,不經(jīng)過提取,數(shù)據(jù)還是數(shù)據(jù),變不成有用的信息。
這倆不是并列的關(guān)系,而是一體的,如何能說誰重要呢?腦子重要還是心臟重要,你給我說說。
此外,數(shù)據(jù)的好壞如何衡量?不是越多越好,當然數(shù)據(jù)越多往往所蘊含的信息越大,這個容易看得出來;算法的好壞如何衡量?不是越復雜約好,能從海量的垃圾中找到有用的信息的算法就是好的算法,雖然不這么復雜,不是所有的人都能看到這點。
我最想說的是什么?如果不是事不關(guān)己的旁觀者,數(shù)據(jù)往往是自己能拿到最多的數(shù)據(jù),然后根據(jù)自己的這些數(shù)據(jù)去找最合適的算法。
原文鏈接: 糾結(jié),到底是數(shù)據(jù)重要還是算法重要呢?總結(jié)
以上是生活随笔為你收集整理的数据vs.算法,究竟谁更重要的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java八大排序算法
- 下一篇: 研发团队平稳度过“从小到大”并非易事