天然語言處理在eBay的技術實踐


本文由 【FMI飛馬網】原創,原文連接:天然語言處理在eBay的技術實踐php

由飛馬網主辦的「FMI人工智能&大數據高峯論壇」,大會上各位專家帶給咱們的關於人工智能的深深的思考都還在繼續......
算法

在大會上,來自eBay的李睿老師爲咱們詳細介紹了NLP(天然語言處理)在eBay的具體應用及其運用場景。網絡


李睿性能

李睿,eBay Inc. Tech Lead數據科學家,項目負責人,負責研究與開發電子商務平臺上用到的分類識別算法。熟悉文字、圖像處理、分類的各類經典算法。大數據

NLP——搜索的支撐網站

在演講中,李睿給咱們介紹到,做爲電商企業,搜索功能是其重中之重。可是搜索由什麼支撐呢?搜索引擎

答案就是天然語言處理。除此以外,還有一些其餘的東西在支撐,能夠保證eBay在世界20多個國家都可以有網頁,可以說不一樣語言的人買東西,使得我在美國賣,在俄國的買家可以用俄語看到咱們的商品,可以用俄語進行搜索,這背後就是機器翻譯在支持。人工智能

那麼問題來了:怎樣使語音結構化,來提升搜索準確率?翻譯

李睿老師給咱們舉了個例子:因爲不一樣地區的文化差別,有些搜索關鍵詞在不一樣的地方含義不一樣。好比在歐洲有人輸入Iphone orange,他不是要搜索一個橘色的Iphone,他是要搜索叫orange的供應商所綁定的Iphone。這裏面須要經過質問識別,來識別出用戶在這個場合,這個詞究竟是什麼意思?只有正確的進行了這樣的理解以後,纔可以準確的進行搜索,準確的找到用戶想要的東西。orm

搜索跟分類器

用戶在eBay上,是想要買新的仍是舊的?搜索的出來的賣家產品是新的仍是舊的,怎樣作正確匹配?怎樣針對不一樣的用戶羣去作個性化推薦?這些都是分類器幫助個性化搜索。

分類器很大程度上可以幫到機器翻譯,就像上文提到的orange,要不要翻呢?要不要從英語翻到德語呢,是須要分場合的。若是它被識別成顏色,那就應該翻譯;若是識別成一個手機供應商,那就不須要翻譯。一樣的也是,若是識別出來這個詞是表示一個品牌,它也不須要翻譯。因此分類器背後,NER是一個很重要的組成部分。


NER的做用與目的

說到這裏,相信會有人問:NER的做用是什麼呢?目的是什麼呢?在演講中,李睿老師爲咱們作了很好的解釋。好比你在eBay上要找一個關鍵詞,它要把這個標題上每個單詞,儘量的把每個單詞,都分紅某一個列別,打成一個標籤。你好比說New,他須要把它標成一個Condition,Apple是一個品牌,iPhone6s,它但願可以把它識別成model爲,16GB,可以識成容量,ATT,Locked,綁定的就是手機供應商,SPACE GRAY是顏色,Smartphone是類別。

傳統的NER的作法很簡單,每個詞就是一個對象,這個詞有多長,裏面含有一些什麼樣的字母的組合,以及他這個先後文,它出如今句子的開頭或者結尾,它裏面是幾個詞,有了這些特徵以後,就能夠訓練一個Classifiers。

後來,神經網絡興起以後,你們就用詞向量,使得這些矢量能夠表明他的語意,並且矢量還能夠從新加減,後來就用詞向量,發現效果獲得了很是大的提高。固然,這是用谷歌本身的詞向量,而對於電商,由於它是用谷歌的New訓練出來本身的詞向量,不必定適用於電商,後來咱們就把本身的商品做爲訓練數據,訓練出了本身的詞向量,性能獲得了進一步的提高。這幾年,你們都作神經網絡,神經網絡的perform會更好,咱們訓練出了本身的神經網絡,perform獲得了進一步的提高。這些NER可以在各個領域對用戶體驗進行幫助。

