Quora 在 2017 年是如何运用机器学习的

Quora 的 Engineer Manager 讲解 Quora 在 2017 年如何运用机器学习优化问题检索、邀请、回答的排序和广告等。

早在 2015 年,我们的工程副总 Xavier Amatriain 就在 Quora 上写过一个关于我们如何使用机器学习的最佳回答:《2015 年 Quora 是如何使用机器学习的?

此后,机器学习在 Quora 上的使用大量增多。我们不仅对现有的机器学习应用,在更大更好的模型上研究得更深远,而且也扩大了我们使用机器学习的领域集合。在该回答中,我将试着重新绘制 Quora 对机器学习的使用在 2017 年的景象。

机器学习用例

我会贯穿产品的不同部分,来谈论我们在这些部分是如何使用机器学习的。

1.搜索信息

知识共享在 Quora 上的主要形式是提问和回答。这始于用户拥有一个问题,或他们想要满足的一种“信息需求”。当用户在 Quora 上提出一个新的问题之后,我们有一套机器学习系统完成问题理解,即使用一种有助于为我们简化后续流程的方式,从问题中提取信息。我将对问题理解系统做一些描述。

我们非常关心内容质量,而这一切都始于提问的质量。我们有一个机器学习(ML)体系对每个问题进行问题质量分类,并帮助我们区分高质量和低质量的问题。除了提问质量,我们也定义了一些不同的问题类型来帮助我们确定在之后的流程中该如何对待这个问题。

最后,我们也做提问话题的标签,来确定提问是关于什么话题。虽然大多数话题建模应用能处理大型文档文本和小型话题本体,我们仍使用简短的问题文本和超过一百万的潜在主题给问题做标签,这使给问题分类变得更具挑战性。

1

在所有的问题理解模型中,我们使用了提取自问题和上下文的特征。比如,问过该问题的用户、问过该问题的场所等等。

满足用户信息需求的另一种方法,是通过让他们搜索现有的问题来给予他们正在寻找的答案。我们有两个主要的搜索系统:位于Quora 主页顶部搜索栏的提问栏搜索,以及可以通过单击提问栏结果上的“搜索”选项,进行深度搜索的全文搜索。这两个搜索系统使用不同的排序算法,根据搜索速度、相关性、结果的广度和深度,其返回的结果有所不同。

2.获得问题的答案

问题理解系统的输出,形成了问题生命周期中下一步的重要输入:从专家那获得答案。我们同样有机器学习系统帮助我们更好地解决这个问题。

请求回答(Request Answers,以前被称为Ask To Answer)是 Quora 的一个功能。该功能允许用户发送请求给其他用户,让他们为一个特定的提问写回答。我们将请求回答定性为一个机器学习问题。在该博客帖文覆盖了我们对这个系统的细节:Ask To Answer as a Machine Learning Problem

在请求回答(A2A)之外,匹配待回答问题和专家答主的主要方式是通过 Quora 主页的推荐内容。对信息流中的提问进行排序对我们来说是个非常重要的问题。我们把问题属性(如前所述)、用户属性(更多介绍见下文),以及一系列其他的原始特征和派生特征考虑在内,作为排序模型的输入,为你生成一个热门的、相关的且个性的推荐内容。例如,这个几天前我的推荐内容截图。

2

3.阅读内容

如上面你在我的推荐内容里所见,推荐内容不仅包括你可以编写答案的问题,还包括值得一读的答案。对信息流中的回答进行排序是另一个对我们而言非常重要的机器学习问题。我们在推荐内容中的问题排序和回答排序使用的是类似的底层系统,但目标却大相径庭。因此,在它们的底层系统中使用了不同系列的特征。我们使用机器学习对值得一读的回答排序的另一个地方,是发送给用户的邮件摘要。所有这些排序问题,都由相当先进的机器学习系统,提供多个模型和许多不同的特征,来找出最终排序。

一旦用户发现了一个对他们而言有趣的问题,我们要确保他们在 Quora 上拥有最佳的阅读体验。为了确保与提问最相关的答案被排在最上面,对信息流中的回答排序也是我们一个重要的机器学习应用。我们对回答排序背后的机器学习的讨论细节见此处:A Machine Learning Approach to Ranking Answers on Quora. Staying on answers, we also do comment ranking。目光转回到答案上。我们也做评论排序以确保你在顶部看到与回答最相关的评论。并不单纯考虑支持和反对数,还引入了支持或反对该内容的用户、内容质量、参与活跃度等特征,从而决定最终的排序。

我们也希望确保你阅读一个特定问题的答案后,会有良好的渠道找到相关内容,然后继续你的阅读体验。这样由机器学习技术支持的一个产品功能是相关问题。我们在问题页面显示相关问题,他们帮助用户更容易地导航到 Quora 的问题空间。同时帮助你在 Quora 作为阅读器时导航的,是像相关话题这样的排序系统(在话题页面像这样显示)和热门话题(在首页上显示)。在主页上,我们也显示关注话题关注用户的板块,这两个都是个性化推荐系统,它基于我们对你的了解。

