檢索式人工智障識記

blog可能排版更好點

拖了一個多星期了 都快拖到Final Presentation DDL了 我這個懶癌晚期都看不下去了

好 究竟是道德的淪喪還是人性的扭曲祷愉?歡迎來到這一期的「奇葩說之中華田園犬大解密」

在了解了基本的RNN家族之后

我們把步子邁得大一點 直接對準(zhǔn)目前檢索式 chatbots研究前沿

首先 QA系統(tǒng)分為任務(wù)型僵缺,非任務(wù)型兩大類

任務(wù)型就是像Siri這種药蜻,需要識別用戶派遣的任務(wù)尿瞭,然后完成相應(yīng)的任務(wù)

非任務(wù)則是主要是閑聊機器人漂洋,購物客服機器人

非任務(wù)按Answer的生成方式 又可以分為 檢索式 生成式

目前工業(yè)上落地的(效果好的)就是檢索式

所以我們?yōu)榱藢W(xué)術(shù) (找工作) 來研究檢索式對話Chatbots

檢索式QA生產(chǎn)式QA 最大的區(qū)別 就是 檢索式 只需要做encode 而生成式不僅僅要encode 還要decode

這個應(yīng)該很好理解 檢索式 只需要 把query+Context encode 到向量 然后計算Similarity斗搞,取最高的幾個

但生成式 encode計算完之后 還得根據(jù)計算值decode成語句 返回給用戶

這就是他們最大的區(qū)別 當(dāng)然 我們這里討論的是檢索式

Base mind

檢索式對話 顧名思義 就是從一堆語料庫中 通過檢索匹配到相近的對話 從而輸出答案

注意 這里有兩個關(guān)鍵詞 一個是檢索 另外一個是匹配

檢索就是 檢查索引 所以 檢索的關(guān)鍵就是把詞變成詞向量 預(yù)處理成Index

匹配就是 根據(jù)詞向量 計算出一個匹配值 最簡單就是計算Cosine Distance 當(dāng)然這樣效果很一般

于是就有一堆學(xué)者提出一堆模型

常規(guī)的做法有利用RNN家族 獲取句、文章粒度的信息

然后 就開始論文串講了

上古時代

話說 盤古還沒開天 女媧還沒補石 后裔還沒射日

那個時候 還沒有Word2vector 更不用說小學(xué)五年級就可以學(xué)得TF 對詞向量的計算 還都是傳統(tǒng)的Hash優(yōu)化思路

這個時候出現(xiàn)了一個名叫DSSM的模型[Po-Sen Huang et al. 2013] Learning Deep Structured Semantic Models for Web Search using Clickthrough Data

image

這個模型創(chuàng)新點有

  1. 利用wordHash代替?zhèn)鹘y(tǒng)詞袋模型 從而達到降維效果
    • word Hash 就是用把詞前后加上#叶眉,然后每n個詞做一個切割址儒,比如說good->{#go, goo, ood, od#}
    • 每個切割分量作為一維向量
    • 因為英文中單詞數(shù)量級遠大于n個字母組合的數(shù)量級
    • 且這種方案的Hash碰撞率較小 3字母表示僅為0.0044%
    • WordHash可以看做是Word2Vector早期的方案
    • 其基本思想每個詞之間并非完全正交 然后應(yīng)該沒有那么多獨立的維度 所以就可以壓縮詞向量大小
  2. 利用全神經(jīng)網(wǎng)絡(luò)對句子進行處理得到相對應(yīng)的句粒度向量
    • 文章利用三個隱藏層進行訓(xùn)練芹枷,第一個隱藏層為WordHash層有30K個節(jié)點,第二三層各有300個節(jié)點莲趣,輸出層有128個節(jié)點鸳慈,并使用隨機梯度下降SGN訓(xùn)練

啟蒙運動

隨著word2Vec的提出 再加上NN方法在NLP中進一步運用 檢索式QA有了不錯的發(fā)展

但回顧之前的DSSM模型 在計算出句粒度的向量之后就直接使用cosine distance 進行計算Similarity

直觀感覺這樣算效果不會太好 于是這個時期就有一些學(xué)者提出一些改進Similarity計算方法的模型

MV-LSTM

