自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

達(dá)觀數(shù)據(jù)智能問答技術(shù)研究

開發(fā) 開發(fā)工具
在機(jī)器人圍棋大勝李世石、柯潔之后,人工智能越來越火。作為一項新興技術(shù),智能問答也是人工智能中必不可少的一環(huán)。智能問答一般用于解決企業(yè)客服、智能資訊等應(yīng)用場景,實現(xiàn)的方式多種多樣,包括簡單的規(guī)則實現(xiàn),也可以基于檢索實現(xiàn),還可以通過encoder-decoder框架生成,本文通過幾種常見的問答技術(shù),概要介紹了達(dá)觀數(shù)據(jù)智能問答相關(guān)原理研究。

[[195657]]

在機(jī)器人圍棋大勝李世石、柯潔之后,人工智能越來越火。作為一項新興技術(shù),智能問答也是人工智能中必不可少的一環(huán)。智能問答一般用于解決企業(yè)客服、智能資訊等應(yīng)用場景,實現(xiàn)的方式多種多樣,包括簡單的規(guī)則實現(xiàn),也可以基于檢索實現(xiàn),還可以通過encoder-decoder框架生成,本文通過幾種常見的問答技術(shù),概要介紹了達(dá)觀數(shù)據(jù)智能問答相關(guān)原理研究。

1. 基于規(guī)則的智能問答

基于規(guī)則的智能問答通常是預(yù)先設(shè)置了一系列的問答規(guī)則,在用戶輸入一個問題時,去規(guī)則庫里匹配,看是否滿足某項規(guī)則,如果滿足了就返回該規(guī)則對應(yīng)的結(jié)果。如規(guī)則庫里設(shè)置“*你好*”->“你好啊!”,那么用戶在輸入“你好”時,機(jī)器人會自動返回“你好啊!”。如果規(guī)則庫非常龐大,達(dá)到了海量的級別庫,則可對規(guī)則建立倒排索引,在用戶新輸入一個問題時,先去倒排索引中查找***的規(guī)則集合,再通過這個集合中的規(guī)則進(jìn)行匹配返回。

使用規(guī)則庫的智能問答優(yōu)點(diǎn)是簡單方便,準(zhǔn)確率也較高;缺點(diǎn)是規(guī)則庫要經(jīng)常維護(hù)擴(kuò)展,而且覆蓋的范圍小,不能對新出現(xiàn)的問題進(jìn)行回答。

2. 基于檢索的智能問答

基于檢索的智能問答很像一個搜索引擎,但又和搜索引擎不同,相比搜索引擎而言,智能問答更側(cè)重于用戶意圖和語義的理解。它基于歷史的問答語料庫構(gòu)建索引,索引信息包括問題、答案、問題特征、答案特征等。用戶問問題時,會將問題到索引庫中匹配,首先進(jìn)行關(guān)鍵字和語義的粗排檢索,召回大量可能符合答案的問答對;然后通過語義和其他更豐富的算法進(jìn)行精排計算,返回***的一個或幾個結(jié)果。

圖1

2.1 粗排策略

粗排策略跟一般的搜索引擎非常類似,主要基于的技術(shù)包括粗細(xì)粒度分詞、詞重要性計算、核心詞識別、命名實體識別、語義歸一等相關(guān)技術(shù),主要是為了在粗排階段盡可能地把相關(guān)問題進(jìn)行召回。

1) 詞重要性計算:通過計算重要性,越能表示問題的詞匯權(quán)重越高,在召回時***這些詞匯的候選集越有可能被召回。如:“靠譜的英語培訓(xùn)機(jī)構(gòu)有哪些?”,在這個問題中,“英語”、“培訓(xùn)”、“機(jī)構(gòu)”是高權(quán)重的詞,“靠譜”是較高權(quán)重的詞,“哪些”是較低權(quán)重的詞;因此越符合“英語培訓(xùn)機(jī)構(gòu)”的答案越有可能被召回。

2) 核心詞識別:核心詞就是候選集中必須相關(guān)的詞。如“北京住宿多少錢?”

,核心詞是“北京”、“住宿”,如果候選集中沒有這兩個相關(guān)的詞,如“上海住宿多少錢?”,“北京吃飯多少錢”,都是不符合問題需求的。

3) 命名實體識別:通過命名實體識別,能協(xié)助識別出問題答案中的核心詞,也可以對核心專有名詞進(jìn)行重要性加權(quán),輔助搜索引擎提升召回效果。

