獨(dú)家 | 機(jī)器學(xué)習(xí)先驅(qū)Michael Jordan清華演講原文:計(jì)算思維,推斷思維與數(shù)據(jù)科學(xué)
聽譯&校對| 馬越 曹翔 王婷 湯人懿 蘇國睿
以下為喬丹院士作的題為“計(jì)算思維、推斷思維與數(shù)據(jù)科學(xué)的主題報(bào)告原文,在不改變愿意的前提下,部分有刪改。
再次感謝!
很榮幸來到這里,今天我不會(huì)做一個(gè)技術(shù)講座,但仍會(huì)側(cè)重技術(shù)上和數(shù)學(xué)上的問題,我覺得清華的學(xué)生應(yīng)該會(huì)對這些感興趣。思考數(shù)學(xué)問題是有益的,我將會(huì)把演講分為兩個(gè)部分。
我將從一些挑戰(zhàn)開始講起,這部分會(huì)偏重于技術(shù);接著我會(huì)轉(zhuǎn)到系統(tǒng)的挑戰(zhàn)上,所以相對于給幾張數(shù)據(jù)增長的幻燈片,包括數(shù)據(jù)的用法,這個(gè)部分將著重于真實(shí)的數(shù)據(jù)科學(xué)家是什么樣子的。
想象一下,我的剛剛從伯克利畢業(yè)的學(xué)生們,去硅谷找了個(gè)工作,上班的***天老板就對他們說,我要你幫我建一個(gè)大數(shù)據(jù)系統(tǒng),不管它是什么吧,但它將會(huì)用個(gè)性化的服務(wù)系統(tǒng)取代我們傳統(tǒng)的服務(wù)系統(tǒng)。這種情況在硅谷經(jīng)常發(fā)生,可能在中國也一樣。
傳統(tǒng)的服務(wù)系統(tǒng)做的事情比如搜索、電商或是醫(yī)藥,是對所有人都只提供這一個(gè)服務(wù)系統(tǒng),他們?nèi)甑墓ぷ骶褪怯脭?shù)據(jù)去優(yōu)化服務(wù)系統(tǒng)器。所以搜索服務(wù)系統(tǒng)通常是某種加上參數(shù)的算法,數(shù)據(jù)涌入,你開始調(diào)整參數(shù),使輸出的數(shù)據(jù)質(zhì)量越來越高。
過去十年里,他們收集了大量的數(shù)據(jù),并開始意識(shí)到他們提供的服務(wù)系統(tǒng)可以不止一種。他們可以提供個(gè)性化的服務(wù)系統(tǒng),至少對于大公司來說是這樣的。
小公司在提供大量的服務(wù)系統(tǒng)這一點(diǎn)上是無法和大公司對抗的,但他們也意識(shí)到可以提供更個(gè)性化的服務(wù)系統(tǒng),所以許多小公司也開始向個(gè)性化方向調(diào)整。
那么,你作為一個(gè)技術(shù)員,該怎么做呢?
我要做的就是重復(fù)這個(gè)算法可能,成百上千次,用更專業(yè)化的數(shù)據(jù)和更個(gè)性化的數(shù)據(jù),每種都進(jìn)行循環(huán)重復(fù)。我不會(huì)用每個(gè)個(gè)人的數(shù)據(jù)去重復(fù),而是用一些分成小組的數(shù)據(jù)比如同一家庭的數(shù)據(jù)等。
我在后臺(tái)做這件事時(shí)需要很多電腦,不僅僅是服務(wù)系統(tǒng),而是成千上萬種模型,這就是我們現(xiàn)在所處的狀況。很多人都在學(xué)著構(gòu)建這樣的系統(tǒng),而且他們通常都會(huì)成功。
但真正的難題并不在這里,老板也意識(shí)到了一些情況。我們知道統(tǒng)計(jì)模型是有錯(cuò)誤的,因?yàn)樗腔诂F(xiàn)有數(shù)據(jù),但是你不能讓錯(cuò)誤次數(shù)隨著服務(wù)系統(tǒng)的人越來越多而不斷增大,我可以忍受少量錯(cuò)誤,但我不能忍受錯(cuò)誤持續(xù)增長,否則當(dāng)我把這個(gè)服務(wù)系統(tǒng)投放市場時(shí),它***天產(chǎn)生10個(gè)錯(cuò)誤,一年后這個(gè)服務(wù)系統(tǒng)變得極受歡迎,但產(chǎn)生了10,000個(gè)錯(cuò)誤,那么這10,000個(gè)人將會(huì)不高興了,然后他們就會(huì)想搞個(gè)大新聞,抱怨你的服務(wù)系統(tǒng)并沒有那么好。
所以我只能忍受保持不變的錯(cuò)誤數(shù)據(jù),它不能隨著系統(tǒng)規(guī)模的擴(kuò)大而擴(kuò)大。作為一個(gè)統(tǒng)計(jì)學(xué)家,我認(rèn)為那才是真正的問題所在。我曾考慮過錯(cuò)誤率成比例的增加時(shí),用統(tǒng)計(jì)學(xué)里的L2或是L1范數(shù)去控制這種錯(cuò)誤,相當(dāng)于要去控制L***范數(shù),你就要思考如何用尾概率和冪定律等去做這件事。我的學(xué)生們,如果他們被培養(yǎng)的不錯(cuò)的話,都會(huì)知道怎么去思考這些問題,怎么去構(gòu)建這樣一個(gè)系統(tǒng)。然而更糟糕的是,你的老板不僅要求你解決這個(gè)問題,還會(huì)順便要求你這個(gè)系統(tǒng)至少得和老系統(tǒng)跑的一樣快,好吧,現(xiàn)在我們必須得有計(jì)算思想了。前半件事就是一種系統(tǒng)再加上統(tǒng)計(jì)和機(jī)器學(xué)習(xí),現(xiàn)在我們還要預(yù)計(jì)運(yùn)行時(shí)間,我們想要這個(gè)系統(tǒng)在一定的時(shí)間內(nèi)完成,于是你發(fā)現(xiàn)你做的事情和計(jì)算機(jī)科學(xué)家非常相像。
統(tǒng)計(jì)學(xué)家沒有運(yùn)行時(shí)間的概念,統(tǒng)計(jì)理論體系里的人們從來不會(huì)討論這個(gè)問題,機(jī)器學(xué)習(xí)領(lǐng)域里也不討論。我們不知道什么叫好的***運(yùn)行時(shí)間,我們沒有一個(gè)概念可以把允許承擔(dān)的統(tǒng)計(jì)風(fēng)險(xiǎn)和運(yùn)行放在一起考量。所以在統(tǒng)計(jì)學(xué)里,你知道通常調(diào)用的數(shù)據(jù)量,了解正在評(píng)估的參數(shù)的維度假設(shè)空間的復(fù)雜性,有賴以構(gòu)建系統(tǒng)的方程,但你不知道運(yùn)行時(shí)間,并且數(shù)據(jù)量不同運(yùn)行時(shí)間還不一樣。這本是計(jì)算機(jī)科學(xué)家應(yīng)該干的活,他們本該介入并把一些量轉(zhuǎn)化成運(yùn)行時(shí)間。
這對我的學(xué)生們來說開始成為一個(gè)小挑戰(zhàn)了。他們會(huì)說我可以構(gòu)建一個(gè)系統(tǒng),如果它運(yùn)行的慢那你就得給我更多電腦,但我還是不能打包票,為什么現(xiàn)在不能運(yùn)行緩慢。因?yàn)榇蟛糠诌@種服務(wù)系統(tǒng)具有時(shí)間預(yù)算,比如你的搜索引擎,你要幾十毫秒才能得到反饋,是吧?那就是九十年代時(shí)***的搜索引擎的反應(yīng)時(shí)長。
點(diǎn)了搜索按鈕幾十毫秒之后你才能得到反饋,而不是瞬時(shí)得到結(jié)果。前幾代的搜索引擎下,點(diǎn)擊按鈕甚至需要等待一段不確定的時(shí)間,一般是好幾秒,這對使用者來說是件很沮喪的事,所以他們花了很大功夫優(yōu)化這點(diǎn),***反應(yīng)變成了幾毫秒到幾十毫秒。
所以如果現(xiàn)在你說我要構(gòu)建一個(gè)服務(wù)系統(tǒng),它將是個(gè)性化的,會(huì)給你更好的信息,但是它跑起來比較慢,沒有人會(huì)滿意的。我打賭這對于系統(tǒng)構(gòu)建人員來說是個(gè)不小的限制因素,使得這個(gè)任務(wù)更具挑戰(zhàn)性了。
如果你思考的再長遠(yuǎn)一些,比如老板說這個(gè)系統(tǒng)應(yīng)該也是可伸縮的,今天我有10TB的數(shù)據(jù),五年后我將有PB級(jí)別的數(shù)據(jù)量,每個(gè)人我都會(huì)有更多的數(shù)據(jù),把個(gè)性化做的更好。這看上去沒什么問題,更多的數(shù)據(jù)就應(yīng)該得到更好的模型,但是對算法而言,數(shù)據(jù)越多意味著運(yùn)行時(shí)間也越長,處理數(shù)據(jù)也需要更多時(shí)間,如果讀數(shù)據(jù)進(jìn)行采樣的話,又會(huì)得到更多你并不想要的誤差,你又必須去控制這些誤差。所以實(shí)際上當(dāng)前我們并沒構(gòu)建這樣一個(gè)系統(tǒng)的準(zhǔn)則,真的只靠人們不斷地嘗試和猜測,如果系統(tǒng)沒有按照預(yù)期運(yùn)行,就去購買更多的電腦,最終他們意識(shí)到花費(fèi)太多的錢仍然沒有效果,公司也因此破產(chǎn)。更糟糕的是,他們今天設(shè)計(jì)了這個(gè)系統(tǒng),花了很多錢,但是***卻很少能夠正常工作,新的數(shù)據(jù)進(jìn)來了,系統(tǒng)卻不能擴(kuò)展。
這對很多行業(yè)和公司來說都是致命的,如果只是對搜索或電商還不算什么大問題,系統(tǒng)掛了你頂多是得到了不好的搜索結(jié)果,還不算太糟糕,沒有出人命,也沒人受傷。但是當(dāng)你換一個(gè)行業(yè),比如在個(gè)性化醫(yī)療領(lǐng)域應(yīng)用大數(shù)據(jù)系統(tǒng)的時(shí)候,你可能會(huì)得到很差的預(yù)測結(jié)果,系統(tǒng)會(huì)很慢,而且有可能會(huì)出人命!如果應(yīng)用在交通、金融等領(lǐng)域,可能會(huì)傷害到很多人。我認(rèn)為這些問題實(shí)際上都是正在發(fā)生的,我認(rèn)為很多大數(shù)據(jù)系統(tǒng)都在做糟糕的預(yù)測,人們使用不必要的藥物,接受不必要的手術(shù),產(chǎn)生不必要的問題。
而且我認(rèn)為這種狀態(tài)實(shí)際上只會(huì)變得更糟,直到我們發(fā)展出一種科學(xué) 一套工程原則——可以允許我們思考數(shù)據(jù)。我喜歡用的一個(gè)類比是修建高樓和橋梁,幾千年來這些實(shí)踐讓人類社會(huì)更加先進(jìn)發(fā)達(dá),但當(dāng)發(fā)生高樓倒塌或橋梁斷裂事故的時(shí)候,也會(huì)奪走人的生命。
***一門叫做土木工程的學(xué)科出現(xiàn)了。研究給定一個(gè)建筑的高度,給定明確的風(fēng)力大小,給定土壤等等,怎么修建建筑。但在大數(shù)據(jù)領(lǐng)域,我們沒有任何和這相似的東西。
我們有計(jì)算機(jī)科學(xué)、統(tǒng)計(jì)學(xué)、機(jī)器學(xué)習(xí),我們有很多新想法,我們很聰明,可以做任何事情。但是當(dāng)我們設(shè)計(jì)一個(gè)系統(tǒng)時(shí),我們不知道錯(cuò)誤率和時(shí)間,不知道在大規(guī)模情況下是否能有更好的決策,不知道這會(huì)隨著時(shí)間推移變得更差。而且當(dāng)實(shí)際構(gòu)建這樣的系統(tǒng)時(shí)還要面臨很多其他問題,比如很多數(shù)據(jù)是來自于很注重隱私的人,他們不想給你醫(yī)療數(shù)據(jù),特別是不想讓你公開給任何人。所以你不能只是把數(shù)據(jù)拿過來就分析,你必須考慮數(shù)據(jù)收集的問題,這里面也有管理風(fēng)險(xiǎn)、帶寬限制等等。
這些問題全都要考慮到,因?yàn)樗鼈儠?huì)影響到統(tǒng)計(jì)推斷的質(zhì)量,它們會(huì)讓誤差增加,這是很常見的工業(yè)界對員工的要求,但是在學(xué)術(shù)界并沒有這樣的領(lǐng)域能提供這些解決方案,至少對我而言是這樣。我認(rèn)為這是下個(gè)世紀(jì)的挑戰(zhàn),不是把我們現(xiàn)有的想法拿過來直接應(yīng)用,而是作為科學(xué)來認(rèn)真思考和踐行。所以,這個(gè)問題上一個(gè)非常有幫助的表述是——計(jì)算思維和推斷思維的結(jié)合。
計(jì)算思維不是說知道如何編程和使用數(shù)據(jù)庫,而是一種思想。關(guān)于思考一個(gè)問題的抽象概念、模塊性、性能……一切你在計(jì)算機(jī)課堂上學(xué)到的東西,而不僅僅是編程。計(jì)算機(jī)背景的人應(yīng)該很熟悉這些,不熟悉的可能是推斷思維。那是已經(jīng)有超過兩百年歷史的統(tǒng)計(jì)學(xué)里的東西,不是一個(gè)新的領(lǐng)域,不是拿到數(shù)據(jù)就開始進(jìn)行操作,像做數(shù)據(jù)庫的人那樣。
首先要考慮數(shù)據(jù)從哪來,數(shù)據(jù)背后是什么,數(shù)據(jù)獲取的過程中有什么問題,這就是推斷,還不嚴(yán)格屬于計(jì)算機(jī)科學(xué)的研究范疇。即便***得到的東西都是所謂的算法,你也必須思考背后的統(tǒng)計(jì)采樣和總體。所以其實(shí)我并不是太喜歡機(jī)器學(xué)習(xí)這個(gè)詞,我認(rèn)為并沒有什么新東西,還是統(tǒng)計(jì)思維。但是因?yàn)橛?jì)算機(jī)科學(xué)家不太懂統(tǒng)計(jì)推斷的東西,所以他們?nèi)×艘粋€(gè)新名字叫做機(jī)器學(xué)習(xí)。
很多機(jī)器學(xué)習(xí)的工作都沒有考慮推斷、采樣以及總體,只是把機(jī)器學(xué)習(xí)模型應(yīng)用到數(shù)據(jù)卻沒有得到正確的答案,因?yàn)闆]有考慮偏差、因果推斷等內(nèi)容。我認(rèn)為把兩者結(jié)合起來并且認(rèn)真研究是真正的挑戰(zhàn)。我我以前更多關(guān)注算法和系統(tǒng),過去幾年越來越像個(gè)理論家,逐漸更關(guān)注理論同時(shí)在某些方面也是關(guān)注系統(tǒng)。我在實(shí)驗(yàn)室里設(shè)計(jì)系統(tǒng)的過程中看到了理論性的問題,所以我去尋找計(jì)算機(jī)和統(tǒng)計(jì)的理論,它們有什么概念可以怎么結(jié)合起來。所以我們發(fā)展了數(shù)據(jù)科學(xué)這個(gè)交叉學(xué)科,這并不容易。
統(tǒng)計(jì)決策理論里有損失函數(shù)和風(fēng)險(xiǎn),但它的基礎(chǔ)理論中沒有運(yùn)行時(shí)間的概念,你可以去查看幾十年來成千上萬的統(tǒng)計(jì)決策相關(guān)的論文,你不會(huì)看到任何一篇提及了運(yùn)行時(shí)間;同樣地,在計(jì)算機(jī)這邊你可以找到成千上萬的論文討論復(fù)雜度,各種復(fù)雜度理論,但是卻找不到關(guān)于統(tǒng)計(jì)風(fēng)險(xiǎn)的文章。而利用統(tǒng)計(jì)風(fēng)險(xiǎn)理論可以控制基于數(shù)據(jù)的錯(cuò)誤率。此外,對統(tǒng)計(jì)估計(jì)問題的深刻理解不僅僅包括學(xué)習(xí)算法、還包括學(xué)習(xí)下界,學(xué)習(xí)你可能做的***的是什么,但是在計(jì)算機(jī)理論里卻沒有太多關(guān)于下界的。有倒是有,但是不多。
接下來的演講將進(jìn)入我今天的重點(diǎn)主題,談?wù)勔恍╆P(guān)于“理論”(theory)的問題。在統(tǒng)計(jì)學(xué)“推算”(inference)概念上的“計(jì)算”(computational)限制,以及一些關(guān)于建立數(shù)據(jù)分析棧的問題。差不多是AMP實(shí)驗(yàn)室里所做的事情,以及后續(xù)的叫RISE實(shí)驗(yàn)室的一些發(fā)展動(dòng)態(tài)。
我們已經(jīng)建立了一個(gè)系統(tǒng)來替代Spark。我想告訴大家,事實(shí)上這是我***向公眾宣布這個(gè)信息。這個(gè)打算替代Spark的工程正在進(jìn)行中,這個(gè)替代會(huì)在1月份完成,而我在今天就宣布了。
我們現(xiàn)在來談?wù)勔幌盗袉栴},我使用一個(gè)私人數(shù)據(jù)分析的案例。這些隱私數(shù)據(jù)與你們是否相關(guān)可能并不重要,但它們的確引出了一些需要承載的問題。人們通常擁有數(shù)據(jù),并希望這些數(shù)據(jù)發(fā)揮作用,但他們也希望他們自己的數(shù)據(jù)能得到保護(hù),比說誰知道他們的數(shù)據(jù)。
試想一下,接下來的幾年的醫(yī)療數(shù)據(jù),你們當(dāng)中的大多數(shù)人可能會(huì)得到你們的基因組序列,現(xiàn)在需要花費(fèi)500美元去獲得它。或許在五年或十年的將來,去找你的醫(yī)生時(shí),醫(yī)生可能會(huì)對你說,在杯子里留一些你的血液或唾液,這樣我就能獲得你的基因。他會(huì)獲得你所有的三十億對基因,并且會(huì)存入數(shù)據(jù)庫,他們將用這些數(shù)據(jù)做什么呢?
去預(yù)測你可能將來會(huì)患的所有疾病,也會(huì)嘗試用于生物醫(yī)學(xué),以及生物信息學(xué)。他們未來會(huì)嘗試通過給定的基因找出相對應(yīng)的藥物,并且把基因在一些方面表現(xiàn)出的缺陷和相對應(yīng)的治療聯(lián)系起來。這是一個(gè)很好的機(jī)會(huì),但也會(huì)帶來很多問題,特別是隱私問題。
如果我是一個(gè)生物醫(yī)學(xué)研究者,說我可以得到你的基因嗎?我知道你擁有這些基因。他會(huì)問我:首先,你要用我的這些基因數(shù)據(jù)做什么?你會(huì)怎樣保護(hù)我的基因數(shù)據(jù)?
如果我說這些數(shù)據(jù)是用于研究解決他的家族遺傳疾病,他會(huì)非常樂意并給我他的基因。如果我說是用于計(jì)算并確定保險(xiǎn)費(fèi)率,他也會(huì)認(rèn)為這是件好事情。他希望通過數(shù)據(jù)來保護(hù)自己。我可能會(huì)舍棄一些數(shù)據(jù)而僅使用其中一部分?jǐn)?shù)據(jù)來做研究。
如果我說我用這些數(shù)據(jù)來通過百度給你展示廣告,他可能會(huì)拒絕,表示他不喜歡我這樣使用他的數(shù)據(jù)。所以每個(gè)人都希望能夠控制自己的數(shù)據(jù),希望存在一種類似開關(guān)值參數(shù)的東西,來控制數(shù)據(jù)涉及隱私的程度。根據(jù)具體問題和有哪些保障來做出決定。所以為了把隱私考慮進(jìn)去,這種事會(huì)成為數(shù)據(jù)堆的組建的一部分,而且這并不容易。
下面我將通過一些圖片來說明。我知道在坐諸位很多在研究大數(shù)據(jù),那么讓我們以大數(shù)據(jù)思維來進(jìn)行下面的內(nèi)容。假設(shè)現(xiàn)在數(shù)據(jù)庫中是銀行數(shù)據(jù),我擁有一些人的年齡、身高、體重、地址,以及他們有多少存款,這是非常典型的銀行數(shù)據(jù)。
一個(gè)“詢問”(query)可能是:誰的存款最多?或者存款平均值是多少?我會(huì)得到一個(gè)答案,我把它叫做帶有波浪號(hào)的theta。如果你考慮到了數(shù)據(jù)庫中的個(gè)人隱私問題,你可能就會(huì)想:如何在數(shù)據(jù)庫中加入噪聲來保護(hù)人們的隱私,這樣就別人就不能掌握數(shù)據(jù)庫中的原始數(shù)據(jù),或者獲得儲(chǔ)蓄人的信息。
于是你將它放入一個(gè)渠道(channel)或者一個(gè)隨機(jī)的運(yùn)算因子Q, 得到一個(gè)私有化數(shù)據(jù)庫。在這個(gè)數(shù)據(jù)庫中“詢問”同樣的問題時(shí),你將會(huì)得到新的答案叫帶有乘方號(hào)(^)的theta,并且有理論能夠證明出來。
帶乘方號(hào)(^)的theta和帶波浪號(hào)的theta是十分接近的,在Q上計(jì)算結(jié)果的概率很高,以及所有的“詢問”和數(shù)據(jù)庫,所以目前這個(gè)計(jì)算理論有許多不同的版本,其中***的是差分隱私(differential privacy),應(yīng)用非常廣泛。這會(huì)讓數(shù)據(jù)庫中有用的數(shù)據(jù)增多,即給出一個(gè)問題,通過一種算法來解決,同時(shí)也有了理論上的保證。
這種方式有統(tǒng)計(jì)推理(inferential)的性質(zhì)嗎?當(dāng)我***次接觸這個(gè)領(lǐng)域時(shí),我問我做數(shù)據(jù)庫研究的同事:“你在構(gòu)建框架時(shí)進(jìn)行統(tǒng)計(jì)推理么”?他們說那是當(dāng)然,因?yàn)?ldquo;詢問”可以是統(tǒng)計(jì)性質(zhì)的,比如可以計(jì)算平均值和標(biāo)準(zhǔn)差等等。但是我回答說 :“這并不是推理性統(tǒng)計(jì)(inferential statistics),這只是描述性統(tǒng)計(jì)(descriptive statistics)。”
他問那推理性統(tǒng)計(jì)是什么意思?我說我們需要交流一下了。這里我舉另外一個(gè)例子,一個(gè)來自醫(yī)療研究領(lǐng)域的案例。我有一些數(shù)據(jù)庫中的人員信息,有他們的年齡、身高、體重、以及他們服用和不服用治療藥物的壽命,這是典型的醫(yī)療數(shù)據(jù)。好,現(xiàn)在,我想不想保護(hù)他們的隱私?當(dāng)然想!這是他們的醫(yī)療數(shù)據(jù)!所以我會(huì)采用和前文講的一樣的保護(hù)數(shù)據(jù)隱私的方式。但是在銀行數(shù)據(jù)庫的例子里,我僅關(guān)注數(shù)據(jù)庫中的人。他們是我數(shù)據(jù)庫中的人,我希望知道他們的存款數(shù)額,他們的收入和支出情況,我僅僅對銀行中的人進(jìn)行研究(做詢問)。
然而在醫(yī)療案例中,我可能對數(shù)據(jù)庫中的人絲毫不感興趣,事實(shí)上數(shù)據(jù)庫中的人可能已經(jīng)死亡或者離開……我不關(guān)心這些人。我采集數(shù)據(jù)只是為了根據(jù)這些數(shù)據(jù)來為新的病人進(jìn)行評(píng)估和治療,所以我需要思考的是那些將來可能會(huì)納入數(shù)據(jù)庫但是現(xiàn)在還沒有被納入的病人的數(shù)據(jù)。這才是統(tǒng)計(jì)學(xué)的推理性思維——那些將來可能會(huì)納入數(shù)據(jù)庫但是現(xiàn)在還沒有的,我想研究的是他們。
這個(gè)思維不是從計(jì)算機(jī)科學(xué)里來的,而是從統(tǒng)計(jì)學(xué)推理思維來的。所以如果我是一個(gè)醫(yī)生,病人走進(jìn)我的辦公室,我會(huì)根據(jù)他的年齡、身高、 體重來決定是否給他藥物。但是我不能僅僅靠猜測,我需要根據(jù)從其他人處獲得的舊數(shù)據(jù)做分析后進(jìn)行判斷,所以說我并不只對數(shù)據(jù)庫里已經(jīng)有的人感興趣。
這就是統(tǒng)計(jì)學(xué)家的思維:他們面對一個(gè)數(shù)據(jù)庫時(shí)會(huì)思考“詢問”,比如數(shù)據(jù)庫樣本涉及的人員數(shù)量。他們必須對人員數(shù)量非常清楚,不能隨便說一個(gè)數(shù),而且它們必須成為采樣模型,可能是隨機(jī)的、可能是線性的、可能是分層的……這是他們必須思考的問題。
如果不這樣做就得不到算法。你不能有個(gè)數(shù)據(jù)庫就直接想用什么算法、怎么處理數(shù)據(jù),這并不是統(tǒng)計(jì)學(xué)推理思維。你先得思考數(shù)據(jù)是怎么排布陣型的,然后思考過后你才能得到算法,所以統(tǒng)計(jì)學(xué)家會(huì)對人數(shù)(P)進(jìn)行一個(gè)“詢問”,詢問那些將來可能會(huì)納入數(shù)據(jù)庫、但是現(xiàn)在還沒有被納入的病人的數(shù)據(jù),接下來才能得到答案,我們把它叫做theta。統(tǒng)計(jì)學(xué)家證明了總體theta和樣本的theta有很大概率在所有的采樣(S)、所有的查詢(query)和所有可能的分布下都很接近。這是統(tǒng)計(jì)學(xué)做的事情,是我們過去30年甚至更久一直在做的事情。
新的問題在于要把兩個(gè)概念結(jié)合起來,把推理性和計(jì)算性結(jié)合起來。假設(shè)我們采集了一堆數(shù)據(jù),我想保護(hù)數(shù)據(jù)庫里的人的隱私,即在收集數(shù)據(jù)時(shí)給他們一個(gè)保證。但是我也需要思考準(zhǔn)備用數(shù)據(jù)來做推測的那一群應(yīng)用人群,我需要證明總體theta和樣本theta很接近,在S、Q等一系列方面有很高的重合概率。這就是這種新的挑戰(zhàn)。而且這不只是在隱私這一領(lǐng)域里的事情,這種挑戰(zhàn)存在于很多領(lǐng)域里,比如(數(shù)據(jù))壓縮,你可能想研究:如果把一群數(shù)據(jù)壓縮至渠道Q來發(fā)展一個(gè)壓縮了的數(shù)據(jù)庫,因?yàn)槲矣刑嗟臄?shù)據(jù),即便在數(shù)據(jù)被壓縮以后,我依然想對總體數(shù)據(jù)做出可靠的推測。
我的一位學(xué)生Yuchen Zhang今天正好在場,他是做這方面研究的,在“關(guān)于數(shù)據(jù)推測和壓縮方面”寫了幾篇很不錯(cuò)的文章。加州伯克利大學(xué)在這個(gè)隱私問題上做了不少研究。我今天只簡單講一下這個(gè)。這是一個(gè)典型的隱私問題引導(dǎo)圖,這里是隱私化數(shù)據(jù),穿過一個(gè)渠道后這是Z值,是你愿意公開給統(tǒng)計(jì)學(xué)家的,他們通過這個(gè)計(jì)算某種估量函數(shù),數(shù)學(xué)方面就一張幻燈片,這里的細(xì)節(jié)我就不講了,于是我們建立了一個(gè)有限制性的優(yōu)化問題,這個(gè)問題有種鞍點(diǎn)的感覺,也有更進(jìn)一步的下確界。
這個(gè)只是給觀眾里的專家看看,從紅色地方開始,損失量的期望值的極限,在統(tǒng)計(jì)學(xué)里叫做***風(fēng)險(xiǎn),藍(lán)色部分是估計(jì)函數(shù)的下確界,叫做極小極大風(fēng)險(xiǎn)。然后我們新加的部分是所有渠道的下確界,在這個(gè)叫alpha的保護(hù)界限,隱私程度這叫在alpha級(jí)的微分隱私度。加上那個(gè)以后我們現(xiàn)在有了一個(gè)大型優(yōu)化問題,一定空間 、一定復(fù)雜度、一定數(shù)學(xué)特性,我們做了數(shù)學(xué)演算來解決這個(gè)問題,最終得到了不少答案,不過我們算出了一個(gè)很簡單的結(jié)果,得到了一個(gè)沒有隱私度的統(tǒng)計(jì)率。
觀察數(shù)據(jù)點(diǎn)的數(shù)量n,然后把n替換成n乘以alpha的平方除以alpha是微分隱私參數(shù),是數(shù)據(jù)的維度,這樣就得到了一個(gè)新的式子。這個(gè)新的式子通過原式的小小轉(zhuǎn)變就能得到,目前我們真正地把隱私和統(tǒng)計(jì)學(xué)結(jié)合在了一起。它們就真正的在一個(gè)式子里了,這個(gè)式子包含一些統(tǒng)計(jì)變量:數(shù)據(jù)點(diǎn)的數(shù)量、維度參數(shù)和一個(gè)計(jì)算變量alpha,即微分隱私參數(shù),我們有幾篇論文,如果你對這類問題感興趣的話可以看看。
以上只是結(jié)合隱私問題來做推測的一個(gè)例子,更難的問題在于把推測和計(jì)算和一些更廣的東西結(jié)合在一起。
計(jì)算就是萬物是不是?圖靈告訴我們它無所不能,機(jī)器學(xué)習(xí)也只不過是計(jì)算的一種例子。我們能夠說:我可以在一定時(shí)間里和一定的內(nèi)存限制下,達(dá)到一定精準(zhǔn)度和一定的問題,一定的估計(jì)函數(shù)和機(jī)器學(xué)習(xí)算法,這些都是計(jì)算機(jī)科學(xué)家做的事情。像談?wù)摃r(shí)間和空間等等,我做的就是加入統(tǒng)計(jì)誤差的分析和數(shù)據(jù)的風(fēng)險(xiǎn)和量等統(tǒng)計(jì)學(xué)上的東西,搞出一套理論把計(jì)算機(jī)和統(tǒng)計(jì)結(jié)合起來。但我想說這是不可能的,目前我們沒有這個(gè)能力,而且我認(rèn)為圖靈復(fù)雜度(Turing Complexity)不是向前發(fā)展的,而且很顯然這不是發(fā)展趨勢。***化領(lǐng)域的communication復(fù)雜度這些這些可能會(huì)有用,它們中的某一個(gè)可能是最終的解決方案。這個(gè)領(lǐng)域需要新的想法,我們需要一種新的計(jì)算的概念。
圖靈的計(jì)算概念太籠統(tǒng)了,什么都是,但是我們不需在一個(gè)機(jī)器里做所有的事情,尤其是對于我們很多的運(yùn)作器來說,改了一點(diǎn)日期它們不會(huì)改變太多,它們有很好的穩(wěn)定性或者說利普希茨性質(zhì)(Lipschitz)。我們可以想到一些有利普希茨性質(zhì)(Lipschitz)計(jì)算理論,這些理論不會(huì)變化太多,圖靈復(fù)雜(Turing Complexity)就沒有這種性質(zhì),一點(diǎn)點(diǎn)改變就能完全改變得到的答案。你在計(jì)算機(jī)領(lǐng)域會(huì)很擔(dān)心這一點(diǎn),但在我們統(tǒng)計(jì)學(xué)領(lǐng)域并不需要擔(dān)心那么多!
所以也許,我們可以發(fā)展一個(gè)更限制性的“計(jì)算”版本,也就是說更適合統(tǒng)計(jì)“推測”。這張ppt展示了在這個(gè)問題上近10年的探究,沒有一個(gè)是解決方案,但是它們都是將計(jì)算和統(tǒng)計(jì)學(xué)以各種方式結(jié)合在一起的嘗試。最早的一個(gè)方式是把計(jì)算和幾何結(jié)合在一起,然后把幾何和統(tǒng)計(jì)結(jié)合在一起,***從結(jié)合到推測。這些是計(jì)算和幾何之間凸松弛和運(yùn)行時(shí)間已經(jīng)存在的關(guān)系,關(guān)于它們是有研究的,這樣我們發(fā)展了一套平行理論。將幾何與統(tǒng)計(jì)結(jié)合在一起:簡單講,當(dāng)你把一個(gè)問題“弛化”時(shí),運(yùn)行時(shí)間就減少了,這是已知的,然后我們證明了當(dāng)你進(jìn)一步“弛化”這個(gè)問題的時(shí)候,統(tǒng)計(jì)學(xué)風(fēng)險(xiǎn)就進(jìn)一步提高,所以運(yùn)行時(shí)間和統(tǒng)計(jì)風(fēng)險(xiǎn)程度是呈負(fù)相關(guān)的。我們也研究過并發(fā)控制這個(gè)對數(shù)據(jù)庫的人員來說很熟悉的概念,他們用這個(gè)來控制統(tǒng)計(jì)風(fēng)險(xiǎn)和時(shí)間的權(quán)衡,我們在***化Oracle的***范圍上做過很多研究,包括***化率,也得到了很多令人興奮的成果。我們也有很多在二次抽樣上的研究,你取更小的數(shù)據(jù)集嘗試對它們作影響,然后把它們重新定位到大數(shù)據(jù)集里。
這是一個(gè)計(jì)算機(jī)里很自然的概念,叫做divide和conquer,能夠引導(dǎo)出真正的困難的統(tǒng)計(jì)學(xué)。比如置信區(qū)間,如果我通過某個(gè)較大的因子減少數(shù)據(jù)量,置信區(qū)間會(huì)變得更大。如果我用小量的數(shù)據(jù),我會(huì)得到錯(cuò)誤的答案,我需要在我把規(guī)模調(diào)回的時(shí)候通過某種方式糾正錯(cuò)誤,搞清楚這個(gè)怎么做是不容易的。
以上是這次講座的前三分之二的內(nèi)容,這些是關(guān)于理論的。現(xiàn)在我們來說一說系統(tǒng),這個(gè)會(huì)相對短一些。早些時(shí)候我是一個(gè)實(shí)驗(yàn)室的聯(lián)合***研究員,從事數(shù)據(jù)分析開發(fā)系統(tǒng)。嘗試把統(tǒng)計(jì)學(xué)和機(jī)器學(xué)習(xí)的想法結(jié)合在一起。我們有一定成果,但是我們還是處于中級(jí)階段,這個(gè)叫AMPLab的實(shí)驗(yàn)項(xiàng)目大概一個(gè)月前結(jié)束了,我們正在籌備稱為RISE Lab的新實(shí)驗(yàn)室,Ion Stoica是新實(shí)驗(yàn)室的負(fù)責(zé)人,我也是***研究員之一。
我會(huì)簡要介紹一下新的實(shí)驗(yàn)室。首先,這個(gè)實(shí)驗(yàn)室主要是企業(yè)贊助的。我們大學(xué)給予我們非常少,基本上沒有任何支持。州政府也沒有提供任何支持,主要原因是加州的財(cái)政危機(jī)。因此我們開始接觸企業(yè),尋求支持,我們的募款非常成功,這些企業(yè)給予了我們極大的支持來運(yùn)營這個(gè)實(shí)驗(yàn)室,這是我們能夠運(yùn)營這個(gè)項(xiàng)目長達(dá)5年的原因。我記得贊助企業(yè)中有幾家中國公司,我記得華為在某個(gè)時(shí)候參與了進(jìn)來,在這張片子上的企業(yè)是我們做這張片子時(shí)候已經(jīng)參與進(jìn)來的。初始想法是結(jié)合我所擅長的算法——機(jī)器學(xué)習(xí) ,以及我同事所擅長的機(jī)器和云計(jì)算及其他領(lǐng)域,一起思考人類數(shù)據(jù)和眾包。這是我們的基本思路。
我們是分布式計(jì)算軟件增長的貢獻(xiàn)力量之一,現(xiàn)在這方向的生態(tài)系統(tǒng)已經(jīng)得到極大的拓展,我們實(shí)驗(yàn)室開發(fā)的Spark已是這個(gè)生態(tài)系統(tǒng)中的重要部分。Spark誕生的真實(shí)原因是我組的機(jī)器學(xué)習(xí)研究員對Hadoop非常不滿意,他們抱怨很多。我們一開始讓他們使用Hadoop來進(jìn)行更大規(guī)模的測試,研究員使用后覺得Hadoop對機(jī)器學(xué)習(xí)非常不適用,因?yàn)榇蟛糠謾C(jī)器學(xué)習(xí)(算法)需要迭代,輸入數(shù)據(jù),處理一小部分?jǐn)?shù)據(jù),對參數(shù)作出一點(diǎn)修改,重新處理數(shù)據(jù),然后再做一點(diǎn)修改,這個(gè)過程需要不斷重復(fù)。
對于Hadoop來說,數(shù)據(jù)需要經(jīng)常從磁盤輸出然后存儲(chǔ)回去,每一步都需要需要重復(fù)映射和化簡,然后回到磁盤讀取數(shù)據(jù)。這個(gè)過程太慢了,一名研究系統(tǒng)的學(xué)生Matei (譯注:Matei Zaharia)聽到我們的討論,幫助我們開發(fā)了新系統(tǒng),讓大部分中間結(jié)果緩存而不是寫入磁盤,這樣Spark就誕生了。這是AMPLab棧的Spark生態(tài)系統(tǒng)之一(譯注: 伯克利數(shù)據(jù)分析棧)。在最下面是儲(chǔ)存層和資源虛擬化層,不過我們主要研究往上的層,Spark Streaming支持流式數(shù)據(jù)處理,支持誤差計(jì)算和抽樣運(yùn)作,也支持各種語言和圖像處理。
Splash是一種并行計(jì)算框架,由今天也在座的You Chan開發(fā),他也開發(fā)了其他機(jī)器學(xué)習(xí)相關(guān)的工具。我也會(huì)簡要介紹模型服務(wù)器Velox,這個(gè)生態(tài)系統(tǒng)大概一年前的狀況,過去這一年它持續(xù)演化,結(jié)果非常成功。部分原因是因?yàn)檫@是學(xué)術(shù)界開發(fā)的,非常多企業(yè)發(fā)布過數(shù)據(jù)分析軟件棧,IBM Google 微軟都發(fā)布過,基本上它們都沒能引起大家的使用興趣,沒有人使用它們的工具,這軟件(Spark)的使用比那些企業(yè)的工具廣泛得多 ,而Spark的開發(fā)只需要幾名學(xué)者,因?yàn)槠渌?獨(dú)立)研究員信任學(xué)術(shù)界。
學(xué)術(shù)界不會(huì)突然讓他們支付軟件,不會(huì)隨意改動(dòng)軟件,不會(huì)為軟件建立商業(yè)模式而研究人員成為中間一份子,所以,學(xué)術(shù)人員是絕對有能力與大企業(yè)競爭的。你可以接觸到各種資源,沒有人真正信任大企業(yè),不過他們會(huì)信任你!
接下來讓我簡單解釋這個(gè)迭代問題。我將在幾分鐘內(nèi)完成。我剛才所介紹的都在這個(gè)圖上了。這個(gè)是經(jīng)典的映射/簡化原理,希望你們都已經(jīng)知道。MapReduce會(huì)輸入數(shù)據(jù),通過并行地執(zhí)行一個(gè)映射步驟,多線程多服務(wù)器地進(jìn)行計(jì)算,然后執(zhí)行一個(gè)簡化步驟,然后不斷重復(fù)。這個(gè)做法成本很高,因此Spark的原理是把每個(gè)階段的輸出存儲(chǔ)起來,形成緩存,這樣就不需要總是存到磁盤。
這想法聽起來容易,不過要做成一個(gè)可以規(guī)模化拓展的系統(tǒng)需要很多人大量的工作,所以Spark后有什么大動(dòng)作?
過去幾個(gè)月我們都在進(jìn)行一個(gè)新項(xiàng)目,這項(xiàng)目并不是通過研究系統(tǒng)的學(xué)生完成的。我的兩名學(xué)生主要負(fù)責(zé)這項(xiàng)目,之后他們也能研究系統(tǒng)了,他們是Philipp Moritz 和 Robert Nishihara,他們也和我同事Ion Stoica合作。Ion是系統(tǒng)領(lǐng)域的專家,我們把這系統(tǒng)命名為Ray,一月份將會(huì)公布beta版本,希望大家可以開始使用。簡單說明一下為什么我們想要做這項(xiàng)目——我們對這項(xiàng)目感興趣主要是因?yàn)槲覀兪菣C(jī)器學(xué)習(xí)的研究員,機(jī)器學(xué)習(xí)中許多問題遠(yuǎn)不止于數(shù)據(jù),其中非常多問題與研究、優(yōu)化和線性代數(shù)相關(guān),Spark在這些方面非常低效,尤其是在和線性代數(shù)方面,MPS比其他系統(tǒng)運(yùn)行快很多,不過沒有人喜歡使用,在上面非常難編程,它們也不適用于現(xiàn)在通用的并行硬件。這些是我們希望解決的問題,我們希望能夠在單機(jī)和集群上運(yùn)行同樣的代碼 ,這是考慮因素之一。
同樣,我們也不想在分布式上修改代碼,我們希望系統(tǒng)可以支持大量小任務(wù) ,這意味著不同任務(wù)間更多的數(shù)據(jù)共享。因此,我們不再使用左邊的這個(gè)經(jīng)典映射/簡化模型,這個(gè)更像是數(shù)據(jù)流模型,當(dāng)他們接收到所有需要的信息后 ,任務(wù)即可執(zhí)行。這模式中不存在同步屏障,這非常重要,要實(shí)現(xiàn)這想法需要在任務(wù)排程上做很多工作,我們在排程上下了很大功夫,這做法明顯有很多優(yōu)點(diǎn),如果你嘗試把神經(jīng)網(wǎng)絡(luò)放到Spark上,同步屏障問題會(huì)非常讓人頭疼,你只能執(zhí)行一部分任務(wù) ,然后等所有其他任務(wù)執(zhí)行完畢才可以到下一層。在這個(gè)系統(tǒng)上,實(shí)際上就是數(shù)據(jù)流架構(gòu)在藍(lán)色的節(jié)點(diǎn)完成后,紅色的節(jié)點(diǎn)即可執(zhí)行,在整個(gè)網(wǎng)絡(luò)中逐步執(zhí)行任務(wù),這例子是在Python上完成的。目標(biāo)是對Python代碼進(jìn)行非常少的改動(dòng)就可以轉(zhuǎn)換為分布式。在這代碼上,每隔一定step size執(zhí)行運(yùn)算,返回結(jié)果以不同的step size并行運(yùn)算。這基本上就是機(jī)器學(xué)習(xí)的經(jīng)典做法。
看這個(gè)新的命令array.remote,這指令了系統(tǒng)去利用分布式環(huán)境啟動(dòng)排程器,在后端運(yùn)行所有的機(jī)器學(xué)習(xí)。我們從系統(tǒng)架構(gòu)方面看一下,運(yùn)行中產(chǎn)生了本地對象和全局變量,對應(yīng)了本地和全局的排程器,以及所有相關(guān)因素的關(guān)系,這是整個(gè)架構(gòu)的基本原理。
基本上,這是已經(jīng)存在的機(jī)器學(xué)習(xí)分布式Python版本,這系統(tǒng)已經(jīng)開發(fā)完畢了,在很多標(biāo)準(zhǔn)上遠(yuǎn)快于Spark。這就是下一代的大數(shù)據(jù)處理工具,實(shí)驗(yàn)室的另一個(gè)項(xiàng)目與模型服務(wù)有關(guān)。在很多情況下,我們建立了很大的模型,輸入了海量數(shù)據(jù),一切都變得太大后,就難以獲得系統(tǒng)的實(shí)時(shí)回應(yīng),因此,我們需要能夠同時(shí)運(yùn)行大模型,以及快速運(yùn)行與大模型相關(guān)的小模型的系統(tǒng),我們可以在邊緣上快速對小模型迭代,然后慢慢地把信息轉(zhuǎn)移回大模型。
某程度上這類似人腦的運(yùn)作,我們每天產(chǎn)生少量記憶,形成短期記憶,然后轉(zhuǎn)移到長期記憶里,這個(gè)系統(tǒng)可以解決很多這類型的問題,我們需要以簡化的本地模型作出快速?zèng)Q策,然后逐步整合到大模型中。
我快要結(jié)束演說了,這個(gè)話題就差不多了,我們需要注意一下這個(gè)架構(gòu) ,這里面有一邊是學(xué)習(xí)板塊,建立大模型,然后是我們稱為的推理板塊,這版塊可以基于當(dāng)前較小的時(shí)間尺度調(diào)整模型。這個(gè)話題就這樣吧!
回到主題上,在過去10年,我的工作和發(fā)表成果主要和抽象的數(shù)學(xué)問題相關(guān)。如果你對理論問題感興趣,你該感到興奮!這是個(gè)充滿新理論問題的領(lǐng)域,非同步、分布式、流式數(shù)據(jù)等等,都和行為系統(tǒng)相關(guān),大量的理論性問題。你還需要控制統(tǒng)計(jì)誤差,對于理論研究員來說這是新問題,我們可以真正地建立系統(tǒng),獲取數(shù)據(jù),嘗試各種處理、實(shí)現(xiàn)模型。這是從所未有的合作方式。
再次感謝邀請我到這里來演講!
【本文是51CTO專欄機(jī)構(gòu)大數(shù)據(jù)文摘的原創(chuàng)譯文,微信公眾號(hào)“大數(shù)據(jù)文摘( id: BigDataDigest)”】





