就有學(xué)者提出由構(gòu)造對齊矩陣 然后再做池化的方式 計算句粒度之間相似度 的MV-LSTM模型[Shengxian Wan et al. 2015]

image
  1. 計算句子間的兩兩匹配度存入對齊矩陣 從細粒度描述句子間關(guān)系
  2. 利用雙向LSTM模型 減少因為RNN時序遍歷的特性 導(dǎo)致模型結(jié)果更偏向于最后幾個單詞的現(xiàn)象
  3. Similarity不只直接做cosine計算 根據(jù)模型特性動態(tài)調(diào)整參數(shù)s(u,v)=f(u^TM^{[1:c]}v+W_{uv}[u;v])+b)
  4. 處理最后一步使用多層感知機MLP對得到的結(jié)果進行壓縮和分類 因為效果較好 這個做法在之后的論文中被廣泛采用

MM

MM = Matching Matrix

這個模型[Liang Pang et al. 2016]主要是從多個角度 構(gòu)造對齊矩陣 然后講多個對齊矩陣 類比圖像處理 一起喂入CNN中進行 卷積池化操作 算是交互式QA的開山之作

image

文章給出了三種對齊函數(shù)的計算方式 1. 存在判斷: 該單詞是否存在于另一個句子中 2. 點積 3. 余弦相似度

image

將多粒度分析出的對齊矩陣 通過多重卷積 進行訓(xùn)練

image

然后這種多粒度計算詞、句之間關(guān)系的做法 之后發(fā)展成交互式QA 現(xiàn)廣泛應(yīng)用于檢索式QA模型中

BiMPM

BiMPM = Bilateral Multi-Perspective Matching

在前面學(xué)者的基礎(chǔ)上 進一步針對多角度句詞匹配進行研究 提出BiMPM模型[Zhiguo Wang et al. 2017]

image

文章提出四種匹配方式

  1. Full Matching: 每個單詞 與 需要匹配的句子的最后一個隱藏層輸出向量進行Cosine計算
  2. MaxPooling Matching: 每個單詞 與 需要匹配的句子的每一個單詞進行Cosine計算 取Maximum
  3. Attentive Matching: 每個單詞 與 需要匹配的句子的每一個單詞行Cosine計算 然后用Softmax歸一化 作為attention權(quán)重 然后再加權(quán)求和 得到的結(jié)果再做一次Cosine
  4. Max Attentive Matching: 每個單詞 與 需要匹配的句子的每一個單詞行Cosine計算 然后用Softmax歸一化 作為attention權(quán)重 然后再取最大值 得到的結(jié)果再做一次Cosine
image

然后BiMPM還加上了雙向處理 不僅考慮從Query 推出Answer 還考慮到Answer 推出 Query

工業(yè)革命

慢慢的大家發(fā)現(xiàn) 僅僅從詞的角度 去進行檢索式QA不能達到很好的效果

尤其是在多輪對話中效果并不好 于是能反映多角度關(guān)系且特別Work(這個很關(guān)鍵)的交互式就越來越流行

Multi-view model

說到交互式 必須 提到這篇論文Multi-view Response Selection for Human-Computer Conversation [Xiangyang Zhou et al. 2016]

雖然它不算完全使用了交互思想的論文 但算作給交互打開了一些思路

然后 看完這篇Paper LongLong Ago 才發(fā)現(xiàn) 這篇論文是我老師寫的 (雖然他的名字 藏在最后)

image

我們在研究多輪對話的時候 很簡單的一個想法就是把多輪用一些標(biāo)識符(比如說_SOS_)拼接成一句單句 然后這個單句就可以像上面一樣計算對齊矩陣

image

但很顯然 這樣做 不會有太好的效果

于是這篇Paper 提出通過多角度 (Word Level, Utterance Level)

Utterance是指利用CNN 進行卷積池化 得到Utterance Level的embedding squence 再經(jīng)過一次Gated RNN (LSTM or GRU)過濾噪聲

然后把兩個維度得到的結(jié)果相加得到 最終的結(jié)果

很顯然 直接相加得到的結(jié)果 不能準(zhǔn)確的反映 多維度之間的關(guān)系 但多維度的思路對后面的論文很有幫助

SMN

SMN = Sequential Matching Network