4) 語義歸一也是擴(kuò)大召回的重要手段,同一個問題可能有很多種問法,不同的問法如果答案不同,或者召回的結(jié)果數(shù)目不同,就會很讓人煩惱了,比如“劉德華生日是哪天?”、“劉德華出生在哪一天?”,如果不作語義歸一的話,有可能某一個問題都不會召回結(jié)果。

2.2 精排策略

通過粗排,搜索引擎已經(jīng)返回了一大批可能相關(guān)的結(jié)果,比如500個,如何從這500個問題中找到***問題的一個或者幾個,非??简炈惴ň?。一般基于檢索的問答系統(tǒng)都會通過語義或者深度學(xué)習(xí)的方法尋找最匹配的答案。

1) 基于句子相似度的算法。

基于句子相似度的算法有很多種,效果比較好的有基于word2vec的句子相似度計算和基于sentence2vec的句子相似度計算。基于word2vec計算兩個句子的相似度,就是以詞向量的角度計算***個句子轉(zhuǎn)換到***個句子的代價:

詞向量有個有趣的特性,通過兩個詞向量的減法能夠計算出兩個詞的差異,這些差異性可以應(yīng)用到語義表達(dá)中。如:vec(Berlin) – vec(Germany) = vec(Paris) – vec(France);通過這個特性能夠用用來計算句子的相似度。假設(shè)兩個詞xi, xj之間的距離為ci, j= xi- xj2,這可以認(rèn)為是xi轉(zhuǎn)換到xj的代價??梢詫⒕渥佑迷~袋模型d∈Rn表示,模型中某個詞i的權(quán)重為di= cij=1ncj,其中ci是詞i在該句子中出現(xiàn)的次數(shù)。設(shè)置 T∈Rn*n為一個轉(zhuǎn)換矩陣,Tij表示句子d中詞i有多少權(quán)重轉(zhuǎn)換成句子d’中的詞j,如果要將句子d完全轉(zhuǎn)換成句子d’,所花費(fèi)的代價計算如下:

如果用Xd表示句子中的詞向量通過權(quán)重di進(jìn)行加權(quán)平均的句向量,可以推導(dǎo)出,句子轉(zhuǎn)換代價的下限是兩個句向量的歐式距離。

一般這個下限表示兩個短句子相似的程度已經(jīng)足夠了,如果需要通過完全***化的方法計算minT≥0i, j =1nTijc(i, j)的值,可以通過EMD solver算法計算。

2) 基于深度學(xué)習(xí)計算問答匹配程度。

基于句向量的距離計算句子相似度,可以cover大部分的case,但在句子表面相似,但含義完全不同的情況下就會出現(xiàn)一些問題,比如“我喜歡冰淇淋”和“我不喜歡冰淇淋”,分詞為“我”,“不”,“喜歡”,“冰淇淋”,兩個句子的相似度是很高的,僅一字“不”字不同,導(dǎo)致兩個句子意思完全相反。要處理這種情況,需要使用深度模型抓住句子的局部特征進(jìn)行語義識別。

圖2

如圖所示,Q是用戶的問題,D是返回的各個答案。對于某一個問答句子,首先將它映射到500k大小的BOW向量Term Vector里。因為Term Vector是稀疏矩陣,可以使用Word Hashing或者其他Embedding的方法將其映射到30k大小的詞向量空間里。接下來的l1, l2, l3層就是傳統(tǒng)的MLP網(wǎng)絡(luò),通過神經(jīng)網(wǎng)絡(luò)得到query和document的語義向量。計算出(D,Q)的cosine similarity后,用softmax做歸一化得到的概率值是整個模型的最終輸出,該值作為監(jiān)督信號進(jìn)行有監(jiān)督訓(xùn)練。模型通過挖掘搜索點(diǎn)擊日志構(gòu)造的query和對應(yīng)的正負(fù)document樣本(點(diǎn)擊/不點(diǎn)擊),輸入DSSM進(jìn)行訓(xùn)練。

3) 基于卷積神經(jīng)網(wǎng)絡(luò)計算問答匹配程度。

句子中的每個詞,單獨(dú)來看有單獨(dú)的某個意思,結(jié)合上下文時可能意思不同;比如“Microsoft office”和“I sat in the office”,這兩句話里的office意思就完全不一樣。通過基于卷積神經(jīng)網(wǎng)絡(luò)的隱語義模型,我們能夠捕捉到這類上下文信息。

