當前位置:
首頁 > 科技 > 問答系統中機器學習演算法應用:Quora 2017年ML平台規劃

問答系統中機器學習演算法應用:Quora 2017年ML平台規劃

問答系統中機器學習演算法應用:Quora 2017年ML平台規劃

本文作者 Nikhil Dandekar,Quora 機器學習團隊負責人。

早在 2015 年,Quora 技術副總裁 Xavier Amatriain 就如何在 Quora 中使用機器學習寫了一個很好介紹: How does Quora use machine learning in 2015?感興趣的讀者可以參看鏈接 [1]。

到今天,Quora 在機器學習的使用已經得到廣泛增長,不僅在構建更大更好的模型方面走得更深入,同時也擴大了機器學習使用的領域。本文將給大家介紹 Quora 在 2017 年機器學習規劃的全景圖。

機器學慣用例

下面將通過 Quora 產品的不同部分,來介紹我們是如何應用機器學習演算法。

1. 使用機器學習來發現信息

Quora 知識共享的主要方式是問答,這從用戶想要了解的問題或是「信息需求」開始。用戶在 Quora 上提出一個新問題後,我們有一套機器學習系統進行問題的理解分析,從提問中提取信息,從而進行後續流程。

什麼是問題理解question understanding)系統?

我們關心內容的質量,這一切都以從提問的質量開始。我們有一個 ML 系統來分析提問,並且進行問題質量分類question quality classification),幫助區分高質量和低質量的提問。

除了提問質量,我們還需要確定問題類型(question type),這有助於問題的後續處理流程。

最後,我們也有問題主題標籤question-topic labeling),用於確定提問的主題。雖然業界大多數主題模型都是處理大文本和較小的主題本體,但我們面臨的是小文本(一個簡短的提問)和大主題(超過一百萬個潛在主題來標記該提問),這使得它成為一個更具挑戰性的問題。

問答系統中機器學習演算法應用:Quora 2017年ML平台規劃

在所有的問題理解模型中,我們使用從提問及其上下文導出特徵,例如提問的用戶,提問的地區等。

滿足用戶發現信息需求的另一種方法是讓他們搜索現有的提問。我們有兩個主要的搜索系統:

  • 搜索條,它在 Quora 的頁首搜索欄提供支持;

  • 全文搜索,這是一個更深入的搜索,您可以通過在搜索欄結果中點擊「搜索」選項。

兩種搜索使用不同的排序演算法,這些演算法在搜索速度,相關性以及返回結果的廣度和深度方面各有不同。

2. 使用機器學習來獲得回答

問題理解系統的輸出,是問答系統下一個步驟——從專家那裡獲得回答的重要輸入。在這方面,也有機器學習系統來幫助我們更好地解決這個問題。

請求回答(Request Answers),以前稱為要求回答(Ask To Answer)是一個允許用戶將問題發送給其他用戶的功能,它要求被請求的領域專家為相關提問寫一個回答。

請求回答也是一個有趣的機器學習問題,想更多了解其中的技術細節可以參閱我們相關的文章: Ask To Answer as a Machine Learning Problem (見鏈接 [2])。

在 A2A 之外,將未答覆的提問與相關專家進行匹配的主要方式是通過 Quora 主頁 Feed。在 feed 中,問答的排序是一個非常重要的問題,需要綜合上述所說的提問屬性、用戶屬性以及一整套其他原始和派生特徵作為排序模型的輸入,以生成個性化 Feed。下面是幾天前本人 feed 頁面的截圖。

問答系統中機器學習演算法應用:Quora 2017年ML平台規劃

3. 利用機器學習來提升閱讀體驗

如上圖所示,feed 不僅包含可以回答的提問,還包括值得閱讀的回答。feed 的回答排序(answers ranking)是另一個對我們非常重要的機器學習問題。feed 中的提問和回答排序使用類似的底層系統,但目標非常不同,因此在其基礎模型中使用了不同的特徵集。