然后 就到了大名鼎鼎的SMN [Yu Wu et al. 2017] (ym wuyu dalao)

SMN 把多粒度喧伞、基于交互的思想運用在多輪對話中

image

和前面的MM等模型一樣 SMN采用了多粒度分析

  • 一個對齊矩陣M1 是直接Word Embedding 得到的 對應(yīng)的就是Word Pairs
  • 另外一個矩陣M2 是通過GRU計算得到的 對應(yīng)的是Segment Pairs

分別代表詞粒度走芋、句粒度

然后經(jīng)過卷積、池化結(jié)合兩個粒度的信息

然后再過一層GRU 過濾噪聲 GRU得到的向量進行Match就可以獲得匹配Score

這種多粒度的做法 保證了即使CNN很淺潘鲫,也能抽取出比較high-level的特征翁逞,得到高質(zhì)量的utterance embedding[9]

這篇文章 還對最后一個GRU進行優(yōu)化 給出了分別利用1. 最后一個隱藏層結(jié)果SMN_{last} 2. 中間每層的帶權(quán)和SMN_{static} 3. 結(jié)合attention的一種表示SMN_{dynamic}進行匹配的結(jié)果

得出dynamic 效果最優(yōu)的結(jié)論

DUA

之前 我們 分析過RNNs家族的一些模型

在剛才的SMN模型中 利用了GRU獲得時序信息

那么如果把GRU換成RNN的其他模型呢

就有學(xué)者提出DUA模型[Zhuosheng Zhang et al. 2018],把前面M1, M2分別換為GRU, self-attention

image

其實 上面這個圖畫的不好

  • 一個對齊矩陣M1 是通過GRU計算得到的 對應(yīng)的是Segment Pairs
  • 另外一個矩陣M2 是先self-attentation 然后和embedding的結(jié)果拼起來 再過一次GRU
    • 這里的slef-attentation 沒有使用position 所以沒有帶時序信息 于是用GRU 撈一下有關(guān)時間的信息

之后的就和SMN基本一致 實際效果比SMN更好一點

DAM

image

前面的SMN給了兩層對齊矩陣 那么為啥選兩層 不選三層 四層 100層 8848層呢

于是有dalao借助 transformer (其實 也就是 self-attentation 還記得Google Brain 那篇風(fēng)騷的 Attention is All you need吧) 提出了Deep Attention Matching [Xiangyang Zhou et al. 2018]

構(gòu)造了一些對齊矩陣

  1. 原始word embedding 矩陣
  2. 第一層Attention: 多輪Contetxt和Response 每個詞
  3. 第二層Attention: 第一輪結(jié)果和新的Response

重復(fù)2.3H次 就可以得到1+2H層(H為Transformer 層數(shù))對齊矩陣

再把這2H+1維對齊矩陣 喂到CNN中訓(xùn)練

DAM最核心的地方 在于2H層Attention的構(gòu)造 Paper中給出了具體的解釋證明 證明兩個Attention 相互作用

目前DAM模型可以獲得不錯的結(jié)果

好 基本上 目前常用的模型 介紹完了 也許寫完代碼會有新的體會 匿了

---未完待續(xù) 期待下一個篇章---

