跳到主要內容

深度 | 萬物向量化:用協作學習的方法生成更廣泛的實體向量

 2017-12-11
選自blog.insightdatascience
作者:Javed Qadrud-Din
來自 Insight 的 Javed Qadrud-Din 開源了一種通用的實體嵌入算法,相比谷歌的 word2vec 模型能實現更廣泛實體(包括名人、商家、用戶等)的嵌入、更高的準確率以及少 4 個數量級的數據需求量。
GitHub 鏈接:https://github.com/javedqadruddin/person2vec
Javed Qadrud-Din 先前曾在 IBM 公司的 Watson 團隊擔任業務架構師。他在 Insight 開發了一種新方法,使得企業能夠將用戶、客戶和其他實體有效地表示,以便更好地理解、預測和服務他們。
企業通常需要了解、組織和預測他們的用戶和合作夥伴。例如,預測哪些用戶將離開平臺(流失預警),或者識別不同類型的廣告夥伴(集羣)。這一任務的挑戰性在於要用一種簡潔而有意義的方式來表現這些實體,然後要將它們輸入一個機器學習分類器,或者用其他方法進行分析。
靈感來自 NLP
最近,自然語言處理(NLP)領域最重要的進展之一是來自谷歌的一組研究人員(Tomas Mikolov, Ilya Sutskever, Kai Chen, Greg Corrado, Jeffrey Dean)創建了 word2vec,這是一種將單詞表示爲連續向量的技術,這種連續向量稱爲「嵌入」(embeddings)。
他們在 1000 億個單詞(已開源)上訓練出的嵌入,成功地捕捉到了它們所代表的單詞的大部分語義含義。例如,你可以將「國王」的嵌入,減去「男人」的嵌入,再加上「女人」的嵌入,這些操作的結果會很接近「女王」的嵌入——這個結果說明谷歌團隊設法編碼人類文字含義的能力已經到了幾乎令人毛骨悚然的程度。
一些詞嵌入的例子(Mikolov et. al.)
從那以後,word2vec 一直是自然語言處理的基本組成,爲許多基於文本的應用程序(如分類、集羣和翻譯)提供了一個簡單而高效的基礎模塊。我在 Insight 的時候有一個疑問是,類似於詞彙內嵌的技術如何應用於其他類型的數據,比如人或企業。
關於嵌入
讓我們首先來想想「嵌入」究竟是什麼。在物理上,一個嵌入只是表示某個實體的數字列表(即一個向量)。對 word2vec 來說,這些實體就是英文單詞。每一個單詞擁有一個自己的數字列表。
通過訓練任務過程中的梯度下降進行不斷調整,這些數字列表被優化爲它們所代表的實體的有用表示。如果訓練任務要求記住有關對應實體的一般信息,那麼嵌入將會最終吸收這些一般信息。
單詞的嵌入
以 word2vec 爲例,訓練任務涉及提取一個單詞(稱爲單詞 A),並在一個巨大的文本語料庫(來自谷歌新聞中的一千億單詞)中預測另一個單詞(單詞 B)出現在單詞 A 的前後 10 個單詞範圍的窗口中的概率。
每一個單詞在訓練過程中都需要重複成千上萬次預測,對應的單詞 B 既包括通常一同出現的那些,也包括從不會出現在相同的語境中的那些(這叫做負採樣技術)。
這個任務要求每個單詞的嵌入編碼與這個單詞共同出現的其他單詞的信息。與類似的單詞一起出現的單詞最終會有類似的嵌入。例如,「聰明(smart)」這個詞和「有智慧(intelligent)」這個詞經常可以互換使用,所以通常在一個大型語料庫中,與這兩個單詞一起出現的那些單詞集合是非常相似的。因此,「聰明」和「有智慧」的嵌入會非常相似。
用這個任務創建的嵌入被強制編碼了很多關於這個單詞的一般信息,所以在不相關的任務中,它們仍然可以用來代表對應的單詞。谷歌 word2vec 嵌入廣泛用於自然語言處理的各種應用程序,如情緒分析和文本分類。
還有其他團隊使用不同的訓練策略設計的單詞嵌入。其中最流行的是 CloVe 和 CoVe。
任何東西的嵌入
單詞向量是多種 NLP 任務的必要工具。但是,對於企業通常最關心的實體類型來說,預先訓練的詞向量並不存在。對於像「紅色」和「香蕉」這樣的單詞,Google 已經爲我們提供了預訓練好的 word2vec 嵌入,但是並沒有爲我們提供諸如一個社交網絡、本地企業或是其他沒在 Google 新聞語料庫中頻繁出現的實體的嵌入。因爲 word2vec 是基於 Google 新聞語料庫進行訓練的。
企業關心的是他們的客戶、他們的僱員、他們的供應商,以及其他沒有預先訓練的嵌入的實體。一旦經過訓練,實體的矢量化表示就可以用以輸入大量機器學習模型。例如,他們可以用在預測用戶可能會點擊哪些廣告的模型上,可以用在預測哪些大學申請者很可能以優異的成績畢業的模型上,或者用在預測哪個政客有可能贏得選舉的模型上。
實體嵌入使我們能夠利用與這些實體相關聯的自然語言文本來完成這些類型的任務,而這類文本往往是企業手中一直保存着的。例如,我們可以通過一個用戶寫的帖子,一個大學申請人寫的個人陳述,或者人們關於一個政治家的推特和博客帖子來生成實體嵌入。
任何有對應文本的實體的公司都可以利用實體嵌入,當你考慮這個問題的時候,大多數企業都以不同方式擁有這樣的實體及對應文本:Facebook 擁有用戶和他們發佈或標記的文本;LinkedIn 擁有用戶和他們簡介的文本;Yelp 擁有用戶和他們寫的評論,以及商家和關於商家的評論;Airbnb 擁有住的地方和關於這些地方的描述與評論;大學擁有申請者和他們寫的申請論文。這樣的例子不勝枚舉。事實上,Facebook 最近發表了一篇論文,詳細介紹了實體嵌入技術。(論文鏈接:https://arxiv.org/abs/1709.03856)
我的 entity2vec 項目的目標是找到一種方法,使用與實體關聯的文本來創建能夠代表這些實體的通用嵌入。爲了做到這一點,我使用了一種類似於 word2vec 的負採樣的技術,將已知與某個實體關聯的大量文本中的信息提取到實體嵌入中。
實例 1:名人
爲了開發和測試這種技術,我嘗試了訓練嵌入來代表傑出人物(例如:巴拉克·奧巴馬、Lady Gaga、安吉麗娜·朱莉、比爾·蓋茨)。傑出人物是一個很好的起點,因爲,對於這些非常有名的人的名字,在預先訓練的 Google word2vec 嵌入是存在的,而且可以免費使用,所以我可以將我的嵌入和這些人的名字的 word2vec 嵌入的進行比較。
和 word2vec 一樣,我需要一項訓練任務,它將迫使實體嵌入來學習它們所代表的實體的一般信息。我決定訓練一個分類器,它可以從一個人的維基百科文章中獲取一個文本片段,然後學習猜測這個片段是關於誰的。
訓練任務將以幾個實體嵌入作爲輸入,並輸出文本片段所涉及的真實實體嵌入。在下面的例子中,分類器將會看到一個關於奧巴馬的文本片段,以及奧巴馬和另外三個隨機選擇的人物的嵌入。分類器將輸出一個數字表示哪一個輸入是奧巴馬的嵌入。
所有的嵌入都將在每個步驟中被訓練,所以不僅正確的人物嵌入將學習對應人物有什麼相關信息,其他不正確的嵌入也會了解它們所代表的人物不相關的信息有哪些。
這種技術在直覺上似乎是合理的,但是爲了驗證我的結果,我需要嘗試將這些訓練好的嵌入應用到一些其他任務上,看看它們是否真的瞭解了它們的對應實體的一般信息。
爲此,我在其他一些任務上訓練簡單的分類器,將實體嵌入作爲輸入,然後輸出一些分類,諸如實體的性別或職業。以下是這些分類器的架構:
這是得到的結果,以及與單純猜測和用 word2vec 得到的嵌入做相同任務的對比。
我的嵌入與 word2vec 嵌入表現非常接近,儘管我的嵌入所用的訓練文本更少——大約 3000 萬字 vs. 1000 億字。文本要求少了 4 個數量級!
實例 2:Yelp 商家
接下來,我想看看這項技術是否可以推廣。它是隻能在維基百科上管用,還是更通用。我嘗試應用同樣的技術,以 Yelp 數據集來訓練商家的嵌入。
Yelp 在網上提供了其數據集的一部分,包含商家以及關於這些商家的所有建議和評論。我用與訓練維基百科人物的嵌入相同的技術來訓練嵌入,除了這次的文本是 Yelp 裏對商家的評論,而實體是這些商家。這個任務可以表示成下圖:
經過訓練後,我在一項新任務上測試了這些嵌入——弄清楚某一商家屬於哪種類型的業務,例如:CVS 藥店屬於「健康」類,而麥當勞則屬於「餐廳」類。一共有十種類別,而一個商家可能屬於多個類別——因此這是一個多達十種標籤的多標籤分類任務,很有挑戰性。與經過培訓後的猜測結果相比較如下:
考慮到這一任務的難度,這是一個很好的結果!
總之,這是一個成功的實驗。我訓練了獲取自然語言文本中的信息的嵌入,然後通過在其他任務上驗證這些信息,我就能從他們那裏得到有用的信息。任何有配對文本的業務都可以使用這種技術,能夠在他們的數據上運行預測任務。
下一步和代碼
雖然這些結果看起來已經很有潛力,但還可以通過將結構化的數據和文本結合一起用來訓練嵌入,從而進一步提升結果,我將在未來探索這個思路。
原文鏈接:https://blog.insightdatascience.com/entity2vec-dad368c5b830

留言

這個網誌中的熱門文章

2017通訊大賽「聯發科技物聯網開發競賽」決賽團隊29強出爐!作品都在11月24日頒獎典禮進行展示

2017通訊大賽「聯發科技物聯網開發競賽」決賽團隊29強出爐!作品都在11月24日頒獎典禮進行展示 LIS   發表於 2017年11月16日 10:31   收藏此文 2017通訊大賽「聯發科技物聯網開發競賽」決賽於11月4日在台北文創大樓舉行,共有29個隊伍進入決賽,角逐最後的大獎,並於11月24日進行頒獎,現場會有全部進入決賽團隊的展示攤位,總計約為100個,各種創意作品琳琅滿目,非常值得一看,這次錯過就要等一年。 「聯發科技物聯網開發競賽」決賽持續一整天,每個團隊都有15分鐘面對評審團做簡報與展示,並接受評審們的詢問。在所有團隊完成簡報與展示後,主辦單位便統計所有評審的分數,並由評審們進行審慎的討論,決定冠亞季軍及其他各獎項得主,結果將於11月24日的「2017通訊大賽頒獎典禮暨成果展」現場公佈並頒獎。 在「2017通訊大賽頒獎典禮暨成果展」現場,所有入圍決賽的團隊會設置攤位,總計約為100個,展示他們辛苦研發並實作的作品,無論是想觀摩別人的成品、了解物聯網應用有那些新的創意、尋找投資標的、尋找人才、尋求合作機會或是單純有興趣,都很適合花點時間到現場看看。 頒獎典禮暨成果展資訊如下: 日期:2017年11月24日(星期五) 地點:中油大樓國光廳(台北市信義區松仁路3號) 我要報名參加「2017通訊大賽頒獎典禮暨成果展」>>> 在參加「2017通訊大賽頒獎典禮暨成果展」之前,可以先在本文觀看各團隊的作品介紹。 決賽29強團隊如下: 長者安全救星 可隨意描繪或書寫之電子筆記系統 微觀天下 體適能訓練管理裝置 肌少症之行走速率檢測系統 Sugar Robot 賽亞人的飛機維修輔助器 iTemp你的溫度個人化管家 語音行動冰箱 MR模擬飛行 智慧防盜自行車 跨平台X-Y視覺馬達控制 Ironmet 菸消雲散 無人小艇 (Mini-USV) 救OK-緊急救援小幫手 穿戴式長照輔助系統 應用於教育之模組機器人教具 這味兒很台味 Aquarium Hub 發展遲緩兒童之擴增實境學習系統 蚊房四寶 車輛相控陣列聲納環境偵測系統 戶外團隊運動管理裝置 懷舊治療數位桌曆 SeeM智能眼罩 觸...
你掛65號,到醫院發現才看到7號怎麼辦?這家公司想出好方法,現值50億美金 創新拿鐵   2018-12-19 17:00 209801   人氣       現正熱映中 熱門文章 你掛65號,到醫院發現才看到7號怎麼辦?這家公司想出好方法,現值50億美金 創新拿鐵 2018-12-19 17:00 防堵非洲豬瘟的大功臣!超萌檢疫犬敬業值班「精彩故事多」,奇葩陸客最令人哭笑不得… 中央社 2018-12-17 11:41 機票錢根本花的冤枉⋯又貴、又擠、又騙!世界「六大最雷景點」,不要再輕信網路「照騙」了! 周佳萱 2018-12-14 13:58 活活燒死193人!列車駕駛叫大家「坐好別動」卻拔鑰匙逃跑…韓「大邱地鐵縱火案」離譜內幕 黃瑜敏 2018-12-18 12:34 火鍋的靈魂:湯底的秘密⋯國宴名廚:只要「這樣做」,清湯白水也能煮出好滋味! 食力foodNEXT 2018-12-16 10:00 駭人實驗!失散19年三胞胎感人重逢,意外揭穿「失散真相」是一樁慘無人道的心理實驗… 黃瑜敏 2018-12-17 15:04 誰理你們!從SARS爆發冷血嗆聲,到非洲豬瘟疫情不通報…看見「兩岸一家親」不過是場笑話 潘渝霈   蔡佳妘 2018-12-18 17:47 向老闆提升遷遭拒!3年後他當上主管才看透真相:太認真、太專業、太忠誠都是升遷阻礙... 洪雪珍 2018-12-19 14:34 醫院藥師月薪5萬起跳、只要包藥發藥很好賺?過來人痛揭醫院「領藥得來速」的黑暗真相 時報出版 2018-12-17 14:19 男孩與美洲豹玩耍照片竄紅網絡引發深思 BBC中文網 2018-12-17 12:24 更多文章   熱門分享 你掛65號,到醫院發現才看到7號怎麼辦?這家公司想出好方法,現值50億美金 創新拿鐵 2018-12-19 17:00 ...

HTTP headers設置,讓網站更安全避免淪為挖礦機

https://meet.bnext.com.tw/articles/view/42595?utm_campaign=5741400&utm_source=SendPulse&utm_medium=push HTTP headers設置,讓網站更安全避免淪為挖礦機 梅干 2018/04/17 最近一位工程師好友,突然丟一個檢測平台的分數,起初梅干以為是SSL檢測,就進入測試一下,卻發現到,怎分數相當的低,最後研究了一下,原來網站不是有加入SSL憑證就代表安全無誤,就在今年的六月KeyCDN在官方部落格,發表了一篇關於站點HTTP headers配置,分別為X-XSS-Protection、X-Frame-Options、X-Content-Type-Options Content-Security-Policy、Strict-Transport-Security、Public-Key-Pins這六項進行安全的設定,讓網站更加的安全,不會淪為挖礦主機。 而要修正這個HTTP headers的配置,一點也不難,只需將設定參數加入.htaccess文件後,立即就可讓網站更加的安全,並且也可遠離挖礦惡意程式入侵主機,因此身為網站管理員,這個絕不容輕乎,因此也趕快來檢測看看,你的網站是否安全,以及要如何將網站進行修正。 HTTP headers檢測網站 網站名稱: securityheaders.io  網站連結: https://securityheaders.io Step1 首先,開啟.htaccess檔案後,並加入下方的參數設定。 # HTTP security settings start Header set Strict-Transport-Security: max-age=2592000; Header set X-Frame-Options: SAMEORIGIN Header set Referrer-Policy: no-referrer Header set X-XSS-Protection: "1; mode=block" Header set X-Content-Type-Options: nosniff # HTTP security settings end ...