2015-06-22 26 views
1

我給一個句子輸入到結構化神經網絡樹,其中葉子節點將在句中的單詞矢量。如何在輸入神經網絡時處理不同大小的句子?

該樹將是一個binarized constituency(請參閱二進制vs n-ary分支部分)分析樹。

我試圖發展句子的語義表示。

問題是,即由於每個句子會有不同的解析樹和不同的長度,每個句子都會有不同的神經網絡。由於神經網絡結構不斷變化,我無法訓練它。

但本文開發了使用選區和基於依賴性解析trees-

1)由凱晟泰,理查德Socher,和克里斯托弗·曼寧

Improved Semantic Representations From Tree-Structured Long Short-Term Memory Networks結構化神經網絡了樹,本文采用細胞神經網絡提取一個語義表示。

2)Recurrent Continuous Translation Models Nal Kalchbrenner和Phil Blunsom。這張照片給出了一個粗略的想法CSM

可能的解決方案 -
我一句矢量映射到一個固定數目的神經元,然後使用這些神經元來創建一個樹形結構。例如,如果存在的句子長度爲10,最大句子長度爲20,我可以創建20個神經元的固定維數層,然後(在該特定情況下)的第一個字到第2個神經元,第二字到第三和第四神經元等。 動態映射可以根據句子的長度來完成。

句子層對固定維度層的權重矩陣是固定的(權重應保持爲1)。沒有偏見。

但我認爲在這種表現中會出現一些問題 - 例如 - 如果這句話「我有一個可愛的冰淇淋和一個甜點點心。」映射到固定維層將成爲「我當年有一個漂亮可愛的冰淇淋和冰淇淋和用於甜點甜食糕點糕點...」。因此,這意味着與較長的句子相比,較短的句子將對神經網絡產生更深遠的影響。這種對較短句子的偏見也應該在輸出(序列生成器)中創建重複的單詞。如果我錯了,有人能糾正我嗎?

我會歡迎更多的解決方案,特別是那些不能消除句子之間詞語之間關係的解決方案。

我會實現這個使用theano和蟒蛇。我正在考慮基於圖層的方法,並使用theano.scan遍歷圖層以最終形成句子表示。

+0

這是爲什麼downvoted? – Azrael

+0

我懷疑downvoter認爲這是StackOverflow的主題。它*可能會更好地放在CrossValidated上:http://stats.stackexchange.com/questions/tagged/machine-learning雖然我意識到這是一個實現/工程問題。如果您引入更多實施細節(例如Theano),您可能會獲得更多的牽引力。 –

+0

Upvoted的問題 - 不知道downvoter正在尋找什麼。那麼,交叉驗證是一個更好的地方。 – Aditya

回答

0

您引用的論文都使用循環體系結構來處理可變數據長度,但是從您發佈和描述的圖形,我不確定是否要使用循環結構。如果不這樣做,則需要根據數據集將輸入填充到某個固定長度的矢量中。 (這可能是一個糟糕的模型。)如果你這樣做,我會看看RNNs的一些theano框架(千層麪,keras,塊)實現。