丁香五月天婷婷久久婷婷色综合91|国产传媒自偷自拍|久久影院亚洲精品|国产欧美VA天堂国产美女自慰视屏|免费黄色av网站|婷婷丁香五月激情四射|日韩AV一区二区中文字幕在线观看|亚洲欧美日本性爱|日日噜噜噜夜夜噜噜噜|中文Av日韩一区二区

您正在使用IE低版瀏覽器,為了您的雷峰網(wǎng)賬號(hào)安全和更好的產(chǎn)品體驗(yàn),強(qiáng)烈建議使用更快更安全的瀏覽器
此為臨時(shí)鏈接,僅用于文章預(yù)覽,將在時(shí)失效
人工智能 正文
發(fā)私信給CSDN
發(fā)送

0

深度RNN解決語(yǔ)義搜索難題

本文作者: CSDN 2016-08-15 22:34
導(dǎo)語(yǔ):語(yǔ)音識(shí)別在使用深度學(xué)習(xí)之后不再是難題,但是語(yǔ)義識(shí)別還是有一定難度,本文介紹了基于深度RNN的3中語(yǔ)義搜索模式。

雷鋒網(wǎng)按:本文作者張俊林,主要介紹了3種基于深度RNN的語(yǔ)義搜索模式。

本文討論如何用深度學(xué)習(xí)系統(tǒng)來(lái)構(gòu)造語(yǔ)義搜索引擎的問(wèn)題。這里所謂的語(yǔ)義搜索,是指的能做用戶查詢和搜索網(wǎng)頁(yè)之間的語(yǔ)義級(jí)別匹配,比如說(shuō),用戶輸入“Iphone”,雖然某篇文章講到了“蘋果公司正在試圖做新型的手機(jī)”,但是沒(méi)有明確說(shuō)iphone的字樣,那么即使如此也能夠?qū)⑦@篇文章找出來(lái)。傳統(tǒng)的搜索引擎對(duì)于這種情況是無(wú)能為力的,因?yàn)樗鼈兓旧线€是基于字面匹配作為排序的基礎(chǔ)的,沒(méi)有任何字面匹配的結(jié)果是不會(huì)被搜索出來(lái)的,即使兩者在語(yǔ)義上講非常相關(guān)也不行。

搜索引擎大家平常都會(huì)用,所以這塊不必說(shuō)。但是從技術(shù)角度講,搜索是在干什么事情?這個(gè)需要簡(jiǎn)單說(shuō)明一下。所謂搜索,就是說(shuō)我們手頭假設(shè)有10億個(gè)網(wǎng)頁(yè),形成文檔集合D,用戶想找一個(gè)信息,向搜索引擎發(fā)出用戶查詢Query。搜索引擎本質(zhì)上就是計(jì)算文檔集合D中每個(gè)網(wǎng)頁(yè)和用戶查詢Query之間的相關(guān)程度,越相關(guān)的排在搜索結(jié)果前列,就形成了搜索結(jié)果。

所以本質(zhì)上搜索就是對(duì)于兩個(gè)信息:Query 和某篇文檔Di,計(jì)算兩者之間的相關(guān)程度。傳統(tǒng)的方法是尋找兩者之間的特征重合程度來(lái)判斷的(此文我們不考慮鏈接關(guān)系等因素,純考慮文本匹配角度),比如TF.IDF啊,查詢?cè)~是否在標(biāo)題出現(xiàn)啊等等特征。

也就是說(shuō),對(duì)于搜索來(lái)說(shuō),可以將其改造成句子對(duì)匹配的問(wèn)題,即可以如下理解搜索問(wèn)題:

深度RNN解決語(yǔ)義搜索難題

意思是說(shuō),給定了用戶查詢和某篇文章,經(jīng)過(guò)映射函數(shù),給出兩者相關(guān)還是不相關(guān)的判斷,或者給出從1到5的不同相關(guān)程度的分類結(jié)果,1代表不相關(guān),5代表非常相關(guān):


深度RNN解決語(yǔ)義搜索難題

就是說(shuō)給定Doc和Query,利用神經(jīng)網(wǎng)絡(luò)構(gòu)造映射函數(shù),映射到1到5分值空間里面。