圖3

如圖所示,先通過滑窗構(gòu)造出query或document中的一系列n-gram terms,比如圖中是Word-n-gram layer中的trigram;然后通過word-hashing或者embedding將trigram terms表示為90k的向量;通過卷積向量Convolution matrix Wc對每個letter-trigram向量作卷積,可以得到300維的卷積層Convolutional layer;***通過max-pooling取每個維度在Convolutional layer中的***值,作為文本的隱語義向量。模型也是通過挖掘搜索日志進(jìn)行有監(jiān)督訓(xùn)練。

通過卷積神經(jīng)網(wǎng)絡(luò),能得到句子中最重要的信息。如下面一些句子,高亮的部分是卷積神經(jīng)識別的核心詞,它們是在300維的Max-pooling層向量里的5個***神經(jīng)元激活值,回溯找到原始句子中的詞組。

microsoft office excel could allow remote code execution

welcome to the apartment office

4) 基于主題模型計算問答匹配程度。

短文本一般詞語比較稀疏,如果直接通過共現(xiàn)詞進(jìn)行匹配,效果可能會不理想。華為諾亞方舟實驗室針對短文本匹配問題,提出一個DeepMatch的神經(jīng)網(wǎng)絡(luò)語義匹配模型,通過(Q, A)語料訓(xùn)練LDA主題模型,得到其topic words,這些主題詞用來檢測兩個文本是否有語義相關(guān)。該模型還通過訓(xùn)練不同“分辨率”的主題模型,得到不同抽象層級的語義匹配(“分辨率”即指定topic個數(shù),高分辨率模型的topic words通常更加具體,低分辨率的topic words通常更加抽象)。在高分辨率層級無共現(xiàn)關(guān)系的文本,可能在低分辨率存在更抽象的語義關(guān)聯(lián)。DeepMatch模型借助主題模型反映詞的共現(xiàn)關(guān)系,可以避免短文本詞稀疏帶來的問題,并且能得到不同的抽象層級的語義相關(guān)性。

圖4

如圖所示,綠色和紫色塊分別表示在同一個分辨率下不同的主題在X和Y文本中***的主題詞塊,與上一層分辨率(p-layerII)的主題的關(guān)聯(lián)通過是否與上一層的主題詞塊有重疊得到。如此通過多層的主題,能夠構(gòu)建出神經(jīng)網(wǎng)絡(luò),并使用有監(jiān)督的方式對相關(guān)權(quán)重進(jìn)行訓(xùn)練。

3. 基于產(chǎn)生式的智能問答

基于產(chǎn)生式的智能問答系統(tǒng),主要是通過seq2seq的方式,通過一個翻譯模型的方式進(jìn)行智能回答,其中問題是翻譯模型的原語言,答案是翻譯模型的目標(biāo)語言。Seq2seq模型包含兩個RNN,一個是Encoder,一個是Decoder。Encoder將一個句子作為輸入序列,每一個時間片處理一個字符。Decoder通過Encoder生成的上下文向量,使用時間序列生成翻譯(回答)內(nèi)容。(達(dá)觀數(shù)據(jù) 江永青)

圖5

在Encoder中,每一個隱藏的狀態(tài)影響到下一個隱藏狀態(tài),并且***一個隱藏狀態(tài)可以被認(rèn)為是序列的總結(jié)信息。***這個狀態(tài)代表了序列的意圖,也就是序列的上下文。通過上下文信息,Decoder會生成另一個結(jié)果序列,每一個時間片段,根據(jù)上下文和之前生成的字符,Decoder都會生成一個翻譯字符。

圖6

這個模型有一些不足:首先是這個模型不能處理變長的字符序列,而一般的翻譯模型和問答模型中的序列長度都是不定的。另外一個是僅通過一個context變量,并不足以完全表示輸入序列的信息。在序列變得很長之后,大量的信息會被丟棄,因此需要多個context變量及注意力機(jī)制進(jìn)行處理。

3.1 Padding

通過Padding方式,可以將問答字符串固定為定長的序列,比如使用如下幾個序列進(jìn)行Padding:

EOS : 序列的結(jié)束

PAD : Padding字符

GO : 開始Decode的字符

UNK : 不存在字典中的字符

對于問答對:

Q : 你過得怎樣?

A : 過得很好。

通過padding將生成固定的如下字符串:

Q : [ PAD, PAD, PAD, PAD, “?”, “樣”, “怎”, “得”, “過”, “你” ]