3

上述机器学习系统十分重要的一个元素就是个性化。个性化体现于构造与 Quora 每个用户相关的产品和底层系统。构造机器学习系统个性化的一大组成部分是用户理解的信号。作为用户理解的部分,我们观察并推导出各种用户特征,如他们喜欢/不喜欢的话题、他们在不同领域的专业知识,以及社交网络的属性。我们也有各种“用户实体”关联系统,例如用户-话题亲和度用户-用户亲和度等。所有这些个性化信号形成了重要的输入,该输入不仅在这部分中用于“阅读”应用,也用于匹配问题和专家答主和其他用例。

4.保持较高的内容质量

在 Quora 上,最佳用户体验的其中一个关键就是内容质量。我们想确保我们的提问、回答、话题和其他内容,开始于优质,并始终保持优质。为了做到这点,我们有一系列机器学习系统努力保持内容质量。这是其中的几个;

  • 重复问题检测:包括检测有相同意图的不同问题,并把它们合并为一个规范的问题。我们在重复问题上的探究谈论细节见此,还发布了一个重复问题数据集,启动了一个 Kaggle 竞赛让你可以使用它。
  • 侮辱性内容检测:我们在 Quora 有一个政策:“友善尊重(Be Nice, Be Respectful)”,但在在线社区,维护它通常是件富有挑战性的事情。我们使用机器学习结合人工审稿者,来帮助识别攻击性和伤害性内容,这样我们能更好的保护用户,并确保他们拥有最佳的 Quora 体验。
  • 垃圾内容检测:垃圾内容检测对于最热门的用户产出内容类应用来说,是一个重要问题。对我们来说也一样。我们有一些不同的机器学习系统联合着处理垃圾内容和发布垃圾的用户。

还有许多其他用于保障质量的机器学习系统,但为了节省篇幅我将不详述他们。

5.广告优化

2016 年,我们也开始盈利转化。目前,我们在提问页面显示与提问意图相关的广告。我们使用机器学习进行广告点击率预测,这确保了我们显示的广告与用户相关,并且对广告商来说超值。我们的机器学习在盈利空间里仍处于初期,在未来几个月和几年里,我们将大力扩展机器学习在这方面的使用。

4

比起上面所列的,我们还有另外的机器学习系统,但为避免该答案过长,我将不详述他们。

模型和库

我们授权团队为工作使用最优的模型和工具,而且确保我们通过这些工具能保持标准化和可复用。以下是我们使用的一些模型(排名不分先后):

  • 逻辑回归模型(Logistic Regression)
  • 弹性网络(Elastic Nets)
  • 梯度提升决策树(Gradient Boosted Decision Trees)
  • 随机森林(Random Forests)
  • (深度)神经网络((Deep) Neural Networks)
  • LambdaMART
  • 矩阵分解(奇异值分解(SVD)、贝叶斯个性化排序(BPR)、加权交替最小二乘法(Weighted ALS)等)
  • 向量模型和其他神经语言程序学(NLP)技术
  • k-means和其他聚类算法
  • 以及其他

我们也支持一系列广泛的开源库和内部库,连同其他一些内部库一起完成类似 Tensorflow、sklearn、xgboost、lightgbm、RankLib、nltk、QMF(Quora 自有的矩阵分解库)的工作。

机器学习平台

自 2015 年以来,我们另一个令人兴奋的发展,是新的机器学习平台团队的形成。机器学习平台团队的目标是使公司里其他的机器学习工程师在机器学习上的工作更容易,包括离线(模型训练)和在线(模型服务)方面的事。在线方面,机器学习平台拥有高可靠性和可用性的系统,能帮助机器学习工程师构建和部署高性能、高成本效率、实时的机器学习系统。离线方面,机器学习平台团队能提供机器学习工程师标准化和可复用的方法,来构建数据管道,更快地完成特征生成和训练模型。

在 Quora 有一个专门的平台团队支持机器学习,帮助我们加快机器学习的发展速度,使得现在比以前发展得快很多。它还更好地使我们扩展了系统,能每天都处理更大量的数据。在未来的回答中,我们将分享更多关于机器学习平台团队及其路径图的细节。

我希望这个回答在 2017 年 Quora 是如何使用机器学习上能给你一个好景象。如果上述任何内容使你兴奋,你知道我们在招聘不同的机器学习人才!空缺职位请查看我们的岗位页面

2 2 收藏 评论

关于作者:Lada

希望了解更多互联网、创业管理、创新思维、前沿技术和设计的知识。渐进明细,持续改进。 个人主页 · 我的文章 · 16 ·    

相关文章

可能感兴趣的话题



直接登录
跳到底部
返回顶部