兩年北京清華研究生涯總結

視野累積|論文研究|近一年近況

Youngmi huang
16 min readAug 15, 2020

直線距離超過 1700Km、直飛班機大約 3 小時、2 年前我從台灣飛到北京清華大學就讀研究所,轉眼間已經結束了。實際待在北京僅 1.5 年的研究生生涯,現在在上海。

2020 上半年都待在台灣寫論文,由於 COVID — 19,今年的畢業生從畢業口試、畢業典禮、離校手續等,都只能用『匆匆』來形容,以致於總結已經拖到邁入重新成為社會新鮮人的現在才開始動筆。本篇會總結兩年當中的研究學習、其中做過突破自己的里程碑,以及從找工作 → 論文口試 → 畢業心態上的轉變。

論文方向

文獻回顧+論文搜集 (2019/04)

透過 Bayesian Latent Factor Model 去挖掘潛在因子(觀測變量為總經因子 or 不確定性的代理指標等)對股票市場的影響。主要從這兩篇論文「Bayesian Leading Indicators: Measuring and Predicting Economic Conditions in Iowa」、「International Business Cycles: World, Region, and Country-Specific Factors」進行拓展,這個題目雖然不是從改善模型網絡、或是機器學習大數據規模的預測問題,它探討的是參數估計的合理性、進而透過參數估計去推論實證研究的經濟問題,內容涉及較多的統計推論、MCMC (Markov Chain Monte Carlo)參數估計方法等大量數學公式。這也讓我反思:研究因子經濟意義的重要性。

主要研究工作 (2020/01~2020/05)

中期報告 (Oral+Word, 2020/02中) → 全文電子版提交 (2020/04初) → 論文口試 (2020/05中) → 最終版論文提交 (2020/05底)。

  1. 模型的思想理解

最大的困難來自於模型的思想理解以及程式碼的產出。Bayesian Latent Factor Model 是屬於狀態估計類方法,其核心為尋找可觀變量與狀態量之間的關係,與過去接觸 ML 的判別式模型非常不同。在現有狀態估計類測量方法文獻中,多從數據出發,根據觀測值不斷更新估計狀態值,進而得到估計參數。此方法的關鍵點在於如何建立動態系統模型,其準確性會受到:可觀變量的選擇是否具有代表性、可觀變量的時序處理過程、狀態方程當中對於觀測值擾動項以及狀態值估計偏差的假設等影響。

同時模型的參數更新,是使用 Time-varying sparsity in dynamic regression models 論文當中提及,透過貝葉斯推斷方法建立的一種動態回歸模型。方程生成估計的回歸系數是動態的,透過參數符合 NGAR 過程 (Normal-Gamma Autoregressive) 的方法,進行超參數的假設與估計,最終產生隨著時間動態變化的估計參數。其過程使用 MCMC 方法做抽樣以及迭代,由於參數的假設前提不同,其對超參數的更新使用了包含 Gibbs Sampling 與基於 Metropolis-Hasting 改良的抽樣方法。

另外,這半年也補了統計+Bayesian 領域以及衡量方式,去熟悉生成式模型的思想(特別推薦:醫學統計學筆記 | Chaochen Wang),例如:隨機過程(iid 假設, inference)、概率圖模型(HMM)、動態回歸模型(Dynamic Regression Model)、MCMC方法、Kalman Filter 等。

把複習的相關統計概念整理到 GoodNote
在眾多說明 Kalman Filter 的 source 當中,以最容易理解的來源: How a Kalman filter works, in pictures 做筆記收納,以便後續撰寫相關章節時,能夠快速查找。

2. 領域知識

主要仰賴 MacroMicro 財經M平方 + Stock.ai 交替用,交叉比對收集數據的正確性,後期使用 MacroMicro 更多,因它對圖表解釋性較好,包含對指標的解釋與使用方式,是拯救研究生的優選良藥。以下圖製造業 PMI 為例子,數據分別有統計局的官方統計以及民間統計兩種來源,並且簡單解釋了兩種數據源地代表意義,能夠有效讓研究者在該頁面可以快速獲得此兩者的差異說明,前者代表大型企業(也就是國企or半國企)、後者偏民間企業(中小)。

MacroMicro財經M平方

3. 使用工具

  • Python

一開始鎖定研究的程式碼是前人留下的一個 github repo,直到研究中後期,實驗已經做了 75% 以上後,才相見恨晚地看到了 Python Module Stats 0.11.0 。一查之後才發現這個版本是 Stable 版本,不只新增了我需要的 State Space Model,也在AR、ARIMA 的 module 當中新增一些功能與納入新模型,詳細新增的內容可以參考這裡。以前只拿 stats module 做一些 OLS 的 y 與 x 變量之間係數顯著與否的 summary report ,印象還停留在更早的版本 0.10.2。

