![]() |
VOOZH | about |
星雲文庫
﹀
﹀
Claudia Perlich 是紐約大學的客座教授,也是 Dstillery 公司的首席科學家,主要的工作是為潛在的品牌客戶設計、開發、分析和優化驅動數字廣告的機器學習。Claudia Perlich 在業界和學術界都有非常耀眼的成績。最近獲得了 Advertising Research Foundation(ARF)的 Grand Innovation Award,並被選為《紐約商業周刊》年度 40 位 40 歲以下人物名單。她還曾擔任過 SIGKDD 2014 大會主席。
1.數據科學家當下面臨的最低效的問題是什麼?
首先,我想聲明的是我認為這並不是問題:事實上數據科學家 80% 的時間都花在準備數據上。這才是他們的工作!如果你對準備數據不感興趣,那就不是一個好的數據科學家。任何分析的有效性幾乎完全仰仗數據的準備程度,而與你最後選擇的算法幾乎無關。抱怨數據準備工作就像一個農民抱怨做任何與收成相關的事情,然後把灌溉、施肥、撒種的事交給別人。
也可以說,數據準備工作難在原始數據收集上。設計一個收集有用且易於被數據科學消化的數據系統需要高超的技藝。對數據科學家來說,讓系統內數據流的過程完全透明化也是需要高技巧的。這個過程需要做抽樣、標註數據、匹配等工作。還不包括替換缺失值和過度規劃化的工作。為數據科學創造一個有效的數據環境,需包括數據科學而且不能完全被工程工作所占有。數據科學並不總是能規範這種系統對細節的要求來完成一個乾淨利落的切換。
但是從更大範圍來看,還有更重要的事情需要考慮。我認為到目前為止最大的問題是數據科學解決不相關的問題,浪費了大量時間和精力。原因通常是任何有這個問題的人在表達該問題時都缺乏對數據科學的理解,而且數據科學家最終解決任何他們認為可能是問題的問題,然後找到的方法不一定有幫助(廣告常常都非常複雜)。一個典型的類別就是「定義不透徹(underdefined)」的任務:「在這個數據集中找出可操作的 insights!」。不過,大部分數據科學家並不知道要做哪個操作。他們也分不出哪些 insights 是瑣碎的,哪些是有趣的?對於哪些跟風行事的人來說,也真沒有什麼好建議。
個人來講,我覺得有必要提的問題是缺乏數據理解和數據直覺(事實上缺乏這個三個因素常常會讓數據科學家很快就下出結論),而且懷疑是最影響效率的限制因素。這些因素影響效率的主要原因是找到正確的答案需要花費很長時間。
2.你最喜歡的機器學習算法是什麼?
易於上手的邏輯回歸(logistic regression,帶有很多花里胡哨東西,比如機梯度下降、feature hashing 和 penalties)。
我知道在深度學習風靡的時代,這答案有點奇怪。所以我先來講下緣由:在1995-1998 年這段時間裡 ,我用的是神經網絡,到了 1998-2002 年這段時間我用的最多的是基於樹的方法。從 2002 年開始,邏輯回歸(一般的線性模型、包括分位數回歸、泊松回歸等等)逐漸深得我心。2003 年,我發表一篇機器學習的論文,展示了在 35 個數據集(那時候算是很大了)中三種邏輯回歸分析方法與邏輯回歸的比較結果。
長話短說,如果信噪比很高,樹往往會贏。但是,如果信噪非常大,那麼帶有一個 AUC < 0.8 - logistic 的模型就是最好的選擇,它總能擊敗基於樹的方法。最終不太令人驚訝:如果信號太弱,高方差模型就完全沒用了。
所以這到底意味著什麼?在這種問題上,我傾向於處理低可預測水平的超級噪音。這個問題可以從非常確定性(西洋棋)的角度來考,也可以從非常隨機(股票市場)的角度來考慮。(在有數據的情況下)一些問題僅僅是比其他問題更好預測一些。不是一個算法問題而是關於這個世界的概念陳述問題。
從這個角度來看,我感興趣的大多數問題非常接近於股票市場。深度學習在另一個方向上效果很好——「這張圖中有貓嗎?」在一個不確定的世界中,偏置方差權衡(bias variance tradeoff)往往在有更多偏置的情況下是有利的——意味著你會想得到「簡單的」非常受限的模型。而這就是邏輯回歸的用武之地。我個人發現通過添加複雜的特徵而不是嘗試限制非常強大(高方差)的模型類別來增強一個簡單的線性模型是更容易的。事實上,每個我贏過的數據挖掘比賽(KDD CUP 07–09)我都是用了線性模型。
線性模型除了性能上的優勢,還很穩健,而且往往只需要遠遠更少的人工處理(好吧,隨機梯度下降和 penalties 會讓其變得困難一點。當你想要在你不能花費 3 個月長的時間來構建完美的模型的行業進行預測建模時,這是極其重要的。
最終,線性模型中的發生的情況更有可能得到是可以理解的。
3.完全掌握 TensorFlow 需要什麼樣的數學背景?
這完全取決於你如何定義「掌握」。你是僅僅想用它調節一輛 Formula One 汽車的引擎,還是想要摘得國際汽車大獎賽的獎盃?
但是,對於靈活使用數學與算法來解決某個問題這一方面,確實是有「掌握」一說的(如果你願意,你還可以進行算法研究)。這是 Formula One 的技術人員常做的事情。對此,我指的是專業程度極高的數學。我個人不太喜歡做這一塊,雖然我也曾學習過大量的高等數學。
然而,在應用方面 —— 當你做一個司機的時候,也有「掌握」這一概念。當你可能會使用 TensorFlow 的時候,你有好的靈感嗎?你知道如何設計最好的數據表徵才能使算法使用更加簡單嗎?如果 TensorFlow 的某個指標下表現良好,這是否代表它在其它指標下仍效果顯著?以上這些例子都是考驗你是否掌握 TensorFlow 的場景,而它們對使用者的經驗、數據、以及直覺的要求,將遠高於對單純的數學的掌握。
那麼問題來了:你是想成為 Michael Schumacher(德國著名賽車手),還是想為他工作呢?
4.機器學習如何影響數字廣告?
實際上,在數字廣告領域,機器學習無處不在 —— 曾經在 KDD(ACM SIGKDD 國際會議)有很多 ADKDD 研討會(專注於在線廣告)。當前,廣告產業的數據日益豐富(雖然我不知是好還是壞),程序化的實時廣告的興起也為機器學習在這一領域的發展提供了充分的機會。作為回顧,你可以抽出一個小時,看一下我近期在 Institute of Advanced Study(高等研究院)的一個演講:https://www.ias.edu/ideas/2015/perlich-data-video
在多數情況下,機器學習被應用於以下不同的廣告產業組成部分:
測量與分配(市場混合模型、觀測數據的因果模型、用戶傾向匹配等)
跨設備關聯(基於用戶模式、IP 重複等,預測兩個設備屬於同一個用戶的可能性)
意圖預測(某個消費者在下個月購買某個新車型的可能性)
廣告印象層面的反應預測(點擊或完成瀏覽的概率)
欺詐檢測(分辨機器與人、欺詐連結與點擊等)
用戶洞察(觀測一個在預測用戶意圖上表現良好的模型 —— 是否能夠從中提取一些行為模式,並使用到創新設計中?)
還有一些廣告領域中的機器學習應用是備受爭議的。Sweeney 教授的成果顯示,機器學習算法會反應潛在的種族歧視,我近期的一些工作也發現,一些預測模型會「倒向信號所在的地方」—— 而在弱指標下這是十分危險的。假設現在我們要預測一個廣告的點擊量,結果發現預測你非常有可能點擊手電筒應用十分簡單。這不是因為你對手電筒感興趣 —— 而是因為你在黑暗中行動笨拙。儘管這一模型在想高點擊率優化上表現優異 —— 它只會將廣告投放給那些幾乎對該產品完全不感興趣的人。
5.隨著產業內的機器學習越來越流行,數據科學將如何進化?
要回答這個問題,需要我們先思考一下數據科學與機器學習的關係。對我自己來說,數據科學本身包含了機器學習。從定義上看,機器學習指一個機器從數據中歸納知識的能力 —— 你可以把它稱作學習或者推斷。沒有數據,機器就幾乎無法學習。所以,如果有什麼區別的話,機器學習在許多產業中的應用擴張,將會成為數據科學重現光彩的催化劑。機器學習的優劣與否,取決於其使用的數據,以及消化算法的能力。我的期望是,不斷向基礎的機器學習靠攏,將成為數據科學家的基本要求。
因此,對我來說,最重要的數據科學技術之一是評估機器學習的能力。我認為,我們所從事的數據科學並不缺少酷炫的項目和迷人的算法;而我們仍舊有待了解的是事物背後的運作原理以及如何解決不標準的問題。對於機器學習的(學術)觀點,我的主要憂慮之一是,目前人們持續地關注在樣本表現中的簡單結果。基本上 99% 的研究論文都是基於精確度而被採納的。
我從過去 12 年的工作中意識到:在多數應用領域中,學術評估幾乎是沒用的。在一些隨機測試集中表現優秀的模型會變得一無是處。這個話題值得長篇討論,但簡要來說我對以下幾點存疑:
人們經常使用的指標(將分類器的精確度定義為判斷正確的百分比是罪魁禍首)
一個模型在最開始預測的往往都是錯的這一事實(多數是因為根本沒有「對」的東西的數據)
拋開使用背景評估模型 —— 你應當先基於預測採取行動,然後再評估結果是否有改進,而不是直接進行評估
樣本數過大導致的種種問題 —— 人們基於現有的數據建立模型,而不是他們應有的數據,更加危險的是,人們往往還基於無代表性的樣本評估模型。
在帶有混合生成分布的對抗情形(adversarial situation)中,模型最終只能識別出「錯誤的」正類的困境(可以參看我在上文對廣告點擊量作為指標的評價)
泄漏 —— 表明某一模型純粹是某數據集合的衍生物,且該模型的真正表現是非常糟糕的
6.準備數據科學面試時,哪些資源是最好的?
這個答案的首先最明顯的部分是明白你自己準備做什麼。一般意義上都是這樣,而不只是在數據科學領域。現實情況是今天有很多東西都被叫做數據科學,許多人也自命為數據科學家。所以首先你要知道你到底面試的是什麼,那通常並不是很明顯。你也許需要在面試之前問上幾個問題。
我已經看到數據科學的職位已經分化成了(多少有些誇張)多個類別:
他們實際上在尋找某種分析師,有某種擅長的技能實際上就足夠了(你可能甚至不想要這樣的工作)
他們在尋找數據工程師,他們基本上最感興趣的是你是否跟上了 Scala 編程的最新進展和知道你自己的版本控制方法。網上可能能找到一些標準的準備研討會,我不知道。(這也不是我想要的工作。)
他們實際上在尋找能夠基於不同的數據大小設計有效的統計分析的人,其中會涉及到一些機器學習、預測建模、聚類,而不會過於在意你是用什麼方法完成的(這就開始變得有意思了……)
他們在尋找深度學習專家……
他們需要一匹獨角獸——具備項目管理能力,能將一個業務問題翻譯成一個「可解決的」數據驅動的解決方案。
一旦你搞清楚了你要做什麼,你可能就要重新想想要不要應聘……
我通常在尋找第 3 類的申請者(有時候我也接受第 5 類)。不存在什麼捷徑「資源」能說服我你有這項工作所需要的能力。不幸的是,這確實涉及到個人的性格和經驗。在 Kaggle 競賽上花一些時間是獲取經驗的一個好方法。它們有許多數據集可以使用,你也可以從其他參與者那裡學習經驗。你所接觸的數據集越不同,就越好!
此外,我還需要預測建模的專業知識,並且期望你熟悉來自《Elements of statistical learning》一書的概念。我需要你的能力足夠為任何你所需要的事物編程出原型。你需要的技能包括數據拉取(API,SQ)、一些腳本編寫的技能(Shell/Perl/Python)、一個建模的優質環境(Python 庫/R/獨立的實現),一些如何可視化/傳達你的發現的想法。
一些發表資源能讓你保持敏銳:KDNuggets KDD 大會(申請論文的好集合)
最後是一點不太相關的提醒:儘管創業公司很有意思,但你不會想讓你的第一份數據科學工作是一家創業公司的數據科學家……
7.你是如何學習機器學習的?學習機器學習時,你最喜歡那本書?
我在學校一開始就在數學和科學學科上表現不錯,並不是因為我真正喜歡抽象的事物,而只是我喜歡理解事物和解決難題罷了。所以以數學作為職業就出局了,但對於我想要做什麼,我並沒有什麼強烈的感覺。與此同時我的爸爸則推薦計算機科學作為一個延遲決定的解決方案,然後做點什麼我可能會非常擅長的事!他在 92 年時認為計算機很快就將用到各種各樣的地方,而且我可以在後面想想我究竟想做什麼。(我會對今天的數據科學領域的申請說同樣的話。)
1995 年,我在科羅拉多大學波爾得分校做了一年交換生,沒有任何統計學背景的我迷迷糊糊地參加了人工神經網絡的課程,完全不知道我在做什麼。從此我和數據結下了不解之緣,剩下的就順理成章了。在那裡,我用德語寫了另一篇碩士論文,將汽車的物理模型和該物理模型和被觀察到汽車運動之間的殘差分析的人工神經網絡模型結合到了一起。
我感覺我仍然很多東西要學(而且也不急著找工作),於是我開始尋找 PhD 項目,通過偶然的機會和朋友的關係,我在 1998 年加入了紐約大學斯特恩商學院信息系統的項目。在我看來,商學院的機器學習成果的優勢在於專註解決實際的商業問題,而不是理論上的算法貢獻。此外,也更加關注交流和說話的能力,因為我們都是作為下一代教 MBA 學生的教授而培養的。
幸運的是,在 2003 年,學術界還沒有完全準備好將機器學習作為商學院的一項研究主題,所以我沒有追求一項學術事業,而是加入了 IBM Watson 實驗室的預測建模組。
下面是我的一些「神聖的」引路人列表,按我遇到他們的順序排列:
我也在這裡推薦幾本輕鬆的書。一個好的數據科學家應該有一項非常好的技能:和隨機性保持良好的關係。對此我推薦 Nassim Taleb 的「Fooled by Randomness」。同樣,理解我們人類在處理信息中的偏見也對講更好的故事而言是非常重要的,才能讓我們自己不被數據愚弄。這方面我推薦 Duncan Watts 的一本書「Everything is Obvious Once you know the answer」。
8.作為一個數據科學家,你使用了哪些工具?
我是一個相當老派的人,而且因為我的事業在向管理崗位發展,也就更少寫代碼了,我已經控制好自己不「更新」我的工具集了。另外,因為我們不支持 X 的防火牆後面有非常敏感的數據,所以任何類型的圖形界面都是很困難的,我的工作基本上都是通過命令行進行。
我常使用 UNIX shell 命令對數據進行操作。其中必然包含:awk, sed, grep, sort, cut, cat, head, tail, uniq……
下一層的編譯我使用的是 Perl。
拉取數據主要是在我們 Hadoop 上的 Hive 前端上通過 SQL 完成。
我也用過 R、SAS、MATLAB 等工具——目前我大部分是使用 R 處理小事情(創建漂亮的圖片等等)。
除了這些,我的態度是借用和竊取……我沒有什麼理由要自己實現任何機器學習算法。在這方面很多人都比我做得好。所以我已經積累了很多範圍廣泛的我發現的任何相關機器學習算法的獨立可執行文件(UNIX):Thorsten Joachims SVM 代碼(http://svmlight.joachims.org/ ),Tree 學習的 FEST 庫(https://github.com/n17s/fest ),John Langford 的 VowPal Wabbit(https://github.com/JohnLangford/vowpal_wabbit/wiki )等等。
有時候我會發現一些我確實需要的工具 API。比如說,我發現了用於 NLP 的 Data Ninja(https://www.dataninja.net/ )。
9.一個數據科學家需要必備一些特定領域知識嗎?
人們對這個問題爭論很長時間了。我曾在 2013 年 KDD 的一個小組會議上做了幾乎這同一主題的簡短報告《The evolution of the expert(http://www.junglelightspeed.com/the-evolution-of-the-expert/ )》。我過去嘗試過許多回答這一問題的方法:
「如果你足夠聰明,可以成為一個好的數據科學家,那麼在大部分情況下,你都可以在一到兩個月時間內學會任何你所需要的特定領域的知識。」
「Kaggle 競賽已經一遍又一遍地展示了好的機器學習算法勝過專家。」
「當聘請數據科學家時,我更感興趣的是那些在許多行業內的經驗比我豐富的人。」
或者我就讓我的個人履歷說話:我曾贏得了 5 次數據挖掘比賽,而我並不是一味乳腺癌、酵母基因組、電信客戶關係管理、Netflix 影評或醫院管理方面的專家。
所有這些可能都說明這個問題的答案是「No」。事實上,在通常的領域知識的解釋上,我也會說「No」。但也有一些非常不同的地方:
我並不需要對一般意義上的領域了解太多,但我需要儘可能理解有關這些數據的創建及其含義的「一切」。這算是領域知識嗎?不太算——如果你和一位普通的腫瘤學家交談,你會發現他或她幾乎不能解釋你剛發現的 fRMI 數據的細節。你應該與之交談的人可能應該是理解這些機器和其中的數據處理(比如校準)的技術人員。
10.廣告攔截對用戶有益嗎?
從我非常個人的觀點來看(許多比我聰明的人已經討論過其經濟影響了),短期內它對用戶有益——它們可以減少頁面加載時間,減少你的行動裝置上的數據等等。但事實上內容商會受到傷害:而他們正是用辛勞的汗水為你提供你想要的內容的人。所以從長期來看,我很擔心其影響不是人們所想要的。
如果經濟的廣告模式失敗了,因為廣告攔截消除了免費內容的收入流,內容上可能會面臨這樣的選擇(通常很糟糕):
乞求——這就是維基百科正在做的事。問題就在於通過訂閱和好心讀者的捐助所獲得的收入是否足以支撐一個健康的和獨立的新聞環境。
更多內置廣告滲透進內容之中。儘管 Steve Colbert 可能處在一個過於暗淡的位置上,但我認為這並不是我們想要的趨勢。
放棄獨立和有信息的內容的概念,從別人那裡複製信息,而不是為記者付錢。
部分的問題在於現在我們已經習慣了免費的信息甚至娛樂(以及所有用來生產、分發和託管的基礎設施)。但不能因為我們能免費得到它們,就意味我們應該這樣做。我很樂意為無廣告的高質量內容付費!
11.進入科學技術圈子對於女性來說更難嗎?
以我個人的經驗來看,我會說並不會更難——事實上,在這個男性占大多數的技術領域,作為女性還存在一些明顯的好處。之前的答案已經指出錄取更偏向於女性。事實上,我並不喜歡這樣的不平等——我可以看到它的好處,但我也厭惡它在暗示「否則女性就無法成功,因此女性並沒有男性那麼好。」下面的例外來自我 2014 年給出的關於這一主題的演講:
一年前,我被要求擔任世界上最大也是最負盛名的數據科學會議 SIGKDD 2014 (KDD) 的聯席主席。我是該委員會中的唯一女性。很顯然,選擇我的決定並不是因為我是女性。換句話說,我很高興這意味著確實有些男人確實在嚴肅對待性別平等,但另一方面,我有被騙的感覺,因為我並不確定我是否有資格得到它。
所以當涉及到因為女性是少數派所以要支持女性時,我的感覺很複雜。
我總的看法是:女性的身份給我的事業帶來的幫助超過其所帶來的傷害。我還沒遇見過什麼人會讓我覺得我的資格是毫無疑問因為我的性別。我從未標榜自己是數據科學領域的女性榜樣,也沒有哀嘆女性的稀少,因為我從來沒有擔心過我的性別會限制我的能力或成就。
事實上,女性參與到男性居多的領域中還有一個巨大的好處:人們會記得你。你已經和 90% 的典型男性區分開了。我去參加大會的時候,似乎有很多男人都認識我,甚至有時候我根本無法想起見過他們,更不要說記得名字了。事實上我們是很容易被記得的,而被記得是會很有幫助的。
那麼我們如何通過我們的能力讓人記得,而不僅僅是因為我們是女性這個事實?
但被記住是一把雙刃劍。一份不是最近的性別研究(http://consumerist.com/2011/01/25/sexy-news-anchors-distract-male-viewers/ )發現當男性受試者看新聞時,他們可以很好地回憶起長得漂亮的女主持人,但卻想不起她們說了什麼。而當涉及到有吸引力的男性主持人時,他們可能沒法回憶起他領帶的顏色,但他們卻可以回憶起在中東問題上的最新進展。這並不是因為他們真正相信女主持人讀新聞的資格不夠,只是生物學在作怪罷了——潛意識在幫倒忙。
所以女性在男性主導的行業里確實面臨著困境:我們如何通過我們的能力讓人記得,而不僅僅是因為我們是女性這個事實?我們如何確保我們被叫上舞台是因為我們的思想而不是我們的性別?
12.數據提取(data ingestion)可以自動化嗎?
在這個大數據的時代,數據提取不得不實現某種程度的自動化——否則其它事情便無從談起。
更有趣的問題是如何最好地實現它的自動化。以及數據準備(data preparation)的哪些階段可以在消化(digestion)過程中完成。我非常強烈地認為我的數據應該儘可能地「原始(raw)」。所以,你應該,比如說,不要自動化處理缺失數據的方法。我寧願知道它是缺失的,而不是被系統所取代的。同樣,我也更喜歡維護最高粒度的信息——比如說一位客戶訪問的頁面的所有 URL 地址 vs. 只保留主機名(不太理想,但還行) vs. 只保留一些用戶目錄。從個人的角度來看,有很多理由反對第一種情況——但 hashing 這樣的工具可以中和其中一些擔憂。
讓我們談談如何做:在自動化過程方面存在 3 個真正重要的部分:
如果全數據流過大就靈活地採樣:如果你每天要處理 500 億個事件——只是將它們塞進 Hadoop 系統倒還好——但後續操作卻很繁瑣。相反,除了 Hadoop 備份過程之外,有一個能將有特定價值的事件取出的過程是很好的。詳情可參閱我們寫的這篇博客文章:http://www.kdnuggets.com/2016/08/automated-data-science-digital-advertising.html
動態歷史的注釋:擁有所有的事件日誌是很不錯,但對於預測建模,我通常只需要有能獲取實體歷史的特徵就行了。每一次都加入超過十億行來創建歷史是不可能的。所以部分的提取過程其實是一個注釋過程,該過程能為每一個事件附加重要的信息。
有統計測試該評估,看輸入數據流的性質是否正在改變,當比如說一些數據源臨時變暗時發送警報。一些相關內容請查看這裡:http://www.troyraeder.com/papers/kdd12.pdf
13.如果想從數據科學家轉向數據科學團隊經理有哪些挑戰?怎麼做準備?
這十多年來,我一直在回拒讓我管理數據科學團隊的要求。而現在,我非常享受和一個團隊進行互動、開大腦風暴會議、和某些人一起探究我的想法——但我相當不喜歡告訴別人該做什麼。
我個人曾見過很多優秀的數據科學家不是很好的管理者——但這可能在任何領域都是一樣。許多時候優秀的數據科學家會感到他們事業的唯一進展是開始領導一個團隊。
我個人來看,我發現不自己做數據科學工作的前景是相當艱難的。我也有重大的信任問題——我超級懷疑我自己的結果——所以讓其他人來做我的工作是難以接受的。我的憂鬱的原因是工作成果的很多方面都依賴於數據準備過程中很多微小的細節。比如說:你刪除重複項了嗎?樣本選擇的任何細節都是至關重要的。除了非常了解你的團隊的成員的長度和短處,以及知道什麼人值得託付怎樣的任務——這裡要做一點準備。
作為經理,一項非常重要的技能是與不同的業務部門互動,以確認需要做哪些工作,哪些工作優先。那需要了解數據科學的廣闊圖景以及很好的溝通技巧。作為準備,我建議你儘可能地參與到你目前所從事的項目的界定的過程中,並開始練習如何與企業的利益相關者交流。事實上,任何涉及到向不太技術的觀眾進行公開演講的機會都對此會很有幫助。