2017 Dcard 暑期實習面試心得

熱騰騰的Dcard面試心得!2017/5/27
我應徵的是 Data Engineer Intern!

一到Dcard的辦公室,迎面而來就是Dcard的藍色大招牌 XD
裡面便是新創公司風格開放式辦公室,大桌子而無間隔,讓彼此可以快速討論。

馬上就進入會議室面試,面試官為一位Dcard Data team的正職與一位Backend Team的資深實習生。進入會議室之後主管也馬上出題要我接招了!

主管直接明瞭說明兩個月內要做一個Dcard的文章推薦系統,這裡提供兩個策略:

  1. 利用使用者之前的行為,例如瀏覽、Like、回應過哪些文章,在推薦相似的文章給他。
  2. 利用Collaborative filtering,利用別人去猜這個使用者會不會喜歡這篇文章,利用這結果去推薦文章。
    問:請說明您覺得哪個好,為什麼?
    答:我選第一種用Like去做會比較準。 (回答沒有標準答案 主要面試官是在了解邏輯以及團隊合作的能力)

問:根據你說明用Like去做會比較準 這是為什麼?
答:Dcard的熱門文章設計會造成bias,點擊過的文章可能都會是熱門文章,但使用者按喜歡表示喜歡這篇,並想多看到這類型文章。 另外我覺得也可以利用文章內文的similarity 來推薦給使用者。 例如用所有文章來算LDA Topic model,再將文章丟進去看這篇文章比較屬於哪些Topic。 我Github有試過這個Model,我秀給你們看。

問:熱門文章介面的設計確實會帶來bias,但另一方面這個設計也讓Dcard可以吸引很多人上線觀看,我們現在便是想要做推薦系統來改善一些問題,那你想怎麼設計介面會比較好?

問:跟我解釋LDA模型是怎麼做的?

問:那要這個方法要怎麼解決cold start的問題?

問:那現在有個情況,我們現在也要解決新文章的推薦問題,主有少數的人會去看Dcard的新貼文,然後按讚把它洗上熱門,我們想要利用推薦系統讓多一點人去看新的文章,那你會怎麼做?

問:你說把Dcard的熱衷使用者按新文章的likes考慮進去推薦系統,那要怎麼加進去原有的推薦演算法?

問:那現在假設你的模型很順利地做出來了,你要怎麼去Evaluate 這個推薦系統,利A/B Test 還是其他方法?

問:你說先找使用者來試用,再去做A/B test,那你要怎麼選哪些人去做A/B Test。

問:你說把Dcard的人去做Cluster,那K-means的K你要怎麼決定?

問:不然這樣好了,我講我的想法,我覺得你在用Cluster會多一層不確定性。不如直接隨機給使用者安裝。 那你要怎麼訂多少人使用你的推薦系統,才表示這個推薦系統是好的?

問:所以你意思是說,你先觀察Dcard 使用者的週期行為,例如平日較多人上線、假日比較少人,先設定一個基準值。那你的這個推薦系統超過這個值就代表有改善?

問:那你覺得這個推薦系統要上線多久才能知道它有無改善?

面試主要是直接跟面試官想出一個解決Dcard推薦系統的問題,但面試官也講了,這沒有標準答案,主要是看討論的過程,所以我就不放我的回答,說不定你們想法更棒,當然想知道更細部也可以寄信給我,也很願意你分享你的解法一起交流。

Dcard面試非常特別,完全只有跟主管聊天,問完這些之後就換我問問題,可以簡報一下自己準備的投影片,或是問Dcard相關問題,像我就問了一些他們所使用的技術啦,都用哪些程式語言,Server架在哪邊等等….
再來就聊聊天,這次面試多少人投履歷啦,配對是怎麼做的(想問很久了),預計收幾個人啦,有沒有研替機會啦,Data team有多少人等等….
比較驚訝的是,Dcard今年收到超過一千兩百多份履歷,Data Team大約一百多人投,最後選十多個人出來面試,聽完後覺得非常有幸可以參與到這次面試機會 哈哈
配對的部分主管賣關子:進來之後就跟你說啊、喜歡的話你也可以幫忙改寫演算法。
主管還問開學後有沒有意願繼續實習,可能一週來個兩到三天,會把這納入參考但不是主要的標準。

另外Dcard面試完後還帶我參觀Dcard的辦公室,以及稍微講解一下福利,還送我一件Dcard T-shirt!  真的是超級酷,第一次面試還能收到T-shirt 哈哈哈

附上紀念照片! 面試兼觀光!