新舊版本對照:上圖是 0.10.2 及更早版本的歡迎頁面、下圖為0.11.1 升版之後新增的 State Space Model
  • EndNote

功能超超超強大,下載引文格式為 enl (endnote 格式) 或是 txt 先引入到 EndNote Library,最後從 Word 插入引用文獻後,在內文當中的文獻順序能夠『自動』更新 (拯救研究生的神器),尤其是在論文撰寫中後期,擴展、修改文獻內容的段落順序非常頻繁之時,整篇論文的引用順序可以透過 EndNote 自動更新(也就是內文當中所插入引用文獻右上角的數字順序),不需手動調整,研究生可以少做一件苦工。(像我的苦工就是調一堆表格……)

  • GoodNote

主要是加強記憶,其角色功能強大之處是在不同的時間節點(中期報告、最終答辯的口試準備之時),將發生的經濟大事件序時化、所分析的結論表格化,順便梳理報告的脈絡以及複習前面做過的一些模型與理論功課。

五個多月以來,每一天醒著的時候都是在跑實驗、讀文獻、以及改論文內容的無限循環當中,尤其是實驗以及公式推導的程式碼部分,來來回回,推翻自己的頻率幾乎是周頻(2月至3月中),每天都在質疑自己哪裡是不是邏輯有問題、自己的程式碼當中的公式是不是寫錯了,而且 MCMC 算法的代價又比較高,而且程式碼也有部分的 bug 須解決,蒐集了上百個總經指標,最後用到的僅 30 個。甚至到後期在口試論文前,我才發現少跑一組 data(非常緊急)。

近一年近況|研究方向的轉換

簡單時間軸

在暫時停止更新 medium 的這段期間,主要在為下一階段的人生做準備(找工作、修課、論文研究),研究方向從最初的 NLP 探索 → ML應用在量化投資領域 → 圖算法與反欺詐研究。

2019/07–09 暑期實習+秋招 PhaseI

2019/09 澳洲比賽+回台灣

2019/10 實習Overtime + 秋招PhaseII + 2019 Pycon Beijing

2019/11–12 實習Continue + 期末考(必修)+學術論文

2020/01–05 論文code+論文主體+中期報告+線上口試+ Final 版本提交

2020/06 隔離+英文+劍指+找房搬家

其中圖算法這塊研究在去年10月份,小小的在 Pycon Beijing 上登場,雖然只有 10 Min 的 Talk,仍然是我突破自己心魔的一段很特別的體驗(閃電演講 Session,10MIN左右),畢竟底下都是有經驗的宅宅、講師都是BAT大佬… 感謝推坑我報名演講的朋友。

2019 Pycon China 的主會場在上海,其他城市是分會場,不同場次的主題都可以在活動網站找到,主辦方也很佛地將演講錄影上傳,有興趣都可以在網路上找到想聽的場次。

以下是我初次登場的影片,主題是 — 圖算法你好:反欺詐應用介紹與實作,歡迎輕鬆觀賞 XD。

圖算法你好:反欺詐應用介紹與實作(Only 10 Min)

後記

活動前的那一整週,實習的項目 Loading 讓我每天都超時加班(而且還重感冒黃痰到沒聲音的程度),原本覺得很羞恥不敢分享,結果找工作+寫論文就一直擺到現在,謝謝主辦單位的錄製,當天大概是我有史以來,在短時間內跟最多人交流的 moment(一次性湧入50+交友邀請)。人總是需要有個起點,謝謝這個起點讓我可以練習如何總結、思考觀眾定位 (說一個故事) 、以及分享探索性項目的成果。在後續交流中,有遇到很認真的參會者前輩,對於 neo4j 的應用十分好奇,不過可惜我當時是學生只能用 community 版本,無法分享更多企業版本的使用經驗,此外,很認真的參會者前輩還 Feedback 了一個 Graph 的 Talk(Practical applications for graph techniques in supply chain analysis and finance),以及語音欺詐的論文、業界應用經驗等。

因此,深刻覺得能從交流當中學習,是一件很棒的事情,非常希望可以多跟開發者交流以及 connect,如果對於我所研究的主題正好與你相關,或有些想法可以交流的話,可以透過 FB 找到我一起聊聊。

北京研究生的日常

步調很快、強迫高成長的環境氛圍