另一個使用機器學習來評估值得閱讀的回答是我們向用戶發送的「 電子郵件摘要」 。所有這些問答的排序都由相當先進的 ML 系統提供支持,ML 系統使用多種模型和許多不同特徵組合來達到最終排序。

如果用戶發現感興趣的問題,我們希望他在 Quora 上有一個好的閱讀體驗。回答的排序(Ranking answers for questions)是一個重要的機器學習應用,用來確保最相關的回答排在給定提問的頂部。我們在這篇文章詳細介紹 ML 背後的回答排序:A Machine Learning Approach to Ranking Answers on Quora[3]

使用機器學習的方法來對問題的回答排序。我們也對回答的評論排序,以確保用戶在頂部看到最相關的評論。

所有這些排名演算法超出了簡單的頂踩數排序,需要綜合使用相關互動用戶的用戶特徵,使用內容質量,參與活動等,以實現最終排序。

我們還想用戶在閱讀特定問題的回答後,有便捷的途徑來獲得相關內容並繼續閱讀體驗。「相關問題」(related questions)就是由機器學習來支持解決這個需求的產品功能。

我們在提問頁面上顯示相關問題,幫助用戶更輕鬆地導航 Quora 其他問題空間。在首頁上,我們還會顯示推薦關注的主題和用戶,這兩個都是基於我們對用戶的了解而實現的個性化推薦系統。

問答系統中機器學習演算法應用:Quora 2017年ML平台規劃

上述機器學習系統中非常重要的一個元素是個性化。個性化讓產品和底層系統與 Quora 每個用戶相關。ML 系統個性化的一個重要組成部分是用戶理解user understanding)信號。作為用戶理解的一部分,我們觀察和導出用戶的各種特徵,如他們喜歡/不喜歡的主題,他們在不同領域的專業知識和他們的社交網路屬性。

我們還有各種「用戶—實體」親密度系統,例如用戶—主題的親密度(user-topic affinity),用戶—用戶親密度(user-user affinity)等。所有這些個性化信號都是重要的輸入,不僅僅適用本節的「閱讀體驗」系統,而且也用在將提問與專家匹配等用例上。

4. 利用機器學習來提升內容質量

對 Quora 用戶體驗至關重要的事情之一就是內容質量。我們希望確保提問、回答、主題和其他內容從高質量開始,並在之後的生命周期同樣保持高品質。為了做到這一點,我們有一套機器學習系統來保證內容質量。以下是其中的幾個:

  • 重複問題檢測:這涉及檢測具有相同意圖的不同提問,並將其合并成一個規範提問。我們曾經詳細介紹過重複提問的探索 [4],甚至發布了一個重複的提問數據集,並開始了一個 Kaggle 比賽 [5]。

  • 濫用內容檢測:在 Quora 有一項政策,「友好,尊重」,但在線社區維護總是具有挑戰性。我們使用機器學習與人工審批相結合,來確定令人反感或有害的內容,以便更好地保護用戶,確保他們擁有極佳的 Quora 體驗。

  • 垃圾內容檢測:垃圾郵件檢測是大多數 UGC 系統都需要面臨的問題,我們也沒有什麼不同。我們有幾個不同的 ML 系統,通過它們組合來處理垃圾內容。

同時,還有許多其他 ML 系統用於維持內容質量,這裡就不展開了。

5. 利用機器學習來實現廣告優化

2016年,我們也開始了商業化運作。目前,我們在問答頁面上展示與提問意圖相關的廣告。通過機器學習演算法來進行廣告點擊率預測(Ads CTR prediction),從而確保展示的廣告與用戶相關,並為廣告客戶帶來高價值。我們的機器學習嘗試在商業化方面還剛開始,在未來的幾個月和幾年中,將擴大對 ML 的使用。

問答系統中機器學習演算法應用:Quora 2017年ML平台規劃