A : [ GO, “過”, “得”, “很”, “好”, “。”, PAD, EOS, PAD, PAD ]

3.2 注意力機(jī)制

Seq2Seq的一個限制是輸入序列的所有信息只能編碼到一個定長的數(shù)組context里,如果輸入序列變長的話,我們很容易會丟失信息,因此Seq2Seq模型對長輸入序列效果很差。通過引入一個注意力機(jī)制,可以讓Decoder在翻譯(回答)時按權(quán)重選擇性地提取輸入的各個隱層變量進(jìn)行計算,這樣就能在產(chǎn)生輸出時考慮到輸入的關(guān)鍵信息了。

圖7

如圖中,每個輸入的狀態(tài)yi除了與前一個狀態(tài)yi-1,輸入的隱藏狀態(tài)si有關(guān)之外,還與注意力向量ci有關(guān)。

這里的注意力向量不再是單獨(dú)的一個c,而是對于每一個輸入yi都有對應(yīng)的ci,它的計算方式如下:

eij是一個對準(zhǔn)模型,它計算了位置為i的輸入和位置為j的輸出之間關(guān)系的比重。它通過輸出的隱藏狀態(tài)si – 1(用來計算si及輸出狀態(tài)yi)和輸入序列的第j個隱藏變量hj計算而得。

通過將問答對以翻譯模型進(jìn)行訓(xùn)練(問題作為原語言,答案作為目標(biāo)語言),在新來一個問題時,可以在沒有任何歷史相似問題的情況下得到較接近的答案。然而因為目前的翻譯模型還不夠成熟,經(jīng)常翻譯出莫名奇妙的答案,讓人摸不著頭腦,如下所示:

你好->你好

很高興認(rèn)識你->我也是

你是誰->我是說,我們是朋友

我們是朋友嗎->不是

我們?yōu)槭裁床皇桥笥?>我們不知道,我們都不知道你們在哪里

達(dá)觀數(shù)據(jù)很厲害->我們知道

通過產(chǎn)生式的翻譯模型,即使基于大量的語料訓(xùn)練,很有可能效果還是不夠理想,因此經(jīng)常作為基于規(guī)則和檢索的問答系統(tǒng)的輔助方式。

4. 小結(jié)

本文介紹了智能問答技術(shù)的相關(guān)原理,講述了實現(xiàn)智能問答的一般方法。借助于深度學(xué)習(xí)技術(shù),智能問答效果比傳統(tǒng)機(jī)器學(xué)習(xí)提升20%左右。達(dá)觀數(shù)據(jù)擁有多年的自然語言處理技術(shù)積累,并且緊跟行業(yè)潮流,在文本語義、信息檢索、智能問答方面不斷深耕,助力各個企業(yè)享受大數(shù)據(jù)技術(shù)的成果。

【本文為51CTO專欄作者“達(dá)觀數(shù)據(jù)”的原創(chuàng)稿件,轉(zhuǎn)載可通過51CTO專欄獲取聯(lián)系】

戳這里,看該作者更多好文

責(zé)任編輯:武曉燕 來源: 51CTO專欄
相關(guān)推薦

2018-11-19 13:44:39

2009-01-20 14:47:19

ETL數(shù)據(jù)集成技術(shù)研究

2017-02-06 13:31:11

調(diào)度技術(shù)集群

2009-08-04 16:50:26

2011-11-30 21:54:11

ibmdwDominoSAP

2011-05-30 17:21:58

軟件測試

2010-01-18 22:54:40

2022-02-18 16:28:19

VR/AR交互互聯(lián)網(wǎng)

2022-05-18 18:09:33

戴爾

2019-04-26 05:33:47

IPv6網(wǎng)絡(luò)技術(shù)IPv4

2010-05-27 14:12:48

2012-11-07 14:00:05

2020-06-30 17:27:06

RPA應(yīng)用

2013-07-22 14:56:33

5G關(guān)鍵技術(shù)4G

2023-06-19 07:08:22

結(jié)構(gòu)化數(shù)據(jù)ChatGPT

2018-09-27 14:35:56

2022-05-31 10:11:55

金融行業(yè)云原生眾邦銀行

2009-10-22 09:55:31

php應(yīng)用程序安全防范

2022-01-25 00:06:05

云計算安全技術(shù)

2020-06-29 08:36:50

5G網(wǎng)絡(luò)技術(shù)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號