之前我們歸納過(guò)對(duì)于句子匹配問(wèn)題常見(jiàn)的幾種基于RNN的網(wǎng)絡(luò)結(jié)構(gòu),而本文給出將搜索問(wèn)題看做是典型的句子匹配問(wèn)題以及將其看做是特殊的句子匹配問(wèn)題的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)。我們可以將這種基于RNN構(gòu)建出的語(yǔ)義搜索神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)稱之為NeuralSearch結(jié)構(gòu)。就我的閱讀視野范圍來(lái)看,目前看到過(guò)CNN做搜索問(wèn)題的,還沒(méi)有看到RNN結(jié)構(gòu)的。當(dāng)然其實(shí)神經(jīng)網(wǎng)絡(luò)做搜索的工作相對(duì)來(lái)說(shuō)不多,這可能跟查詢太短文檔太長(zhǎng)有一定關(guān)系,至于這里介紹的方法是否有效我也不知道,本文只是把這個(gè)想法分享一下。

 在給出后續(xù)的RNN結(jié)構(gòu)前,先給出一個(gè)非常簡(jiǎn)單易行的非監(jiān)督的語(yǔ)義搜索模型。

|一種非監(jiān)督的簡(jiǎn)單語(yǔ)義搜索模型

其實(shí)你要想通過(guò)神經(jīng)網(wǎng)絡(luò)做語(yǔ)義搜索,有一種非常簡(jiǎn)單的方式。這里描述下其工作機(jī)制。

深度RNN解決語(yǔ)義搜索難題

                  圖1 抽象的語(yǔ)義搜索結(jié)構(gòu)

圖1給出了一個(gè)最抽象的神經(jīng)網(wǎng)絡(luò)做語(yǔ)義搜索的模型結(jié)構(gòu)。它的核心思想是:把文檔集合D中的每個(gè)網(wǎng)頁(yè)通過(guò)一定映射方法表示為Word Embedding的表達(dá)方式,同時(shí)把用戶查詢Q也映射到Word Embedding表達(dá)方式,在這里其實(shí)已經(jīng)分別將查詢和文檔映射到了語(yǔ)義空間了。然后對(duì)兩者通過(guò)相似性函數(shù)進(jìn)行匹配:


深度RNN解決語(yǔ)義搜索難題

然后根據(jù)相似性得分由高到低輸出就完成了文檔排序工作,給出了搜索結(jié)果。

之前有一些結(jié)合Word Embedding和IR的工作其實(shí)都是在這個(gè)抽象框架里覆蓋范圍里的,區(qū)別無(wú)非在于:從文檔的單詞列表如何映射出文檔的Word Embedding表示可能方法(圖1中的文檔WE轉(zhuǎn)換模塊)是不一樣的;從用戶查詢?nèi)绾斡成涑霾樵兊腤ord Embedding表示可能方法(圖1中的查詢WE轉(zhuǎn)換模塊)是不一樣的;相似性計(jì)算函數(shù)F可能也是不一樣的。

在這個(gè)框架下,我們給出一個(gè)最簡(jiǎn)單易行的做語(yǔ)義搜索的方法,在上述框架下,只需要做兩點(diǎn):

1. 如何獲得文檔的Word Embedding表示以及如何獲得查詢的Word Embedding表示?直接把單詞的Word Embedding表示累加或者求個(gè)平均即可,簡(jiǎn)單吧。其實(shí)這種方法效果并不一定就差,在有些場(chǎng)合直接累加效果還是挺好的,實(shí)現(xiàn)起來(lái)又異常簡(jiǎn)單;

2. 文檔和查詢的相似性度量函數(shù)如何???直接用Cosine計(jì)算就行。

這樣,就能夠構(gòu)造出非常簡(jiǎn)單可行的語(yǔ)義搜索系統(tǒng)了。由于采用的是Word Embedding表示,所以它肯定可以支持語(yǔ)義搜索,因?yàn)榧词刮臋n里面沒(méi)有出現(xiàn)過(guò)查詢?cè)~,只要文檔中包含和查詢?cè)~語(yǔ)義接近的單詞,那么他們的Word Embedding就非常像,就能算出語(yǔ)義相似性來(lái)。

從感覺(jué)上說(shuō),這種非監(jiān)督的方法肯定能增加搜索系統(tǒng)的召回率,因?yàn)樵葻o(wú)法匹配的文檔現(xiàn)在可以匹配了,但是理論上說(shuō)對(duì)于搜索精度來(lái)說(shuō)很可能是下降的,所以可能需要和傳統(tǒng)方法結(jié)合來(lái)一起用。