eBay的類別推薦系統演進

據李睿老師介紹,eBay在美國的網站上有一萬六千個分類,因此對於C2C的用戶來講,有時候本身的商品會放在錯誤的分類裏面,影響買賣。而經過類別推薦,能夠將用戶的商品放在正確的門類中。

儘管有類別推薦,但仍是會有一些偷懶點錯或者故意點錯的現象出現。還有一些商品的評價,有一些是真正的評價,有一些是一些無關的髒話或者其餘等等,對於這些的狀況都是須要系統自動分類出來。

李睿老師給咱們舉了eBay的例子,eBay最先的推薦版本,Histogram版本很是簡單。由於雖然eBay有1萬6千個類別,你們類別的分佈是很是不均勻的,10%的商品都是手機,手機事實上是eBay賣的最好的一個類別。可能有0.0001%是賣一些記念品或者什麼樣的,分佈很是的不均勻。當你畫出柱狀圖以後,每個類別有一個機率,他根據這個機率把一個新的商品分到這個門類下去。實際上有50%的準確度。

後來你們發現這個辦法實際是太土了,就作了一步改進,這也是用的不少的算法,這也是NLP裏面用的不少的一個算法,他的原理是當你進行一個,你輸入賣的產品的標題以後,它把標題作一個搜索關鍵詞,利用搜索引擎找到跟你這個產品相似的標題,好比找到一百個產品或者五百個產品,他就看這些產品分屬於哪些類別,從50%提升到73%的準確度。但由於咱們的類別會常常改,每一個季度都會有一些增長或者刪減,他會自適應的適應類別的改變。可是它的壞處也是,剛纔那些放錯了類別的商品,會使得準確度降低。

因而在2015年的時候eBay就作了一些改進,好比說一百個類似產品裏面,他分屬於10個類別,這10個類別,不能簡單的根據哪一個類別的商品多就用哪一個類別,而是再加了一層邏輯,用本來屬於這些類別的商品,就是一些比較大的,比較多的數據量作的一個統計語言模型,這個也是NLP的一個重要的技術,統計語言模型,作了一個model以後,從新對這10個領域進行排序。這一步簡單的作法,就使得精確度從73%提升到了81%。這是一個很簡單的算法。

一樣的,神經網絡出來以後,神經網絡興起以後,咱們也想,神經網絡會不會使得它有更好的性能。咱們作了一些卷積神經網絡,你們覺得,最開始的時候主要是應用於圖象的,卷積,對圖象上抽取的特徵,一樣的思路,也能夠應用於文字上,作了以後發現效果果真不錯,從81%提升到了90%的精確度。可是,這個算法也有問題,有兩個問題,第一你須要很大的宣傳樣本,第二還有一個問題,就像咱們剛纔提到的,咱們的類別,每一個季度都在變,他變的很少。

在演講中,李睿表示,她的理念是,能用簡單的就不要用複雜的,尤爲在工業界裏面越複雜系統越容易出錯。

怎麼去用咱們的分類器在背後能識別出他們分別是商品自己,或者是套裝,或者是附件呢?具體的作法是這樣的:

好比來了一個標題,我把它符號化,首先這個標題叫作Red leather case for iPhone7。符號化以後,由於是你對一個詞典,Red不在我這個詞典裏面,我就把它標成星號, Leather case我把它標成A,for是至關於一個鏈接詞,就用數字4來替代,Iphone7是一個型號,它也是一個產品,因此用P,produce。有了這個以後,我就把它做爲一個統計語言模型,說白了,就是算一個機率,第一個字符是星號的機率,第二個字符是A的機率,第三個字符是4的機率,第四個字符是P的機率,作了語言統計模型以後,你們若是熟悉統計語言模型的同窗就應該知道,其實他要考慮上下文,他不能簡簡單單的只看當前詞或者當前符號的機率,他但願可以有先後文。

