炼丹面试官的面试笔记
關于Attention和Transformer的靈魂拷問
背景
現在幾乎很多搞深度學習的朋友都把attention和Transformer等當做是基礎知識去考察,但是經過我的幾輪面試發現,我發現好像90%的朋友都回答不上來或者不是很令我們滿意,因為平時工作繁忙,也知道大家都不容易,為了尊重所有的候選人,我們也做了很多功課。
一般我們問的很多基礎問題都是直接從網上拿過來或者是業務中碰到的,大家都知道準備面試的朋友會準備面試的問題,但其實我們面試官也需要針對企業業務和候選人的簡歷準備諸多問題,這可能是第一次公開我的部分面試記錄,諸多的細節大家可以參考文末的參考文獻。本文分享部分我的面試筆記,應該算是比較基礎的。
一般在搜索推薦或者深度學習相關的面試中,我們會考察一下Transformer和Attention相關的問題,而核心主要集中在下面兩張圖上面:
?
?
1. 為什么Transformer 需要進行 Multi-head Attention?
Multi-Head的數學形式如下:
?
?
?
關于為什么使用Transformer進行Multi-head Attention的理由解釋的不錯的有下面兩點:
但在個人的時間中,我們發現并不是multi-head的參數設置越大越好,有的時候1就已經非常好了,去掉一些頭效果依然有不錯的效果(而且效果下降可能是因為參數量下降),這是因為在頭足夠的情況下,這些頭已經能夠有關注位置信息、關注語法信息、關注罕見詞的能力了,再多一些頭,無非是一種enhance或noise而已。
2. Transformer為什么Q和K使用不同的權重矩陣生成,為何不能使用同一個值進行自身的點乘?
如果Q,K,V都是一個值,那么就變為了Self-Attention的形式
?
在實踐中,Q和K的乘法是為了得到二者的相似度,一般我們的K和V是相同的,Q和K進行操作是為了得到一個attention score矩陣,這樣可以得到Q關于V的表示,但一般我們再計算Q,K,V的時候會先都分別乘上一個不同的矩陣W,這么做可以增加模型的表達能力,實踐中經常也會帶來一定的幫助。
3.Transformer中的attention為什么要進行scaled?
數學上的理解:首先我們看attention score的計算,它的數學形式如下:
?
從上面的式子中,我們發現只要我們的數字中,出現了差異相對較大的情況,例如[1,2,10], 那么就會出現下面的情況。這種情況還會帶來一個問題,梯度更新困難,具體細節可以參考引文。
?
0.9995413380353424. 維度與點積大小的關系是怎么樣的,為什么使用維度的根號來放縮?
可以控制方差,有效緩解梯度消失的問題。詳細細節可參考參考文獻[3]
5. Transformer 如何并行化的?
Transformer在Decoder側是沒有并行的,一個一個解碼,當前時刻的輸入依賴于上一個時刻的輸出。
所以Transformer的并行主要集中在Encoder側,不同詞(Token)或者元素(推薦系統中的每一個歷史點擊商品)是可以并行的。
Transformer是可以并行處理在Encoder端的整個序列信息的,例如在self-attention模塊,對于某個序列X1,X2,...Xn,self-attention模塊可以直接計算Xi,Xj的點乘結果,而 RNN的模型就必須按照順序從到的順序進行計算。
6. Attention相較于CNN和RNN的優勢有哪些?
7. 為什么引入Attention機制?
此處回答摘自引文[6]
Attention又叫做注意力機制,顧名思義,就是希望可以讓模型對重要信息重點關注并充分學習吸收的技術,它不是一個完整的模型,可以應用于任何序列化的模型中。
傳統的編碼是無法體現對一個句子序列中不同語素的關注程度,在自然語言中,一個句子中的不同部分是有不同含義和重要性的,比如:I hate this movie.如果做情感分析,明顯對hate這個詞語應當關注更多。當然是用CNN和RNN能夠編碼這種信息。但是如果序列長度很長的情況下,這種方法會有一定的瓶頸。CNN的核心就是卷積核能夠變相學習n-gram的信息,如果是用hierarchical的卷積核,那么越上層的卷積核越能編碼原始距離較遠的詞組的信息。但是這種編碼能力也是有上限的,對于較長的文本,模型效果不會再提升太多。RNN也是同理。基于參加達觀文本分類的經歷,對于這種長文本處理,使用RNN+attention的效果比使用單純的RNN+pooling的效果要好不少。
8. Attention中權重的常見計算方式有哪些?
?
參考文獻
http://weixin.qq.com/r/XSjP1zrEzGezrX60931P (二維碼自動識別)
?
總結
以上是生活随笔為你收集整理的炼丹面试官的面试笔记的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 推荐算法炼丹笔记:阿里序列化推荐算法Co
- 下一篇: 推荐系统炼丹笔记:阿里推荐算法特征交叉新