在圖1的抽象結(jié)構(gòu)上,其實(shí)我們很容易產(chǎn)生一個(gè)創(chuàng)新性想法,就是把個(gè)性化搜索融合進(jìn)來(lái),做個(gè)“個(gè)性化語(yǔ)義搜索引擎”,改動(dòng)很簡(jiǎn)單,只需要加入一個(gè)用戶個(gè)性化建模模塊即可,如圖2所示,只需要把用戶個(gè)人歷史通過(guò)“User歷史WE轉(zhuǎn)換模塊”來(lái)將用戶個(gè)性模型能夠表達(dá)為Word Embedding形式,就將個(gè)性化因素融合到這個(gè)語(yǔ)義搜索系統(tǒng)里面來(lái)了。

深度RNN解決語(yǔ)義搜索難題


            圖2 個(gè)性化語(yǔ)義搜索抽象框架圖

這個(gè)結(jié)構(gòu)目前好像我也沒(méi)看到過(guò)有提到的,應(yīng)該是種新想法,當(dāng)然,算是一種簡(jiǎn)單的新想法。而且如何構(gòu)建個(gè)性化模塊可能有很多不同的方法,所以這個(gè)結(jié)構(gòu)也是大有文章可作的。

|將搜索問(wèn)題看成典型的RNN句子匹配問(wèn)題

在之前的文章里面,我們從現(xiàn)有文獻(xiàn)里面歸納抽象出了用RNN解決句子匹配問(wèn)題的幾種常見(jiàn)神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)。既然我們把搜索問(wèn)題看做是句子匹配問(wèn)題,那么完全可以套用這些模型來(lái)解決這個(gè)問(wèn)題。當(dāng)然,直接使用RNN累加一個(gè)文檔Word Embedding未必是個(gè)很好的想法,但是這塊可以采用分句子給出Word Embedding,然后在累加等其它變體,這里為了簡(jiǎn)化說(shuō)明,采用簡(jiǎn)單方法描述。

深度RNN解決語(yǔ)義搜索難題


                   圖3 NeuralSearch結(jié)構(gòu)一

圖3是第一種可能的RNN解決語(yǔ)義搜索問(wèn)題的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu),我們可以稱之為NeuralSearch Model1。核心思想是:針對(duì)文檔D和用戶查詢Q,分別建立一個(gè)深度RNN神經(jīng)網(wǎng)絡(luò),用來(lái)抽取兩者的特征,然后將兩者特征拼接成MLP三層神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)的輸入層,進(jìn)行非線性變換,在這里來(lái)探討兩者之間的關(guān)系,之后給出分類結(jié)果。圖中W代表文檔中出現(xiàn)的單詞,而Q代表查詢中出現(xiàn)的單詞。與CNN模型比,RNN模型可以顯示地將單詞順序因素考慮進(jìn)來(lái)。

深度RNN解決語(yǔ)義搜索難題


     圖4 NeuralSearch結(jié)構(gòu)二

圖4是第二種可能的RNN解決語(yǔ)義搜索問(wèn)題的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu),我們稱之為NeuralSearch Model2。核心思想是:將文檔D和用戶查詢Q的單詞依次拼接起來(lái)作為深層RNN結(jié)構(gòu)的輸入,兩者之間用特殊分隔符EOS來(lái)進(jìn)行分隔,然后上面套上深層RNN結(jié)構(gòu),在此之上,可以用Mean Pooling來(lái)收集各個(gè)BLSTM單元的投票信息,并通過(guò)SoftMax給出最終分類結(jié)果。一樣的,圖中W代表文檔中出現(xiàn)的單詞,而Q代表查詢中出現(xiàn)的單詞。這種模型相對(duì)NeuralSearch Model1來(lái)說(shuō),在神經(jīng)網(wǎng)絡(luò)輸入層級(jí)就開(kāi)始對(duì)D和Q中單詞之間的關(guān)系建立聯(lián)系。

深度RNN解決語(yǔ)義搜索難題


                        圖5 NeuralSearch結(jié)構(gòu)三

