eBay数据科学家李睿:自然语言处理在eBay的技术实践 数据 网络 类别 技术 分类器 阅读1593 近日,在飞马网主办的“FMI人工智能大数据高峰论坛”上,来自eBay的数据科学家李睿
eBay數據科學家李睿:自然語言處理在eBay的技術實踐
數據?網絡?類別?技術?分類器 閱讀1593?近日,在飛馬網主辦的“FMI人工智能&大數據高峰論壇”上,來自eBay的數據科學家李睿博士以“NLP(自然語言處理)在eBay的技術實踐”為題做了主題分享,主要涵蓋的應用包含:搜索(Search)、分類器(Classifiers)、命名實體識別(Name Entity Recognition)、機器翻譯(Machine Translation)等。
eBay Inc. Tech Lead數據科學家李睿
以下為李睿博士的演講及Q&A實錄,AI科技大本營做了不改變原意的整理:
李睿:大家好,今天給大家分享一些我在美國工作的一些經驗。?
背景介紹
首先自我介紹一下,我的本科和碩士是在浙大念的,相信在座有很多我的校友們。后來到美國去念的博士,博士論文是用模式識別的方式對圖像進行分類。畢業后,就到了工業界來做工程師,當時畢業的時候,模式識別專業很難找工作的,跟現在完全不一樣。陸續做過智能視頻監控,視頻防抖動,車牌識別等工作。
后來大概在2012年的時候,大數據興起了,我發現模式識別終于有用武之地了,于是到了eBay做大數據,到現在已經有5年多了。在eBay主要做一些分類器,這個分類器背后可以想像用了很多自然語言處理的技術,所以這也是我今天的主題。
簡單給大家介紹一下eBay,我相信大家應該對這個名字不陌生。事實上,eBay和亞馬遜一起,算是美國八大電商之一。它跟亞馬遜最大的差別是亞馬遜自營很多商品,我們像淘寶一樣只是一個平臺,給賣家和買家提供交換的平臺,我們沒有自營店,沒有物流。這是1955年一個叫皮埃爾的工程師做的,他周末在家無事可做,就做這么一個網頁,上去賣的第一件商品,就是家里一只壞了的激光筆,居然很快就有人買,后來迅速發展的很大規模。
事實上在1997年的時候,eBay想進入中國市場,由于各種原因,eBay自己的定位也有一些問題,最后很遺憾沒有進入到中國市場。
但是在美國,eBay還是一個大家用的比較多的網站,它有三大塊y業務:
- Marketplace(類似淘寶)
- 電影票銷售
- 分類廣告
不僅在美國,eBay在20多個國家都有網站,每個國家都用自己的語言,這背后是有機器翻譯的技術在支持。它現在有一億多的活躍的用戶,每一季度大概營收是在兩百億美金左右。eBay的總部在灣區,是整個灣區的高科技公司里面比較早使用大數據的,我們的很多平臺都是業界比較領先的。現在就講講自然語言處理在eBay有哪些具體的運用場合。
NLP在eBay的應用場景
搜索
在電商上買東西,最重要的功能是搜索,而搜索是由自然語言處理作為技術支撐的。
因為一般用戶搜索的時候輸入的是沒有結構化的一句話,或者短語,怎么樣使得它結構化?由于整個關鍵詞是有歧異的,比如說在歐洲,有人輸入iphone orange,他不是要搜索一個橘色的iphone,他是要搜索一個叫orange的供應商所綁定的iphone。這里需要結合使用場合和周圍的關鍵詞,才能夠準確的進行搜索,從而找到用戶想要的東西。
還有搜索根分類器,在eBay新舊好壞的商品都是可以賣的。搜索關鍵字里面,想買一個新東西還是舊東西,怎么在商品上知道我是賣新的還是舊的,能夠做正確的匹配。
另外有一些個性化的應用,每個人搜索的目的是不一樣的。比如說我很喜歡看電影,系統從我的購買歷史中,知道我是愛看電影的人;另外一個人愛看書,所以系統針對我的搜索結果就應該將電影排在前面,針對另一個人就應該將書的結果放在前面。
NER
NER(Name Entity Recognition)是個很重要的組成部分,這里給大家具體講一下。比如說這是一個簡單的eBay的商品,NER的作用是什么呢?目的是什么呢?首先它要盡可能把這個標題上每一個單詞,都分成某一個類別,打成一個標簽。
比如說New,需要把它標成一個condition;Apple是一個品牌;iPhone6s是model;16GB能夠識成容量;AT&T Locked 綁定的就是手機供應商,Space Gray 是顏色,Smartphone是類別。
傳統的NER的做法很簡單,每一個詞就是一個對象,這個詞有多長,里面含有一些什么樣的字母的組合,以及前后文,出現在句子的開頭或者結尾,里面是幾個詞,有了這些特征之后,就可以訓練一個Classifiers,我知道我是在手機類別下面,我可能會分7類,最早很簡單,用的是邏輯回歸或者線性回歸。
后來,神經網絡興起之后,大家就用詞向量,谷歌做出來的詞向量,使得這些矢量可以代表他的語意,而且矢量還可以重新加減,發現效果得到了非常大的提升。當然了,這是用谷歌自己的詞向量,不一定適用于電商,后來我們就把自己的商品作為訓練數據,訓練出了自己的詞向量,性能得到了進一步的提升。
后來這幾年,大家都做神經網絡,我們也覺得要試一試看,神經網絡是不是表現會更好,答案是肯定的。我們訓練出了自己的神經網絡,性能得到了進一步的提升。這些NER能夠在各個領域對用戶體驗進行幫助。就像我提到的搜索,還有機器翻譯,都能夠極大的幫助提升用戶體驗。
還有一個,可以想象,我想淘寶也是一樣的,實際上背后有一個很大的詞典來描述不同的類別。比如說在手機類別下有哪些品牌呢,有蘋果、三星、華為、小米,有什么型號呢?層出不窮的型號。這個詞典是怎么產生的呢?在過去詞典肯定都是人手工輸入的。可是手工輸入顯然是效率很低,而且容易出錯的一個方式,怎么樣能夠自動的去增加詞典里面的內容?NER可以很大程度的幫助。
Classifiers
還有一大塊是所謂的分類器——Classifiers。作為一個C2C平臺上的新賣家,用戶要賣一樣東西,但不知道賣在哪個門類下,因為eBay在美國的網站上有一萬六千個分類,有賣食品的,有賣日用品的,有賣電子商品的走廊。每個走廊里面有細分,到手機的走廊,有手機,有充電器,有保護膜,分的非常細。對于一個新的賣家而言,他不知道放在哪一個門類下面,如果放錯了,別人就找不到他的東西。我們希望能夠幫助這些C2C的用戶,使他們將商品放到正確的門類下。
還有一個,雖然系統給他推薦類別了,但是有的人還是可能會點錯,有的干脆是故意點錯。有這樣的例子,這是一個很常見的,我聽說淘寶也有類似的問題。用戶在手機的門類下面搜索iphone,大家都想買便宜的,會按價格排序,從低往高一排,發現全是手機殼,這些人希望通過這種方式,讓別人看得到,我們要做的是防止這種情況的發生。我們希望能夠把這些商品找出來,把它們放在正確的門類下,而且對賣家進行警告、懲罰。
要對商品進行分類,分成附件、主機、套裝。比如說這是一個翻頁筆,這是一個麥克風,比如說這是一臺電腦,這是一部手機,這是稱之為產品的類別,為什么要做這樣的事情呢?比如說用戶剛買了一個手機,是不是應該推薦他買個殼?買個保護膜?買個充電器?這是個性化的推薦,系統會把相關的商品聯系在一起進行推薦,所以這是為什么我們要做分類的問題。
剛才提到的,我輸入一個文學作品,到底是買書還是買電影光盤,都是一樣的。還有就是所謂的評價,我們上面有賣幾百萬,上千萬的商品,這個商品的評價好不好,對買家來說我是買華為的P9還是P10呢?要看看評價。有些說賣家出貨太慢,或者說這個賣家包裝的不好,或者這個賣家反饋非常的不及時,或者是有人甚至在上面說臟話,這些都不是真正的產品的評價。這也是一個分類問題,怎么樣分出真正的評價,或者是關于賣家的評價,甚至是臟話,這就是一個分類問題。
大家可以想象類似的分類問題還有很多種,這里不一一贅述,我給大家舉兩個實戰的例子。先講類別推薦,剛才提到我們有1萬6千個類別,如果說隨機推薦的話,準確度是很低的。?
在過去10年,eBay一直在這個問題上不斷的改進。因為最早的版本非常簡單,我們雖然有1萬6千個類別,類別的分布是非常不均勻的,10%的商品都是手機,手機事實上是eBay賣的最好的一個類別。可能有0.0001%是賣一些紀念品之類的,分布非常的不均勻。
當你畫出柱狀圖之后,每一個類別有一個概率,根據這個概率把一個新的商品分到這個門類下去,這樣很傻對不對?實際上有50%的準確度。后來大家發現這個辦法實際是太土了,就做了一步改進。
這是常用的算法,也是NLP里面用的很多的一個算法。它的原理是當用戶輸入賣的產品的標題之后,它把標題做一個搜索關鍵詞,利用搜索引擎找到跟這個產品類似的標題。比如找到一百個產品或者五百個產品,就看這些產品分屬于哪些類別,匹配度最高的產品,他就認為這個產品應該列在這個類別里面。這是最簡單的方法,但是效果還是不錯的,從50%提高到73%的準確度。
因為我們的類別會經常改,每個季度都會有一些增加或者刪減,它會自適應的適應類別的改變。但是它的壞處也是,剛才那些放錯了類別的商品,會使得準確度下降。于是在2015年的時候我們就做了一些改進。
比如說一百個相似產品里面,它分屬于10個類別,這10個類別,不能簡單的根據哪個類別的商品多就用哪個類別,而是再加了一層邏輯,用原本屬于這些類別的商品,就是一些比較大的,比較多的數據量做的一個統計語言模型,這個也是NLP的一個重要的技術,統計語言模型。做了一個模型之后,重新對這10個領域進行排序。這一步簡單的做法,就使得精確度從73%提高到了81%,這是一個很簡單的算法。
同樣的,神經網絡興起之后,我們也想,這個技術會不會使得它有更好的性能。我們做了一些卷積神經網絡,大家以為,最開始的時候主要是用卷積在圖像上抽取的特征,同樣的思路,也可以應用于文字上,做了之后發現效果果然不錯,從81%提高到了90%的精確度。
但是,這個算法也有問題,有兩個問題:
第一,需要很大的宣傳樣本;
第二,我們的類別,每個季度都在變,他變的不多,10個,8個。比如說像現在很流行的,小朋友玩的指尖陀螺,這個東西之后增加了一個類別,如果說你就用舊的分類的模型來分類的話,有可能永遠也不能推薦這個類別給賣家了。
它要每次根據類別的轉換,重新訓練模型,需要像KNN一樣有自適應的功能,這也是我這么多年的一個體會。有的時候好的性能要有代價的,訓練樣本變得復雜,增加了難度,訓練的時間增加了,訓練時間要好幾天,若干星期。
我的理念是,能用簡單的就不要用復雜的,尤其在工業界里面越復雜系統越容易出錯,除非性能有非常大的提升值得你這么去做。
還有我剛才提到的,怎么樣分辨出它是產品本身,或者是它是一個附件,還有它是不是一個套裝?比如說大家看這三個商品,這個紅框框出來的,他們三個都有一個共同的關鍵字——奧林巴斯。它們也有另外相同的關鍵字是型號和鏡頭。可是大家發現,價格差很多,有1099塊的,有100多塊的,有999塊的,為什么呢?因為第一個是套裝,它是機身加鏡頭,第二個是鏡頭本身。第三個就是裸機身,不難想象,完全不同的東西,價格是一定會有差別的。
我怎么去用我們的分類器在背后能識別出他們分別是商品本身,或者是套裝,或者是附件呢?給大家具體講一下怎么做的。
來了一個標題,我把它符號化,首先這個標題叫做Red leather case for iPhone7。符號化之后,因為對應的是一個詞典,Red不在詞典里面,我就把它標成星號, Leather case我把它標成A,for是相當于一個連接詞,就用數字4來替代,iphone 7 是一個型號,它也是一個產品,所以用P。
有了這個之后,我就把它作為一個統計語言模型,說白了,就是算一個概率,第一個字符是星號的概率,第二個字符是A的概率,第三個字符是4的概率,第四個字符是P的概率,做了語言統計模型之后,熟悉統計語言模型的同學就應該知道,其實它要考慮上下文,不能簡簡單單的只看當前詞或者當前符號的概率。
統計語言模型里面就有所謂的,就是我只關心前一個詞,兩個詞的模型,給定前一個字符是A,下一個字符是4的概率。有人可能覺得這兩個詞不夠,我要三個詞,前面是星號A,下一個字是4的概率,這是最簡單的模型的概念,有了這個統計模型之后我們就可以訓練一個分類器了。
大家會想,為什么要做符號化這一步呢?很多統計語言模型都是用詞本身,好處是什么?我同樣的模型,可以用在手機的類別下,可以用在照相機的類別下,可以用在電腦的類別下,結構比較相似,符號化之后,它會用同樣的模型適用于不同的情況,這就是它的好處。這就是統計語言模型在NLP分類器的應用。
剛才講到了之前類別的Classifiers,背后用NLP的各種技術來進行支撐,事實上我相信類似的用途,類似的應用在淘寶也好,京東也好,各種電商應該也是有相似的應用,它不只是用于電商,這些分類器可以拓展到其他的領域。比如說在電子支付,或者是銀行信貸這些,就有所謂的反欺詐。反欺詐其實就是一個簡單的分類問題,你的用戶的行為是正常行為或者是不正常行為。
機器翻譯
機器翻譯,也可以應用于非電商的領域,比如說前段時間碰到新華社的朋友,他就說新華社也有類似的,你要把別的國家的稿件翻譯成中文的。事實上這些年,所有語言處理,文字處理背后,其實都是NLP的各種技術在支撐。所以明白了這個自然語言處理的基本技術,你就可以應用在各行各業里邊。
我的內容就簡單講到這里。
Q&A環節
問題1:您好,我想問一下剛剛符號化的過程也是一個虛擬的過程還是說是人工標注的呢?
李睿:這個問題很好。你可以做人工標注,我們最開始是做的人工標注。當然你需要有一個詞典,你要知道在手機類別下,有哪些關鍵字是能夠被標注的,有些是詞典里面沒有的,那么就不標。所以這個詞典的構造是人工構造的,當然你可以想象,用NER的技術可以做綠標注,然后人工的去調整,都是可以的。
問題2:請問你們做過實時的識別嗎?可能我們計算量不是那么復雜,能快速的給出一個響應,但是我要是用深度學習,神經網絡這個,要快速的對一個物品進行分類的話,可能這個效率會下降很多,不知道你們考慮做過這種場景沒有?還是只是說離線的?
李睿:沒有。這個當然是線上的,神經網絡它訓練的時候肯定是要變得更長,可能訓練好幾個禮拜。關鍵是你在對新來的商品進行分類的時候,不需要訓練,你只是用這個模型做一個估計。這一步,神經網絡時長是很快的,貝葉斯也很快,神經網絡運算稍微復雜一點,但是也都是在幾十毫秒的量級,不影響實時性的。
問題3:你好,我想問一下,剛剛你講到上下文處理問題,能再講一下嗎?有沒有一些辦法或者算法?
李睿:一個辦法是,因為他用條件概率,前面出現一個詞,后面出現另外一個詞,事先用訓練樣本把這些概率算出來,之后來了新的樣本的時候,如果發現了同樣的前后文組合,就會把這個概率算進去。
還有一種做法,這就是所謂的統計語言模型,它是一個馬爾可夫鏈的概念,以一個詞一個詞為單位,就看在你的文章中出現這個詞的概率有多少。新的樣本中如果也出現這個詞,就把這個概率用進去,他把兩個詞的短語或者三個詞的短語做成一個單位,把這個概率也算出來,到時候,當新的樣本里出現了兩個字的短語或者三個字的短語的時候,就把這個概率用進去。各種方式都有,看你的訓練樣本的復雜度來決定。
總結
以上是生活随笔為你收集整理的eBay数据科学家李睿:自然语言处理在eBay的技术实践 数据 网络 类别 技术 分类器 阅读1593 近日,在飞马网主办的“FMI人工智能大数据高峰论坛”上,来自eBay的数据科学家李睿的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 巨头都在争抢无人驾驶 这家智慧停车公司却
- 下一篇: 如何通过牛顿方法解决Logistic回归