是我對北京這個城市的第一印象。這裡的學生很認真,假日的圖書館無論考試週與否都很多人,基本上都是一台電腦+一本書的基本規格,再加上一本筆記本 or 白紙堆,這裡的人們很努力,是真的很努力。圖書館是我最喜歡的書店,我最喜歡走樓梯到北館三樓,大大的樓梯有著陽光透過大片玻璃窗照射的明亮,一有喜歡的書會先查圖書館藏書。新的信息技術書位於老館一樓,但這是我接近碩一尾聲才發現的秘密基地,可以從北館三樓透過連接道走去老館直下一樓目的地,總之我真的很喜歡在圖書館找書的過程、包含去京東面試時,朋友帶我參觀他們內部圖書館時的喜悅。另外,學校很喜歡大數據,根據統計,我這兩年總共去過 203 次圖書館,這是今年畢業,學校發給每個畢業生的影片,就是一些個人生活大數據…..嗯非常特別的畢業禮物(樸實無華)。

分享我的清華生活大數據
2020上半年,健康日報是每天都要回報體溫以及所在地

不只選項目必修、跨院系修課

不過這僅止於因為我並不是直接念清華的計算機碩士,因此需要再額外選修,特別是計算機系、交叉信息學院所開設的課程。

在碩一新生時,開始了大數據證書項目的修課旅程,主要還是想多接觸一些計算機系、叉院大佬所開設的課程,後來有修完的是:大數據分析B、大數據系統基礎A、量化金融風控與信用分析等。唯一很可惜的是,後來因為實習時間衝突,無法朝聖劉知遠老師的課(知乎 NLP 網紅等級的老師),甚至我碩一下應該是有選到而忍痛把課退了QQ。

技術面試:認清自己實力的最佳試錯途徑

這裡僅止於實習的面試經驗為主。2018 年我急於求得一份技術實習,主要鎖定數據挖掘崗位,進入互聯網大廠看看。在這裡,實習面試常常會比擬正職要求(實習難度上≤校招),因此要取得實習的 Ticket 等於拿到轉正資格,比起一般校招名額會相對優勢(但也是有一定的門檻),因為企業會保留 HC 給實習獲得認可的同學。由於 2018 年以前屬於半路出家+大學非 CS 本科,還有非常想要避開被考算法的鴕鳥心態,導致當時對算法、數據結構這些一概不熟悉,但這些在大廠眼中都是『基本要求』,常常面試官很尷尬、而我也很尷尬。所以我後來開始自我惡補:從 Coursera 上算法課(Princeton 那一堂蠻推薦)、圖解算法書開始入門(有買一本很厚的算法4 英文版本至今就是字典躺在床頭櫃XD)、線上刷題(HackerRankLeetCode)、到今年練習把刷題時的思路紀錄在自己的 CSDN 等。

我的能力還跟不上我的想要

迷惘、懷疑、掙扎、不甘心的時刻,在第一年的時候常常找上門。在第二年時,當我體認到我的能力還跟不上我的想要之時,決定好好把握手上握有的實習,好好打基礎,從那份算法實習當中與同事們協作、擴展、與老闆溝通、扛起項目之責的種種,細節包含:認知到產品老闆與算法老闆的需求重要程度與排序、如何達到算法老闆的期待同時對產品老闆有所交代、如何在產品需要交付時程上做到算法階段性成果的妥協等等。幸好朋友們都在,還會拉我一把、暖我一波,要試著接受不完美的結果,然後做自己覺得會快樂的事情很重要。也很神奇地,在一個契機當中,很幸運地塵埃落定找到了現在的工作,我非常感謝。

關於人脈的觀察

長輩與前輩

來到這個世界看到與獲得一些長輩的「幫助」,長輩們會習慣使用他們的「人脈網絡」資源去解決(或是使重視)當前所遇到的問題。這似乎違反了先從解決問題本質的作法開始,反而先有了人為的介入。如果是問題,會使之「優先重視」你的問題;如果是機會,會有透過公開資訊獲得不到、甚至是「額外破例」為妳加開的。這個世界好像從來都不公平,不一定能僅憑能力而被青睞,反之,人的因素可能遠大於能力。

例如:幾通電話喬ㄧ喬就能敲定的事情到底是好還是不好呢

是因為妳能力被認可所以無條件動用自己的關係幫妳敲定機會;還是一點也不在意妳有沒有能力因為沒有什麼時間深入認識妳? 我還是覺得,以實力爭取到的機會比較踏實;雖然人脈資源而獲得的幫助也是非常感激。飲水之餘還是要保有自己的原則,不知道多年之後的妳會怎麼想?

關係處理:總是以禮以待