統計語言模型裏面就有所謂的,就是我只關心前一個詞,兩個詞的模型,給定前一個字符是A,下一個字符是4的機率。有人可能以爲這兩個詞不夠,我要三個詞,前面是星號A,下一個字是4的機率,這是最簡單的模型的概念,有了這個統計模型以後咱們就能夠訓練一個分類器了。

但爲何要作符號化這一步呢,不少統計語言模型都是用詞自己,好處是什麼?一樣的模型,能夠用在手機的類別下,能夠用在照相機的類別下,能夠用在電腦的類別下,它結構比較類似,你符號化以後,它會用一樣的模型適用於不一樣的狀況,這就是它的好處。這就是統計語言模型在NLP,它是NLP的技術,這是分類器的應用。

最後,李睿老師表示,技術是共通的,就像NLP、分類器、機器翻譯等技術,不僅是運用於電商,也能拓展到其餘領域。全部語言處理,文字處理背後,其實都是NLP的各類技術在支撐。明白了這個(NLP)天然語言處理的基本技術,你就能夠應用在各行各業裏邊。

最後,附上李睿老師現場演講的Q&A:

Q:請問符號化的過程是一個虛擬的過程仍是說是人工標註的呢?

A:你能夠作人工標註,咱們最開始是作的人工標註。固然你須要有一個詞典,你要知道在手機類別下,我有哪些關鍵字是可以被標註的,我知道Iphone7在個人字典裏面,因此我能把它標註成,有些是個人詞典裏面沒有的,我就不標。因此這個詞典的構造是人工構造的,固然你能夠想象,用NER的技術也能夠作一些標註,能夠作綠標註,而後人工的去調整,都是能夠的。

Q:請問要快速的對一個物品進行分類的話,如何保障效率呢,是隻是離線的嗎?

A:沒有,這個固然是線上的,神經網絡它訓練的時候確定是要變得更長,可能訓練好幾個禮拜,都有可能。關鍵是你在運用的時候,你在對新來的商品進行分類的時候,你不須要訓練,你只是用這個模型作一個估計。這一步,神經網絡時長是很快的,貝葉斯也很快,神經網絡運算稍微複雜一點,可是也都是在幾十毫秒的量級,不影響實時性的。

Q:你好,我想問一下,剛剛您講到上下文處理問題,能再講一下嗎?有沒有一些辦法或者算法?

A:上下文,有幾個辦法,一個辦法就是所謂的,就剛纔提到的,由於他用這個條件機率,前面出現一個詞,後面出現另一個詞,事先用訓練樣本把這些機率算出來,以後你來了新的樣本的時候,若是發現了一樣的先後文組合,就會把這個機率算進去,這是一種作法。

還有一種作法,這就是所謂的統計語言模型,它是一個馬爾可夫鏈的概念,他是以一個詞一個詞爲單位,就看在你的文章中出現這個詞的機率有多少,你來的新的樣本若是也出現這個詞就把這個機率用進去,他把兩個詞的短語或者三個詞的短語作成一個單位,把這個機率也算出來,到時候,當你的新的樣本里出現了兩個字的短語或者三個字的短語的時候就把這個機率用進去,各類方式都有,看你的訓練樣本的複雜度來決定。

Q:有了統計語言模型以後,是怎麼來計算套裝產品這個過程的?

A:有幾種作法,統計語言模型作出來以後,條件機率都算好了,你來了以後,固然咱們的作法是這樣子的,你在訓練的時候,你就把它切成各類,你把全部各類各樣的組合都挑出來,有一個A4P,這種挑出來以後,你就統計出他的機率,新來的這個樣本里邊,若是也出現了A4P,你就把這個機率存在裏頭,你就算出,固然有這個機率,出現其餘的機率,還有條件機率的模型,把它存在一塊。

相關文章
相關標籤/搜索