Reference

  1. Learning Deep Structured Semantic Models for Web Search using Clickthrough Data [Po-Sen Huang et al. 2013]
  2. A Deep Architecture for Semantic Matching with Multiple Positional Sentence Representations[Shengxian Wan et al. 2015]
  3. Text Matching as Image Recognition [Liang Pang et al. 2016]
  4. Bilateral Multi-Perspective Matching for Natural Language Sentences [Zhiguo Wang et al. 2017]
  5. Multi-view Response Selection for Human-Computer Conversation [Xiangyang Zhou et al. 2016]
  6. Sequential matching network: A new architecture for multi-turn response selection in retrieval-based chatbots [Yu Wu et al. 2017]
  7. Modeling multi-turn conversation with deep utterance aggregation [Zhuosheng Zhang et al. 2018]
  8. Multi-Turn Response Selection for Chatbots with Deep Attention Matching Network [Xiangyang Zhou et al. 2018]
  9. 小哥哥溉仑,檢索式chatbot了解一下挖函?
  10. 深度文本匹配發(fā)展總結(jié)
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市浊竟,隨后出現(xiàn)的幾起案子挪圾,更是在濱河造成了極大的恐慌,老刑警劉巖逐沙,帶你破解...
    沈念sama閱讀 222,104評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異洼畅,居然都是意外死亡吩案,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,816評論 3 399
  • 文/潘曉璐 我一進店門帝簇,熙熙樓的掌柜王于貴愁眉苦臉地迎上來徘郭,“玉大人,你說我怎么就攤上這事丧肴〔腥啵” “怎么了?”我有些...
    開封第一講書人閱讀 168,697評論 0 360
  • 文/不壞的土叔 我叫張陵芋浮,是天一觀的道長抱环。 經(jīng)常有香客問我,道長纸巷,這世上最難降的妖魔是什么镇草? 我笑而不...
    開封第一講書人閱讀 59,836評論 1 298
  • 正文 為了忘掉前任,我火速辦了婚禮瘤旨,結(jié)果婚禮上梯啤,老公的妹妹穿的比我還像新娘。我一直安慰自己存哲,他們只是感情好因宇,可當(dāng)我...
    茶點故事閱讀 68,851評論 6 397
  • 文/花漫 我一把揭開白布七婴。 她就那樣靜靜地躺著,像睡著了一般察滑。 火紅的嫁衣襯著肌膚如雪打厘。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,441評論 1 310
  • 那天杭棵,我揣著相機與錄音婚惫,去河邊找鬼。 笑死魂爪,一個胖子當(dāng)著我的面吹牛先舷,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播滓侍,決...
    沈念sama閱讀 40,992評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼蒋川,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了撩笆?” 一聲冷哼從身側(cè)響起捺球,我...
    開封第一講書人閱讀 39,899評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎夕冲,沒想到半個月后氮兵,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,457評論 1 318
  • 正文 獨居荒郊野嶺守林人離奇死亡歹鱼,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,529評論 3 341
  • 正文 我和宋清朗相戀三年泣栈,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片弥姻。...
    茶點故事閱讀 40,664評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡南片,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出庭敦,到底是詐尸還是另有隱情疼进,我是刑警寧澤,帶...
    沈念sama閱讀 36,346評論 5 350
  • 正文 年R本政府宣布秧廉,位于F島的核電站伞广,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏定血。R本人自食惡果不足惜赔癌,卻給世界環(huán)境...
    茶點故事閱讀 42,025評論 3 334
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望澜沟。 院中可真熱鬧灾票,春花似錦、人聲如沸茫虽。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,511評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至正什,卻和暖如春啥纸,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背婴氮。 一陣腳步聲響...
    開封第一講書人閱讀 33,611評論 1 272
  • 我被黑心中介騙來泰國打工斯棒, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人主经。 一個月前我還...
    沈念sama閱讀 49,081評論 3 377
  • 正文 我出身青樓荣暮,卻偏偏與公主長得像,于是被迫代替她去往敵國和親罩驻。 傳聞我的和親對象是個殘疾皇子穗酥,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,675評論 2 359

推薦閱讀更多精彩內(nèi)容

  • 轉(zhuǎn)載請聲明出處。到這里才發(fā)現(xiàn)簡書不支持Mathjax惠遏,真蛋疼砾跃,要看公式的話還是到我的博客上看,留言就在這里留吧节吮,我...
    TonLP閱讀 2,712評論 0 6
  • 主要內(nèi)容 自然語言輸入編碼 前饋網(wǎng)絡(luò) 卷積網(wǎng)絡(luò) 循環(huán)網(wǎng)絡(luò)(recurrent networks ) 遞歸網(wǎng)絡(luò)(re...
    JackHorse閱讀 4,142評論 0 2
  • 題目分析: 將獎牌和獎杯整理到柜子里抽高,要求是:獎牌和獎杯不可同時出現(xiàn)在同一排,每一排的獎杯不可超過5個透绩,并且每一排...
    Yinmu閱讀 178評論 0 0
  • 第四十二篇:2018.4.12 星期四 天氣晴 都說越贊美孩子孩子就會表現(xiàn)越好厨内,我也試著表揚贊美小魏同學(xué)了,一...
    薄丞葉閱讀 257評論 0 2