觀察大部分是傳統上對下的關係,比較少可以像朋友互動那種。在亞洲社會來說,位高權重、使之令人尊敬等觀念還是相當普遍。曾經被莫名加好友、不禮貌或是不合理的要求(例如對方以理所當然的語氣開頭),以及莫名被打擾的時刻等,也曾會以漢摩拉比精神予以回報,但隨著迭代的試驗次數提升之後,『總是有禮貌』的應對才是最佳解!在不了解雙方背景、知識領域、思維模式的情況下,妳敬人三分、人家通常態度不會差到哪裡去(但不一定適用外賣小哥 or 闖紅燈的人士);但人家怎麼做,都不會再是妳的課題了,妳無須愧疚於別人的不客氣回應,別人的不禮貌情緒妳自然也不需要承擔。

人情總有一天要還的

有很多弱連結(例如:行業導師、數據院/CS老師、實習主管等),在第一年還不知道怎麼運用得宜。漸漸地,我交了一些校內朋友,還有從實習同事那邊學習和不同主體 (entity) 的互動,摸清楚不同 entity 的習性,在有需要求助於人脈時,分別從三點切入:

  1. Problem Statement 直接清楚地傳達問題
  2. Preparation 我做的功課
  3. Action 我的請求以及我需要的幫助

若 entity 無法幫助也沒有關係(並且 entity 本身就不是有義務幫忙),因此每一份幫助我都非常感激,我想這是一直需要自我學習與更新參數的過程,可能每個人的最優解法都不一樣,每一個人都是一個獨立的 algorithm。成為一個時時感謝的人好像滿足的敏感度會大為提升,希望接下來可以取之於前人、回饋於後人。

我真的畢業了嗎

沒有畢業的儀式感,但有滿滿地說不完的感謝

2020 年初,因為最後一科期末考結束的早,1月初就回到台灣準備開啟研究生模式(放寒假?),沒想到當時離開學校宿舍後,就這樣暫別了,後來一切都是遠距完成:遠距答辯、遠距畢業、遠距搬家,在搬家的過程中種種過關打怪等(被趕離宿舍、溝通協調、手續、委託書..etc)。

沒有畢業典禮的儀式感,沒有好好的和同學、學校、城市好好說再見。還來不及說再見,就已經進入到工作模式,都讓畢業這件事,感覺還沒有發生,於是,畢業文遲到了好久。但我還是要感謝在研究期間,我的指導教授與學長姐、陪我聊天打桌遊的朋友們。未來的某個時刻可能還是會懷念 IG 發廢文的舒壓、外送點飲料的療癒(我愛珍煮丹+可不可,後來喝都沒有當初的幸福感)、在咖啡廳(星巴克+露易莎)度過的每一天研究時光等,也致敬每個曾經走過這樣必經過程的研究生。

後續方向

在畢業後到工作前這段時間,梳理了 2019 年未完待辦,再加上今年想做的,大概有 100 件事情想做都做不完。有很多想嘗試的研究,卻又跟以前發文的內容無延續性的主題,例如:最剛開始因為自然語言處理入門 (NLP 相關) 研究了一年左右、後來開始任性地整理了論文筆記也會放上來、接著因為學校研究圖算法與反欺詐內容也繼續無主題延續性地記錄著,這個地方,應該就會繼續這樣任性下去。但我會努力繼續紀錄,結合我現在的研究,達成我想要的產出。

以下是 2020 下半年預計想達成的(可能會改):

  1. State Space Model
  2. Casual Inference (結合因果革命這本書,因為拜讀了書裡的部分內容後,裡面有好多 reference 我都好想再進一步找資料,包含 Judea Pearl 的 Twitter 過去分享的貼文)
  3. Graph (可能看機緣,還有可支配時間)

希望接下來,可以腳踏實地的培養「底蘊」,不只工作更要好好學習生活,除了往自己喜歡的知識學問鑽研、和家人朋友互動(玩樂)、也要留一點時間與自己對話,最最理想的是可以固定產出與紀錄我的發現,這讓我感到開心而踏實、以及擁有自我肯定與成就感的正向能量。

是的,我正式從北京清華畢業了。同時我也要正式從研究生這個學生身份登出了,謝謝你,如此特別又獨一無二的研究生涯。

一走出北館(圖書館)的傍晚視角
秋天的銀杏美極了(進校園 — 東南門)、綜體健身房健身
騎去上課路上(對面是建築館)、到過下雪的北京(一出宿舍景)

如果這篇文章有幫助到你,可以幫我在下方綠色的拍手圖示按5下,只要登入Google或FB,不需任何花費就能【免費支持】youmgmi 繼續創作。

--

--

Youngmi huang

Participate in data science field, fascinated by something new. (Current: fraud risk modeling with ML/DL, Past: NLP)