關鍵時刻,第一時間送達!
作者丨Nikhil Dandekar
譯者丨Teixeira10
譯者注:在本文中,作者從提問,解答,閱讀等方面介紹了Quora在2017年是如何將機器學習應用于網站的,同時給出了使用的模型。以下為譯文:
2015年,公司的工程副總裁Xavier Amatriain,關于如何在Quora上使用機器學習給了一個很好的答案。從那時起,在Quora上使用機器學習發展的越來越快,我們不僅為現有的機器學習應用程序開發了更大更好的模型,而且還擴展了我們使用機器學習的領域。在這個答案中,我將給出一個藍圖,來描繪出在2017年Quora是如何使用機器學習的。
機器學習使用實例
我將介紹產品的各個不同組成部分,并討論如何在其中使用機器學習。
1. 搜索信息
在Quora上分享知識的主要形式是問答。一開始,用戶可能會有一個問題需要解答,或者會有一些 “信息需求”,他們想要得到滿足。在Quora上有一個用戶問了一個新問題之后,會有一套機器學習系統來對問題進行理解,即從問題中提取信息,以幫助我們更容易地完成剩余的工作。所以,我將介紹一下這個問題理解系統。
我們關心更多的是答案內容的質量,但這一切都基于問題的質量。我們有一個ML系統,它拿到一個問題,就會對問題進行質量分類,以此來幫助我們區分高質量和低質量的問題。除了問題質量,我們還決定了幾個不同的問題類型,這幫助我們決定應該如何在之后的流程中處理這些問題。
最后,我們也會給不同主題的問題標記一個標簽,標簽決定了問題的主題。當大多數主題建模應用程序處理一個大文本和一個短小的主題時,我們會使用一個簡短的問題文本和超過100萬個潛在主題來標記這個問題,這也使它成為一個更具挑戰性的問題。
在所有的問題理解模型中,我們會使用問題本身及其內容的特性,例如:提出問題的用戶是誰,提此問題的所在地區等等。
滿足用戶信息需求的另一種方法是,讓他們搜索現有的問題,來答案他們正在尋找的問題。我們有兩種主要的搜索系統:Ask Bar search,在Quora主頁上會有最頂端的搜索欄,提供全文搜索,這是一個很深入的搜索,你可以通過點擊“搜索”來進行訪問。這些搜索系統使用不同的排序算法,它們在搜索速度、相關性和結果的廣度和深度上有所不同。
2. 得到問題的答案
問題理解系統的輸出在一個問題的生命周期中形成了一個重要的輸入:得到專家的答案。在這里也有機器學習系統,幫助我們更好地解決這個問題。
問答是Quora的一個特點,它允許用戶向其他用戶發送請求,讓他們為一個特定的問題寫答案。我們將請求答案看成是一個機器學習問題。所以,我們在這篇博文中重點討論了系統的細節:應用于請求答案的機器學習問題。
在A2A之外,我們的主要方法是通過Quora的主頁來匹配專家答案的問題。對我們來說,排序問題是一個非常重要的問題。我們考慮如上所述的問題屬性,用戶屬性,以及原始的和派生的特性作為排序模型的輸入,生成一個局部的、相關的和個性化的提要。這是幾天前我提供的截屏。
3. 讀取內容
正如你在上面看到的,它不僅可以包含你可以編寫答案的問題,它還包括值得閱讀的答案。對我們來說,答案的排序是另一個重要的問題。問題排序和答案排序使用類似的底層系統,但這兩個有著不同的目標,因此,在其底層模型中會使用不同的特性集。另一個使用機器學習對值得閱讀的答案進行排序的方式,是我們發送給用戶的電子郵件摘要。所有這些排序問題都是由高級的ML系統提供的,這些系統使用多個模型和許多不同的特性來得出最終的排序。
一旦用戶發現了一個有趣的問題,我們要確保他們在Quora上有很好的閱讀體驗。問題的答案排序是一個重要的ML應用程序,它確保了一個給定問題的最相關的答案會排在最靠前的位置。我們在這里詳細討論了如何用ML系統進行答案排序:機器學習方法應用于Quora上的答案排序。在答案的基礎上,我們也做評論排序,以確保你能在上面看到最相關的答案。所有這些排名系統不僅僅是根據簡單的贊同或反對的評論來排序,同時也根據這些用戶的特征,評論內容的質量,以及活動參與等角度,以得出最終排名。
我們也要確保在你閱讀了一個問題的答案后,你仍有很好的途徑來找到問題相關的內容,并且能讓你繼續保持良好的閱讀體驗。一個由機器學習推動的產品特性是相關問題。我們在問題頁面上顯示相關的問題,這可以幫助用戶更容易地瀏覽Quora上的問題,也幫助你在Quora上進行導航,比如相關話題(在主題頁上顯示)和熱門話題(在主頁上顯示)。在主頁上,我們還展示了一些主題供用戶關注,它們都是基于我們對用戶的了解而進行的個性化推薦。
上述ML系統的一個非常重要的元素是個性化。個性化包括使產品和基礎系統與Quora的每一個用戶相關聯。使ML系統個性化的一個重要組成部分是對用戶的理解機制。作為用戶理解的一部分,我們觀察并獲取用戶的各種特性,例如他們喜歡或不喜歡的主題,他們在不同領域的專業知識以及他們的社交網絡屬性。我們也有各種各樣的“user-entity”(用戶實體)推薦系統,比如:用戶主題推薦、用戶之間推薦等。所有這些個性化推薦不僅為 “Reading”應用程序提供了重要的基礎,而且還可以將問題與專家回答以及其他使用場景進行匹配。
4. 保持較高的內容質量
在Quora上,用戶體驗的關鍵之一就是內容質量。我們要確保我們的問題、答案、話題和其他內容的高質量,并且要一直保持高質量。為了做到這一點,我們使有一套機器學習系統來努力維護內容質量。以下是部分內容介紹:
重復問題檢測:這涉及到檢測具有相同內容的不同問題,并將它們合并成一個統一的問題。我們已經詳細討論了重復問題的檢索,甚至發布了一個重復的問題數據集,并舉行了一場Kaggle競賽供你參與。
濫用內容檢測:我們在Quora上有一項原則,“Be Nice, Be Respectful”(友善而尊重),但在網絡社區中保持這樣的原則總是很有挑戰性的。我們將機器學習與評論者結合在一起,以幫助識別攻擊性或傷害性的內容,這樣我們就能更好地保護用戶,并確保他們有一個很棒的Quora體驗。
垃圾郵件檢測:對于大多數受歡迎的用戶生成內容的應用程序來說,垃圾郵件檢測是一個重要問題,我們也一樣關注這個問題。許多不同的ML系統會進行聯合,共同處理垃圾郵件的內容和發布的用戶。
還有許多其他的用于維護質量的ML系統,但考慮到空間的利益,暫時不會使用它們。
5. 廣告優化
2016年,我們也開始做出商業化的努力。目前,展示的廣告與問題頁面的內容相關。我們使用機器學習來進行廣告CTR預測,這確保我們展示的廣告與用戶相關,同時這對廣告商來說也是高性價比的合作。機器學習在商業化領域的擴展才剛開始,在接下來的幾個月和幾年里,我們將擴大ML系統在這方面的使用。
當然還有很多其他的機器學習系統,但不會去使用它們,這是為了避免答案過于冗長。
模型和庫
我們的團隊使用最好的模型和工具來完成這項工作,同時也要確保我們在這些工具中保持標準化和重用性。以下是我們使用的一些模型(沒有特別的順序):
邏輯回歸
彈性網絡
迭代決策樹
隨機森林
(深度)神經網絡
LambdaMART
矩陣分解(SVD,BPR,加權ALS等)
矢量模型和其他NLP技術
k - means和其他聚類方法
等等
我們還支持一套廣泛的開放資源和內部庫,用于完成諸如Tensorflow、sklearn、xgboost、lightgboost、RankLib、nltk、QMF(Quora自己的矩陣分解庫)等工作。
ML平臺
自2015年以來,另一個令人興奮的發展是建立了一個新的ML平臺團隊。ML平臺團隊的目標是讓ML的工程師比其他公司更容易地使用機器學習,包括線下(模型培訓)和線上(模型服務)。在線上,ML平臺能幫助ML工程師構建和部署高性能、搞效率、實時的機器學習系統,這些系統具有很高的可靠性和可用性。在線下,ML平臺團隊支持ML工程師構建數據管道,以快速、標準化和可重用的方式進行特征生成和訓練模型。
在Quora上有一個專門的平臺團隊支持機器學習,這有助于加速ML開發的速度。它也使我們的系統能夠每天處理越來越大的數據。我們將在未來分享更多關于ML平臺團隊及其發展的細節。