趙衛東,蒲 實
(復旦大學 軟件學院,上海200433)
人類社會已經邁入大數據時代,各個行業都不斷地產生大量的數據,如何在海量的數據中發現知識、獲取價值已成為學術界和工業界炙手可熱的話題,這也催生了“數據科學”新興交叉學科和一批專業的數據分析人員[1]。
數據分析是一個較為寬泛的領域,傳統的數據分析包括統計分析和數據可視化等,后來融入了數據挖掘和機器學習的技術。隨著人工智能的發展,深度學習也逐漸成為處理圖像、音頻和文字等數據分析的熱點和有效手段。大數據在多個領域應用成功后,各個行業對數據分析人才的需求日益增長。數據分析相關從業人員逐年增加,但招聘市場仍出現“人才荒”的現象[2]。國際數據公司(IDC)預測到2020年時僅美國就需要超過190 000名的數據分析人員[3];在中國,2017年中國大數據產業規模為4 700億元人民幣,但大數據人才遠不能滿足發展需要,大數據人才隊伍建設亟須加強[4]。
當前工業界有許多從事大數據和人工智能的企業,在招聘市場上數據分析領域有較多的職位,例如數據科學家、大數據分析師、算法工程師、機器學習工程師、數據挖掘工程師等。對數據分析人員職位的劃分沒有一個確定的標準,各類公司在招聘時職位需求也常有重疊交叉之處。總的來說,可以從“縱向”和“橫向”的角度看待各類職位的區別,“縱向”代表著數據分析角色的專業化,例如專注數據收集或清洗的數據工程師、專注算法建模的機器學習專家;“橫向”代表著具有多個行業知識、有統籌安排整個數據分析流程的能力、足以指導不同專家團隊協作的數據科學家[5]。 深入分析兩種角度的數據分析人員的職位需求,可以倒推出企業對數據分析人才的能力要求。數據分析理論知識是數據分析人員從事分析工作的基礎,但這不足以在競爭中脫穎而出。企業對數據分析的技能有更高的要求。
數據分析的技能包括業務理解能力、數據探索能力、數據建模能力以及項目管理能力等。以業務理解應用能力為例,這是數據分析中基礎且至關重要的環節,是數據分析人員的核心能力之一[6],不僅要求數據分析人員掌握扎實的數據分析方法理論,還要有某個特定領域的知識,能夠理解特定領域的業務問題并將其轉化為數據分析的技能。
數據分析技能難以在短期內培養,需要參與大量的實踐才能逐步提高,這也是導致數據分析人才培養跟不上市場需求的一個重要原因[7]。數據分析技能的培養已成為數據分析人才培養的痛點,值得高校數據分析類課程任課教師的關注和探討。
面對當前各行業激增的數據分析人才需求,高校作為數據分析人才培養的基地,擔負著向社會源源不斷地輸送優秀人才的重任。教育部在2017年發布了“新工科建設復旦共識”,不少高校在近幾年也逐漸進行教學改革,建立了一批與大數據、人工智能等有關的專業和學院,還有一些高校聯合企業成立了實驗室,這些舉措都與數據分析息息相關。在線教學平臺上的數據分析類課程也一直炙手可熱。但是縱觀大多數高校的數據分析人才培養計劃以及相應的各類數據分析課程,發現一個普遍的問題是偏重數據分析知識的培養,而缺乏數據分析技能的培養。
現在不同層次學校的數據分析課程主要處于知識傳授的階段[8]。相當一部分課程以理論教學為主體,教師多局限于傳授數據分析相關的理論知識。在課堂上教師容易對數據分析的算法和簡單的二手案例進行講解,對涉及的數理基礎進行歸納,但是學生的工程實踐機會較少,教學難以延展到數據分析的技能培養,有些學校單純依賴企業承擔實驗和實訓教學也不是長久之計。
部分高校的教師對數據分析課程進行改革,引入課程Project、課程實驗等來平衡理論教學與實踐。但是這種項目教學法一般是抽象的數據分析問題,例如對某家商務酒店的用戶評價進行情感分析、對某種商品的銷售數據進行分析等。這類課程項目有處理好的數據、明確的需求和考核目標,學生需要考慮的因素較少,通常集中在課堂所學知識的簡單應用上。但這遠遠不夠,課程項目與企業項目有非常大的差別。企業項目沒有明確地分析問題,需要分析人員從復雜的業務背景和問題中予以提取。企業項目的數據非常雜亂,需要大量的數據預處理工作。企業項目有近乎嚴苛的驗收標準,伴隨著緊張的項目排期和時間壓力。在企業項目中,很多問題以及解決思路在教科書和課堂上未曾提及,需要在項目實踐中通過不斷地試錯和創新去解決。因此,使用傳統的項目教學法培養的學生在面對一個實際的企業項目時,可能非常茫然、不知所措。
當前數據分析領域不再是學術界一枝獨秀,工業界的貢獻與日俱增。近年來優秀的數據分析工具和算法也多源于企業,例如IBM的Watson、Google的 Tensor Flow、Microsoft的 CNTK等。因此高校的課程體系需要涵蓋數據分析領域龐大且日益更新的內容體系,建立從理論基礎到應用實踐的多層次教學。當前部分高校的課程內容卻還停留在數年甚至十年前,培養的學生跟不上市場的技能需求。有限的課程時間也阻礙了從理論到實踐的教學過程。
綜上所述,學生的工程實踐能力得不到充分的鍛煉,學生數據分析的技能水平與企業的需求有較大的脫節,導致了數據分析技能培養困境的出現。
為了探討數據分析技能更有效的培養方式,我們對一些成才的學生和工業界的成功人士做了跟蹤調查,并結合在復旦大學軟件學院實施的“基于項目沉浸式的數據分析類課程教學”的實踐[9],發現有效培養數據分析技能在于“行動中學習”。
在數據分析領域有著名的1萬小時定律,換算后是5年左右的時間,意味著一個人能游刃有余地解決實際的數據分析業務問題需要5年左右的學習和實踐。其中,不必刻意學完所有的知識點再去實踐,而是在實踐中學習,只有這樣才能深刻體會理論知識的內涵,并在實踐中與技能共同學習。如果數據分析的理論知識不在實踐中使用,很難真正地理解和掌握。這也符合當前教育界著名的“行動學習”理論。“行動學習”是在20世紀中期由英國Reg Revan教授提出,他認為行動學習為L=P+Q,其中P代表結構化的知識,Q代表質疑性洞察。行動學習是一個“知行合一”的循環學習過程。首先,建立基本的結構化知識體系,這是P階段的任務;然后在實踐中將知識加以應用,發現問題,并在歸納總結中加深對知識的理解,獲得洞察,這是Q階段的工作。P階段和Q階段交錯循環,構成了從行動學習認知世界和改造世界的基本規律。
將行動學習理論應用到數據分析技能的培養,由兩個培養階段組成。第一階段是對基本理論、方法和工具的學習,對應行動學習的P環節;第二階段是在仿真項目、比賽項目以至正式項目中的實踐,對應行動學習的Q環節。在第二階段,學生可以將第一階段學習到的知識加以應用,理論就不再局限于書本,可以將知識轉化為洞察;同時可以發現理論學習的不足,從而反哺到第一階段。學習在兩個階段不斷交替進行,第一階段學習為第二階段實踐提供基礎,實踐又反饋到理論學習中,由此形成良性的循環,在不斷的實踐和總結反思中獲得數據分析的技能。
上述兩個階段的學生可細分為下述4個具體可操作的步驟。
(1)掌握較堅實的數據分析理論知識。這是數據分析技能培養周期的第一個P階段。行動學習首先要掌握一定的理論知識,這是后續實踐與反思的基礎。強調數據分析技能與實踐,并不是意味著理論知識不重要。相反,理論知識是數據分析技能的奠基石。沒有數學基礎,理解算法一定有困難,更別提熟練運用算法。對算法理解不深,就不能得心應手地選擇算法,參數調優也可能收效甚微。行動學習的主體是學生,但是教師需要為學生構建起步階段的環境,包括需要針對數據分析理論體系合理設計教學方案,重在傳授學習的方法,為學生建立數據分析的認知體系,使得學生掌握數據分析整個流程以及每一步的方法技巧。同時,在數據分析理論的學習中,初期不用拘泥在代碼實現上,教師應指導學生將重點聚焦于分析問題的思路,可以直接調用一些易用的開源框架的API嘗試算法的應用,強化對數據的理解以及數據分析的思維方法。因此,在學習的初期,提倡學生使用一些可視化的、組件式的數據分析工具進行學習,例如IBM SPSS、騰訊TI-One、華為FusionInsight等工具,所見即所得的學習方式也能提高學生學習的興趣。
(2)學習優秀數據分析師的思路。在該階段中行動學習進入了Q環節,學生需要在實踐中將P環節的知識加以應用,并開始行動學習的循環。數據分析包括業務理解、數據采集、數據預處理、建模分析、結果評估和建議,這是一個完整的流程。流程的每個環節都對應了大量的理論知識,如何將理論知識融入到數據分析的整體思路中,如何在分析的每個階段能有正確的思路是值得考慮的問題。初學者比較有效的方法是“模仿”。本階段教師可以整理已參與完成的數據分析項目,包括但不限于比賽項目、實際企業項目等。將這些項目整理成案例和實驗文檔,將整個項目的實現完整地展示出來,其中需要突出項目中遇到的疑難點。然后將數據和文檔交給學生,讓學生來重演整個項目。對于比賽項目的優勝者,還有優秀的分析思路,涵蓋了各式各樣的數據分析方法。學生在復現這些項目時可以將理論加以映射,同時可以看看其他人是如何思考的,在數據分析的每個環節選擇了什么方法,思考能不能做進一步的優化。學生在第一次進行到Q環節開始“模仿”時,P環節的知識就能在實踐中融入到學生的分析中,逐漸掌握數據分析的技能,這就是從知識到洞察的學習過程。同時學生可能會發現理論學習的不足,這就為行動學習的下一個循環提供了條件,下一循環中P環節的知識就來源于上一循環中Q環節的問題。
(3)參與新項目。這是行動學習循環的一個提升。在初期的簡單復現時,學生技能水平還比較弱,但是在后期不斷重復后技能會不知不覺提高,對實際業務問題的理解也會有一個更高的層次。這時候就可以面對新的問題,這個階段無論是P環節的知識儲備,還是Q環節的實踐要求,與第二階段的“模仿”相比都可能有了質的提升。新問題沒有他人的思路參考,學生需要去學習新的知識。因此這個階段更考驗學生的自學能力。在該階段的項目實戰中,學生需要將新知識、技能與已有的知識體系融會貫通,并嘗試性摸索數據分析的方法、思路。這個階段學生行動學習的主體意識應當更強,教師不再需要編寫完整的項目案例或文檔,將P環節的學習留與學生自主完成,著重點轉移到行動學習的Q環節中。教師可以指導學生參加一些大賽,例如阿里天池、KDD-Cup、Kaggle等。新項目的難度參差不齊,教師需要根據學生當前行動學習的所處階段和學生能力情況推薦合適的項目。在學生項目實踐中,教師重在對學生方法和思路給予針對性建議或指導,并組織鼓勵學生不斷反思總結。新項目能顯著提高學生分析問題和應用知識的能力,實戰中學生數據分析的技能也會積累到理想水平。
(4)參與企業實際業務項目。這個階段是對行動學習最終成果的檢驗。在一定的學習積累后,需要參與企業實際項目。與企業項目相比,企業實際業務問題難度更大。用戶在企業項目開展初期,可能只提出簡單的業務問題或目標,需要將其抽象出合適的數據分析問題,這需要熟稔業務領域。企業的數據可能分散在各個數據源中,不像比賽會提供一個完整的數據集,因此提取哪些數據、如何提取數據都是必須考慮的問題。企業問題會有嚴格的業務審核,數據分析的結果必須要達到一定的性能要求。與比賽相比,這對數據分析的質量要求會更高。企業項目一般還有時間的限制,相應給數據分析人員帶來更多的壓力。學生在該階段面臨的困難和挑戰更多,需要有項目經驗的教師給予積極的指導。針對學生的問題,教師還需要積極與企業的專家合作,利用企業專家豐富的經驗為學生提供切實可行的建議。能夠解決企業實際業務問題是數據分析技能的高級培養目標。學生需要經過行動學習P環節和Q環節的反復實踐,在上述幾個具體步驟中一步一步穩扎穩打地獲得數據分析的技能。
很多高校教師沒有在工業界工作的經歷,也沒有充分認識到工業界和學術界的差異,因此一些教師會找不到企業的項目,沒有和企業合作的機會;一些教師可能輕視企業項目的難度,投入精力較少使得項目停滯。因此教師需要加強和企業的對接能力。
當前企業的需求非常多,教師可以通過講座、技術論壇、數據分析競賽等方式得到與企業交流的機會,教師需主動走出去。值得注意的是,企業問題都有嚴格的檢驗標準,所以需要老師投入更多的時間。在教學中引入企業的問題,對學生的技能提高有一定的效果,花費時間也是值得的。
由于學生的學習水平不同,且前期缺乏項目經驗,不管參加大型比賽還是企業項目,都有一定的難度。老師可以把以前的項目資料收集起來供學生研究,或者與有經驗的企業專家一起指導學生攻克關鍵問題,并潛移默化地帶領學生進步。
數據分析技能的培養強調行動中學習,學習的主體是學生,教師需要在掌握數據分析技能的基礎上,身體力行地參與到學生學習的每個環節中,教師應更多地激勵、驅動學生的自主學習。教師和學生都需要認識到數據分析技能培養是一個循序漸進的過程,不是一朝一夕可以學習完成的。教師需要引領學生認識數據分析的技能體系,通過積極參與項目實踐,從中攻克數據分析的難題。
當前工業界對數據分析人才需求旺盛,但是高校人才培養卻跟不上市場需求。高校的數據分析類課程更側重理論知識的傳授,學生在實際項目中的實踐技能還需要大幅提高。數據分析人才技能培養周期長、對技能要求高,需要從模仿項目、比賽項目到企業項目的長時間積累。數據分析技能培養對高校教師和學生而言都是挑戰,教師首先需要積極參與實踐,積累必要的數據分析技能,并在與企業的合作中,培養出真正能解決實際問題、為社會所用的數據分析人才。