圖5是第三種可能的RNN解決語(yǔ)義搜索問(wèn)題的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu),我們稱之為NeuralSearch Model3。這個(gè)模型和NeuralSearch Model2在輸入層以及之后的深度網(wǎng)絡(luò)結(jié)構(gòu)是一樣的,區(qū)別在于:在做最后分類之前,不是每個(gè)BLSTM單元各自做出投票,而是將雙向RNN的首節(jié)點(diǎn)和尾節(jié)點(diǎn)隱層狀態(tài)拼接起來(lái)作為最后分類的基礎(chǔ),因?yàn)檫@兩個(gè)狀態(tài)存儲(chǔ)了文檔D和用戶查詢Q之間的語(yǔ)義關(guān)系信息。

我們標(biāo)題說(shuō)的是語(yǔ)義搜索,但是好像半天沒(méi)講語(yǔ)義怎么體現(xiàn)出來(lái)的,其實(shí)最初那個(gè)簡(jiǎn)單語(yǔ)義搜索模型已經(jīng)能夠說(shuō)明這個(gè)問(wèn)題了,只要單詞是以Word Embedding的方式進(jìn)行的,那么其實(shí)已經(jīng)能夠處理那些字面不同但是語(yǔ)義相同的語(yǔ)義匹配問(wèn)題了,也就是說(shuō),它肯定是語(yǔ)義級(jí)別進(jìn)行匹配的。

上面三種結(jié)構(gòu)是將搜索問(wèn)題完全看成句子匹配問(wèn)題引出的,下面看看是否可以構(gòu)造具有搜索特性的網(wǎng)絡(luò)結(jié)構(gòu)。

|將搜索問(wèn)題看成非典型的RNN句子匹配問(wèn)題

因?yàn)樗阉鲉?wèn)題和一般的句子匹配問(wèn)題相比,有個(gè)明顯的特點(diǎn):文檔內(nèi)容長(zhǎng),而用戶查詢短,也就是兩者信息含量非常不同。在此基礎(chǔ)上看,是否采用典型的RNN句子匹配思路來(lái)做會(huì)獲得非常好的效果,帶有一定的不確定性因素,因?yàn)樯厦娴慕Y(jié)構(gòu)中查詢很短而文檔很長(zhǎng),拼接作為輸入是否查詢信息會(huì)被弱化,以及LSTM是否能夠捕獲如此長(zhǎng)距離的關(guān)系等影響都是未知數(shù)。

那么我們是否可以根據(jù)搜索問(wèn)題的特點(diǎn),來(lái)對(duì)RNN模型結(jié)構(gòu)進(jìn)行進(jìn)一步的改造,使得神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)更能符合搜索任務(wù)的特點(diǎn)。

深度RNN解決語(yǔ)義搜索難題


                     圖6 NeuralSearch結(jié)構(gòu)四

圖6是這種經(jīng)過(guò)特殊化改造的感覺(jué)更適合搜索場(chǎng)景的NeuralSearch結(jié)構(gòu),我們稱之為NeuralSearch Model4。首先,第一層神經(jīng)網(wǎng)絡(luò)首先把用戶查詢和文檔的每個(gè)句子根據(jù)RNN進(jìn)行語(yǔ)義編碼,上層仍然采用經(jīng)典的深層雙向RNN結(jié)構(gòu),與之前的網(wǎng)絡(luò)結(jié)構(gòu)區(qū)別在于:對(duì)于每個(gè)BLSTM單元來(lái)說(shuō),輸入由兩部分拼接而成,一個(gè)是Query 的語(yǔ)義編碼,另外一個(gè)是某個(gè)句子的語(yǔ)義編碼。兩者拼接后作為新的輸入,這樣每個(gè)BLSTM節(jié)點(diǎn)實(shí)際是在判斷每個(gè)句子和用戶查詢的相關(guān)程度,而通過(guò)雙向RNN結(jié)構(gòu)將構(gòu)成文檔的所有句子按照順序串接起來(lái),這里的RNN結(jié)構(gòu)是能體現(xiàn)句子之間的順序關(guān)系的。對(duì)于更深層的網(wǎng)絡(luò)來(lái)說(shuō),不斷重復(fù)這個(gè)過(guò)程,直到最高層的BLSTM產(chǎn)生輸出,而對(duì)于每個(gè)句子的輸出通過(guò)Mean Pooling進(jìn)行信息融合,然后通過(guò)SoftMax產(chǎn)生最后的分類結(jié)果,也就是{1,2,3,4,5}幾個(gè)不同相關(guān)類別中。這個(gè)過(guò)程可以理解為判斷查詢和每個(gè)句子之間的語(yǔ)義相關(guān)程度,然后每個(gè)句子做出投票,根據(jù)每個(gè)句子的投票結(jié)果構(gòu)造出文檔整體和查詢的語(yǔ)義相關(guān)程度。