除了上面列舉,我們還有其他功能的機器學習系統,篇幅關係就不一一展開了。

使用的模型和庫

我們希望團隊使用最佳的模型和工具來完成這項工作,同時也希望這些工具能夠標準化和重用。下面是一些我們使用的模型(排序不分先後):

  • 邏輯回歸

  • 彈性網路

  • GBDT(梯度增強決策樹)

  • 隨機森林

  • (深度)神經網路

  • LambdaMART

  • 矩陣分解(SVD,BPR,加權 ALS 等)

  • 矢量模型和其他 NLP 技術

  • k-means 和其他聚類方法

  • 其他

我們還支持一整套開源和內部庫,用於完成工作,如 Tensorflow, sklearn, xgboost, lightgbm, RankLib, nltk, QMF(Quora 自己的矩陣因式分解庫) [6], 以及其他一些內部庫。

機器學習團隊

自 2015 年以來,對我們來說,另一個令人激動的發展就是組建了一個新的機器學習平台團隊。ML 平台團隊的目標是在離線(模型訓練)和在線(模型服務)方面為公司其他部門的 ML 工程師提供更便捷的機器學習功能。

在線方面,ML 平台通過系統來幫助 ML 工程師構建和部署高性能、高性價比的實時機器學習系統。

在離線方面,ML 平台團隊使 ML 工程師能夠以快速,標準化和可重用的方式構建數據管道,特徵生成和模型訓練。

在 Quora 擁有專門的機器學習平台團隊,幫助公司加快了 ML 開發速度,比以前快得多。同時也通過優化系統,每天可以處理更大更多的數據。我將在後續的文章中分享更多有關 ML 平台團隊的細節及其路線圖。

希望本文能給你一個很好關於 Quora 如何在 2017 年使用機器學習的全景圖。如果上述任何一個方面讓你激動,你應該知道我們正在招聘不同種類的機器學習崗位! 查看我們的招聘頁面 [7] 了解更多。

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 高可用架構 的精彩文章:

我們如何使用HAProxy實現單機200萬SSL連接
Java 微服務框架新選擇:Spring 5
程序員如何提問面試官?針對工程師、技術經理及CTO的提問指南
Elasticsearch前沿:ES 5.x改進詳解與ES6展望
如何構建日請求數十億次高性能高可用廣告系統:微博廣告架構解密

TAG:高可用架構 |

您可能感興趣

Google 開源機器學習演算法;2018年SO 資料庫調查
Gartner:2018年數據科學和機器學習平台魔力象限
Boston Dynamics計劃明年生產1000台機器狗
庫克揭幕iOS 12,機器學習CoreML推出2.0
戰爭機器終極版包括整個Xbox 360 Gears系列
結合Apache Kafka生態系統,談談2018年機器學習5大趨勢
Martech Focus:2018年人工智慧和機器學習將成為CMO的必需品
2013諾獎得主Michael Levitt:機器學習關鍵在歸納數據
今日芯品:Arm公布 Project Trillium 機器學習計算平台
小i機器人被再次寫入Gartner《2018年中國會話式AI市場指南》
Metricstory獲200萬美元融資,用AI和機器學習解讀數據
CODEX團隊宣布破解《戰爭機器4》Windows 10 UWP版
Zero to Hero:2017年機器之心AI高分概述文章全集
5月機器學習TOP 10熱文:Google Duplex,「換臉術」、網格單元
GitHub 熱門項目:機器學習編程 100 天
IBM稱旗下的Snap機器學習庫比TensorFlow快46倍
從華為P20 DxOMark的勝利來說AI與機器學習
Github 「stars」 平均 3558,最棒的 30 個機器學習實例
專訪 | 大規模集成Transformer模型,阿里達摩院如何打造WMT 2018機器翻譯獲勝系統
2018 MacBook Pro Core i9測試後對機器散熱限制的擔憂