自然語言處理之Attention機制

2021-10-09 08:56:02 字數 2161 閱讀 4455

attention!見名知意,它是對於人類注意力機制的一種模仿。當我們看到一張影象,一篇文字的時候,我們會本能的去注意那些更重要的部分,我們給這些東西叫做引人注目。計算機工程師們總是竭盡全力的讓計算機接近人類,那麼如何把注意力機制加在計算機上,讓它們學會去抓重點呢?跟我來!

因為現在很多的注意力機制模型都是附著在encoder-decoder模式基礎上的,所以我們首先來聊一下它。舉個例子,我聽到乙個美女說:"我覺得你跟我未來的老公長得很像。",我的大腦會對這條資訊進行處理形成自己的理解,這就是encoder。然後我要對這句話進行反應,就是解碼的過程。解碼的時候,我得基於自己對她說的這句話的理解,和自己前面說過的話來組織語言。基於對她的理解,這是為了使我的回答是和她的話相關的;基於自己前面說的話,那是為了讓我的語言通順,使自己說出來的是一句人話。最後我回了人一句:「對不起,我是你永遠都得不到的爸爸!」

基於上面的闡述,我們總結一下其中訓練的原理。我們要讓模型建立這樣一種關係 ,(即輸入句子和歷史輸出),與當前時刻輸出之間的關係。最終訓練出來的模型,知道它自己每乙個時刻要說什麼,我們讓他說的快一點那就是一句連續的話了。

這個模型的可以滿足這樣一種應用,給定一段資訊,輸出另一段資訊。那麼就可應用於聊天機械人、機器翻譯、語音識別、文章概要生成等許多的方面。其實人工智慧是唯一能夠完全顛覆這個世界的一項可行性技術,已經沉睡了太久,我們正在嘗試著一點點的喚醒這個龐然大物。

根據前言中的說明,attention注意力就是在計算機執行過程中加入注意力這一因素。具體的操作就是給上下文資訊中加入對應的權重。如下圖所示,整個的過程就是乙個編碼解碼的過程,左邊為輸入編碼,右邊為輸出解碼。唯一不同的是我們在輸出解碼的時候加入了計算權重的步驟。

這個權重的計算過程如下:將輸入hi時刻隱層的值和輸出ht前一時刻隱層的值相乘,經過softmax函式,就得到了輸入hi在計算ht時刻輸出時所佔的權重。將這個上下文向量和解碼層的輸入相乘,結果通過輸出層就得到了ht時刻的輸出。把所有的時刻連起來就是之後的輸出文字了。

關於上圖相似性的計算,常見的兩種機制

1.bahdanauattention:使用兩個w分別乘以decoder的ht-1層狀態和encoder隱層輸出,兩者相加經過tanh函式,然後在和v(v可以理解為values,即decoder隱層所有的輸出)相乘得到分數score,使用softmax(score)得到權重weights,然後在和context相乘得到context vector

2.luongattention:處理流程和b attention一致,只是在計算分值score的時候,使用decoder ht時刻的狀態乘以w,再和encoder隱層輸出相乘。

今天我們介紹了自然語言處理中的編碼解碼模式和注意力機制。編碼解碼模式,就是左邊網路對資訊進行編碼,右邊網路對編碼後的資訊進行解碼。解碼並不是對原來編碼過程的還原,而是通向另外一種形式的輸出。這樣我們就可以建立一段資訊和另外一段資訊之間的連線關係,可以用來做問答系統,語音識別等。注意力機制是在編碼解碼模式上,對於上下文資訊加入了權重向量,表示上下文中不同詞彙對於當前時刻**的貢獻值。這樣我們的模型就學會了抓重點。其中使用余弦相似度或者通過網路學習來計算我們的權重。

這裡的一切都太重了,我覺得我都有點背不動了。各種煩心的事,各種無形的壓力。沒有人在我的身邊,無奈之下,我只能和宇宙對話。我問天空中的層層烏雲,你們到底在隱藏著些什麼。世界真的有我們想象的那麼複雜嗎?還是說企圖用有限的思想去表達無限的宇宙這本來就是不對的。無數代人類最偉大的精英們,給社會編制了一套大型的猜謎遊戲,把所有的人都給玩了。我想要從這一切中抽身出來,用不一樣的眼光來看待這個世界。不是為了使自己與眾不同,而是因為我知道他們看世界的方式是錯誤的。他們研究的動機,是為了利用這個世界,是出於狂妄的自私。但是我想從擁抱這個世界開始,因為我感覺到了那份對於生命來說最重要的愛,那似乎是宇宙最原始的動力。而那些都不是我能主動去索取的,而是來自於張開雙臂之後,世界的給與。

bigbang《loser》現場版,氣氛太好了,比聽cd還過癮!

自然語言處理之 SentencePiece分詞

sentencepiece是乙個google開源的自然語言處理工具包。網上是這麼描述它的 資料驅動 跨語言 高效能 輕量級 面向神經網路文字生成系統的無監督文字詞條化工具。那麼它究竟是幹什麼的呢?先舉個例子 假設在資料探勘時,有一列特徵t是文字描述,我們需要將其轉成列舉型,或者多個布林型代入模型,即...

自然語言處理

自然語言處理主要步驟包括 2.詞法分析 對於英文,有詞頭 詞根 詞尾的拆分,名詞 動詞 形容詞 副詞 介詞的定性,多種詞意的選擇。比如diamond,有菱形 棒球場 鑽石3個含義,要根據應用選擇正確的意思。3.語法分析 通過語法樹或其他演算法,分析主語 謂語 賓語 定語 狀語 補語等句子元素。4.語...

自然語言處理

前言 自然語言處理 natural language processing 是計算科學領域與人工智慧領域中的乙個重要方向。它研究能實現人與計算機之間用自然語言進行有效通訊的各種理論和方法。自然語言處理是一門融語言學 電腦科學 數學於一體的科學。因此,這一領域的研究將涉及自然語言,即人們日常使用的語言...