可以看出,上述結(jié)構(gòu)把文檔轉(zhuǎn)換為句子的集合,而在每一層結(jié)構(gòu)中反復(fù)使用用戶查詢,同時(shí)在每個(gè)句子處反復(fù)拼接用戶查詢,通過(guò)這種方式,一方面可以試圖解決文檔和查詢長(zhǎng)度差異極大的情況,對(duì)用戶查詢進(jìn)行了強(qiáng)化,另外一方面這種將查詢的語(yǔ)義表示在不同層級(jí)間反復(fù)使用的思路,類似于Residual Network的那種建立輸入和深層網(wǎng)絡(luò)中間結(jié)構(gòu)之間的ShortCut直連思想。

有了上述幾種NeuralSearch神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu),可以采取傳統(tǒng)的Learning to rank的思路,用人工標(biāo)好的訓(xùn)練數(shù)據(jù)去訓(xùn)練神經(jīng)網(wǎng)絡(luò)。當(dāng)神經(jīng)網(wǎng)絡(luò)訓(xùn)練好之后,就可以集成到搜索系統(tǒng)里,來(lái)實(shí)現(xiàn)語(yǔ)義搜索的功能。

當(dāng)然,上述幾種RNN結(jié)構(gòu)做搜索是我自己拍腦袋想的,目前還沒(méi)有看到相似想法的相關(guān)文獻(xiàn),而我也沒(méi)有時(shí)間精力以及訓(xùn)練數(shù)據(jù)來(lái)對(duì)其效果進(jìn)行驗(yàn)證,所以上述的任意一種結(jié)構(gòu)用來(lái)解決搜索問(wèn)題是否有效也沒(méi)有結(jié)論。很可能其中某種會(huì)有效,也許都沒(méi)有效果。所以這里對(duì)此不能作任何結(jié)論性的假設(shè)或說(shuō)明,只是將一種自己認(rèn)為也許可行的思路分享出來(lái),有興趣的且有數(shù)據(jù)的同學(xué)可以試試。

最后再補(bǔ)充兩句,其實(shí)如果對(duì)Learningto rank有了解的同學(xué)可以看出來(lái),Learning to rank包含三種范型:?jiǎn)挝臋n方法、文檔對(duì)方法和文檔列表方法。上面幾個(gè)模型本質(zhì)上都是單文檔方法,其實(shí)可以將RNN神經(jīng)網(wǎng)絡(luò)和文檔對(duì)方法以及文檔列表方法結(jié)合起來(lái)構(gòu)建新的Learning to Rank模型,這塊我不確定是否已經(jīng)出現(xiàn),就我跟蹤的范圍看好像還沒(méi)有看到,但是很明顯的一點(diǎn)是,這個(gè)結(jié)合的出現(xiàn)只是時(shí)間問(wèn)題。而這種結(jié)合如果證明有效,就是比較大的創(chuàng)新,所以這塊是有很多文章可以做的,我是一沒(méi)有數(shù)據(jù)二沒(méi)有精力放在這塊,否則條件允許,這個(gè)方向是值得投入較大精力去摸索的。

雷鋒網(wǎng)注:本文轉(zhuǎn)自CSDN,轉(zhuǎn)載請(qǐng)聯(lián)系授權(quán),并注明作者和出處,不得刪減內(nèi)容。

雷峰網(wǎng)原創(chuàng)文章,未經(jīng)授權(quán)禁止轉(zhuǎn)載。詳情見(jiàn)轉(zhuǎn)載須知。

深度RNN解決語(yǔ)義搜索難題

分享:
相關(guān)文章

CSDN 深度文集

當(dāng)月熱門文章
最新文章
請(qǐng)?zhí)顚懮暾?qǐng)人資料
姓名
電話
郵箱
微信號(hào)
作品鏈接
個(gè)人簡(jiǎn)介
為了您的賬戶安全,請(qǐng)驗(yàn)證郵箱
您的郵箱還未驗(yàn)證,完成可獲20積分喲!
請(qǐng)驗(yàn)證您的郵箱
立即驗(yàn)證
完善賬號(hào)信息
您的賬號(hào)已經(jīng)綁定,現(xiàn)在您可以設(shè)置密碼以方便用郵箱登錄
立即設(shè)置 以后再說(shuō)