FastText就是一種word2vec,只不過FastText更加目標化。網絡
這裏有一個問題,若是你把每一個單字做爲模型輸入的話,你把x1,x2,x3輸入分類器,而分類器每次只能處理一個x。例如當你輸入"你",我告訴你下一個字是"瞅",你告訴我"瞅",我告訴你下一個字是"啥",你告訴我"啥",我告訴你"瞅你咋地?!",用人的思惟想就知道,這是不可能的,由於歧義太多了,若是咱們是一個一個塞進咱們的分類器的話,他們之間的關係是不能被保證的,不知道整個語境有多長,不知道語境下面它究竟是什麼意思,這時咱們須要一種帶記憶的神經網絡來解決這個問題。ide
RNN的N(context)是要設置的,你要告訴它看有多長的路要看,多長的歷史要看,把Xt的關聯關係都得考慮上。3d
題目原型:What's Next? 能夠在不一樣的維度上:cdn
上面句子中的關鍵字(看,話,感)當作是注意力。blog
咱們該如何申請一個filter。申請一個3*3的filter在矩陣的中心會工做的很好,可是在矩陣的邊際會怎樣呢?矩陣的第一個元素,其頂部和左邊都沒有相鄰元素,你該如何將filter應用到這樣的元素上?你可使用zero-padding(0填充)全部落到矩陣之外的元素都將用0代替。這樣你就能夠將filter應用到你輸入的任何矩陣中了,而且能夠獲得一個更大或等大的矩陣做爲輸出。添加zero-padding也被稱爲wide convolution,而不使用zero-padding的將稱爲narrow convolution。下圖是一個1維的例子: 圖片
Narrow vs. Wide Convolution. Filter size 5, input size 7. Source: A Convolutional Neural Network for Modelling Sentences (2014)當你的filter比輸入的size還大時,你能夠看到wide convolution是多麼的有用,甚至說是必須的。如上所示,narrow convolution產出的尺寸是(7-5)+1=3,而wide convolution產出尺寸是(7+2*4-5)+1=11。一般,輸出尺寸的規則表達式爲: input
Stride size,定義了你的filter在每步中滑動多少。上面提到的全部例子中都是默認爲1,而且是連續重疊的應用filter。Stride size越大,filters的應用次數就會越少,輸出的size就會越小。下圖描述了Stride size分別爲1和2,應用到1維的輸入上: 原型
在上圖咱們能夠看到一個典型的Stride Size爲1的Convolution,而更大的Stride Size可讓你創建一個相似與RNN結構的模型,也就是看起來像一棵樹。