知乎湾区机器学习分享会 - 现场实录

知乎湾区机器学习分享会 - 现场实录

2017 年 5 月 19 日,我们在美国湾区进行了首次机器学习分享会,知乎大数据团队负责人 @李大海 首次分享了知乎对于机器学习的思考和应用场景,并进行了现场 Q&A,实录如下:

大家好,我是李大海,现在是知乎的合伙人,同时也是知乎大数据团队的负责人。我在知乎的一个很重要的工作,就是推动机器学习技术的应用和落地。很高兴今天能来到湾区跟大家进行交流。

今天我们的分享会从两个问题展开,第一个问题是知乎机器学习的应用现状:我们到目前为止做了哪些事情,后续还要做什么;第二个问题是展望未来,我们希望机器学习能够给知乎带来什么样的想象空间,能够创作出什么新的革命性产品。

先来回答第一个问题,要说明「知乎是如何使用机器学习技术的」,需要先简单描述一下「知乎是什么」。今年是知乎成立的第 6 年。6 年前知乎刚上线的时候,是一个封闭的邀请式社区,在刚上线的一段时间内,用户量并不大。当时社区里讨论的话题大都集中在互联网和创业领域,是一个看起来有些小众的网站。那么 6 年后的今天呢?我们来看看,知乎上都有什么。

在知乎的话题标签云中可以看到,现在知乎的讨论已经变得非常多元化,从互联网到心理学,从电影到文学,从专业的天文学、数据分析和深度学习,到贴近生活的健康、运动、旅游、摄影等话题,都有人在讨论。从数量上来看,截止到目前,知乎上已经有 1500 万个问题,5500 万个回答,还有相当数量的专栏文章,这些内容被关联到 25 万个话题上。所以,到了今天,知乎已经是一个讨论面非常广泛的知识社交平台。

看完了内容,我们再来看看用户的情况。知乎用户 6 年来同样也在飞速增长,并且越来越多元化。知乎上既有李开复、马伯庸、贾扬清等一批现实生活中已经是「名人」的用户;也有以前默默无闻,但通过在知乎辛勤耕耘,拥有了一定影响力的优质内容生产者;另外还有像 @穷游锦囊@中国科普博览@微软亚洲研究院 这样的机构类用户。截止目前,我们拥有 6900 万的注册用户,每天有超过 2000 万独立设备访问和登录知乎,每月有上百亿的 Page View。

这些数据可以让我们对知乎的规模有一个直观印象。事实上,知乎已经成为世界上最大的中文知识社交平台,并且还在保持高速的增长。2016 年,我们没有花一分钱做效果推广,同时注册用户量、DAU 等指标大概翻了一倍。知乎为什么能够在这样的体量下还保持高速增长呢?

我们曾经做过用户调查,想搞清楚用户为什么要使用知乎。有的用户说他喜欢来知乎看新闻热点的评价,了解同一个事情的不同角度的观点,互相碰撞;也有人喜欢来知乎看大家的经验,帮助自己做消费决策:比如装修怎么做预算,职场第三年如何提升自己,等等;而有的用户主要是来分享自己的专业知识的。我们有个用户是房产律师,叫徐斌,他常常在知乎上回答购房过程中遇到的法律问题,由于答题过程中展现的专业度很不错,所以他开的知乎 Live 也很受欢迎,一场名叫「怎样租房不上当」的 Live,到目前为止有 8000 名听众购票入场。

可以看到,用户来知乎,无外乎做两件事,生产内容,或者消费内容。这两个点组合起来,构成了知乎的生态闭环。什么意思呢?更多更好的内容成就了知乎作为平台的粘性和吸引力,而吸引来的更多用户反过来催生了更加多样化的内容生产需求。同时,生产内容的用户也能从这个过程中受益,通过知识的分享和交流提升自我,也扩大自己的影响力。正是因为在这个闭环中,同时满足了用户的内容生产和消费的需求,才有了知乎的高速增长,有了知乎今天几千万的用户和内容。

所以,我们总结一下「知乎是什么?」 知乎就是一个连接海量用户的知识网络,是一个平台。我们的核心目标就是让这个内容生产和消费的闭环顺畅地运转,为用户提供一个认真、友善的讨论环境。

要实现这个目标,在社区规模比较小的情况下,是相对容易的,我们可以通过简单的产品策略和运营策略,保证内容生产和分发的效率,也能够通过人工运营方式来维持良好的社区氛围。但是,当社区达到今天的规模后,我们面临的运营压力也在飞速地增长,每天有几千万活跃用户,产生几十万的新内容以及几百万的互动行为。如果纯粹依靠人力来做社区运营,效率会越来越低,越来越不可行。

因此,知乎要用机器学习来做什么?简单的答案是,对用户和内容进行更精细的建模,提升内容生产和内容分发的效率。具体来说,主要涉及到 6 个领域的应用,他们分别是用户画像、内容分析、排序、推荐、商业化和社区管理。接下来我们详细讲一下,过去在这 6 个场景下都做了一些工作。

首先是用户画像。可以说,准确有效的用户画像是所有个性化策略的基础。我们现在初步建立了一套用户画像体系,对一些重要的用户属性进行了挖掘,例如:用户的活跃度,最近常用登录地点;衡量用户影响力的 people rank,以及作为生产者在某个领域下的权威度和作为消费者对某个领域的兴趣,等等。这些用户标签被用在了个性化排序、推荐、问题路由等一系列任务中,取得了不错的效果。接下来,我们还会对用户的属性进行更深入的挖掘,例如,我们计划对用户进行社群分析,并且定位信息传播网络中的关键节点,也就是所谓的 KOL;我们也希望用户画像中的标签可以变得更加「精细」和「可预测」,举个形象的例子,如果一个用户最近对「怀孕期间的健康」这种话题比较感兴趣,那么我们可以大胆推测,几个月后,他可能会对「育儿」相关的话题产生兴趣;我们还希望通过用户的分享来重构他的人物设定和个人背景,等等。总之,我们希望在个人画像这个领域的积累,能够让知乎更加全面的了解我们的用户,更好的刻画他们,更好的满足他们的需求。

说完了用户画像,我们再来看看内容分析。知乎上每天都会产生大量的新内容,它们都是异构的,有提问、回答、文章、评论,后续我们还会逐渐上线视频,这些内容需要在被生产出来后,第一时间打上各种各样的标签。为此,我们构建了一条统一的内容分析流水线,保证每条内容发生变化时,都会立刻进入这条流水线进行处理,然后实时把分析结果同步给搜索、推荐、社区等各个业务。目前,从内容进流水线到出流水线,平均时延在 10 秒左右,这种实时性较好地满足了我们的业务要求。目前,在这条流水线上,我们已经针对文本、图像、音频等数据进行了一些基础分析,例如文本分类、命名实体识别,色情图像检测和低质图片检测,音频降噪等等。我们也会逐步往这条流水线上添加更多的组件,最近在做的一个重要工作,就是从不同维度刻画内容质量,包括内容的时效性、专业性、严肃性、准确性,等等。我们还计划通过更深度的语义分析,来帮助我们对内容自动创建摘要,让用户在 Feed 流这样信息密集场景中,不用点开卡片就能做出初步判断,提升筛选内容的效率。

用户画像和内容分析都是基础工作,很大程度上来讲,不是用户直接可见的。下面我们来介绍更上层的业务场景。首先说一下排序,排序是内容分发场景中非常重要的一环,排序做得好不好,直接决定了我们能不能在第一时间把合适的内容推给用户。在知乎我们主要使用 Pointwise 和 Pairwise 的 Learning to Rank 算法来处理我们的排序问题。知乎的排序主要有三个典型的场景:

  • 第一个是首页 Feed 流。用户进入知乎,Feed 流是第一入口,用户在信息流看到的内容是什么样子,他就会认为知乎上的内容是什么样子。所以信息流做得好不好,会直接影响到用户留存、停留时长、以及用户浏览深度,等核心指标的变化。

  • 第二个是搜索结果排序,我们目前使用 Learning to Rank,主要解决一些不同类型的内容如何混排的问题;

  • 第三个场景是同一个问题下不同回答的排序:知乎上比较热门的问题,都会有很多的回答,有的问题下甚至会有几千个答案,如何对这些答案进行排序,也是一个很重要的课题。除了考虑用户投票的特征之外,还需要考虑内容本身的文本特征,例如内容格式、内容质量、答案和提问的相关性,等等。同时,我们还会考虑作者和投票的用户在这个问题领域的专业性,确保「专业的答案」不会被埋没。

我们在这些场景下使用了 Learning to Rank 技术后,取得了不错的效果。还是拿首页来举例,原来我们的首页排序算法是类似 EdgeRank 的策略,经过过去两年的优化,各种指标都趋近平稳,很难有明显的提升。而在改用 Learning to Rank 技术,并进行排序优化后,三个月之内,点击率上升了 40%,用户停留时长上升了 20%,留存率也有小幅的提升。

当然,仅仅是这样,还是不够的。目前我们也在探索 Learning to Rank 技术的更深入优化。一些可能的方向包括:

一是多目标的帕累托优化。大家知道,很多业务场景都是需要进行多目标优化的,只看一个指标,很容易陷入局部最优的陷阱之中。仍然以首页信息流排序举例,知乎的首页是需要考虑很多指标的,包括用户的点击率、停留时长、浏览深度、用户点击不感兴趣的比例,以及用户可能评论、互动的比例,等等。我们曾经在这个过程中,做过一版算法的优化,主要是针对点击率的。点击率的确提升了很多,但是在评估的时候会发现,用户的首页里会出现很多低质内容,例如「抖机灵」、「吵架纠纷」、「标题党」等。这些内容抓人眼球,用户点击的可能性比较大,但是这些内容对用户的价值并不大,曝光过多反而会对社区的氛围和调性带来负面影响。在这种情况下,我们希望把经济学中的帕累托优化等思想引入到 Learning to Rank 的场景中来,促进各种指标的协同提升。

第二个方向,是用好一些实时特征,让模型除了能反映用户的稳定偏好之外,还可以考虑到当前的实时状态,及时做出调整。例如,如果一个用户是巴萨的球迷,很喜欢看站上各种巴萨的讨论,但也许昨天巴萨输球了,很不高兴,不想看到任何相关的内容,那么理想化的状态来看,我们的信息流服务,就应该能在最短时间里,发现这个变化,迅速做出调整。

下一个业务场景是推荐。知乎上的推荐主要分成两种,一种是针对内容推荐相关内容,一种是针对用户推荐可能感兴趣的内容。我们陆陆续续做了一些推荐工作,都是面向业务实现的。今年年初,我们启动了统一推荐引擎计划,基于 Prediction IO 和 Elastic Search 等开源系统,构建了知乎的统一推荐工程框架,统一了现有的大部分场景。推荐接下来要做的事情主要有两个,一是实现一个完备的推荐算法库,计划支持各种推荐算法,包括像 Explore & Exploit 算法群,协同过滤,内容关联性推荐,Deep & Wide 方向算法框架等等,提升业务进行小流量实验的效率;二是,把推荐跟排序结合起来,在首页或者搜索这样的入口级场景,加入一些推荐结果,和原来的内容进行混合排序,为用户进行兴趣探索和拓展,帮助用户快速地发现其他优质内容,帮助他们发现更大的世界。

排序和推荐都是比较明确的用户场景,主要目的是实现用户和内容的高效匹配。相对来说,商业化这个场景会更加复杂一点。大家知道商业化产品和用户产品的不同,在于商业化中引入了「广告主」这个新角色,需要在用户、平台和广告主三方的利益之间寻求一种平衡。知乎的商业化探索是从去年开始的,截止目前,我们已经搭建了一个商业系统雏形,实现了流量预估、广告定向投放、CTR 预估、智能 Pacing 等一系列功能。而随着今年业务规模的扩大,我们也需要更多有效的工具,并且用机器学习技术武装它们。例如:

  • 智能化的广告销售工具,帮助团队更好地发现潜在广告主;

  • 广告质量的预判和审核工具,知乎是一家非常重视用户体验的公司,我们进行商业化探索的时候也是非常谨慎的,不仅要保证用户尽量不被广告打扰,还希望广告也能给用户带来价值。过去一年,我们的商业运营团队花了很大功夫去保证广告的物料质量,所以用户对站上的广告是普遍持接受和理解态度的,广告的转化效果也不错。但是在广告规模起来之后,单纯靠人力就不能完成这样的质量保证了,我们需要一些机器学习机制,来辅助人工判定广告物料的质量。

  • 智能广告主平台,帮助广告主更优化地设定各种投放计划和定向方案。

当然,随着我们商业化进程的前进,我们相信还会有更多的机器学习的挑战在等着我们。

最后我们来谈谈最后一个场景,也就是我们的社区管理。一个良好的社区需要良好的讨论氛围。我们使用机器学习技术进行了大量的工作,来提升社区管理同事的工作效率。它们主要包括:

  • Spammer 用户的识别:Spammer 用户类型很多样,其中主要包括爬虫用户、刷粉用户、营销用户等等;

  • 对低质内容和违规内容的自动侦测和处理,例如色情图片和语言暴力识别,等等。

如果我们把知乎比作城市的话,社区管理就像是一个基础建设的工作,类似于修建道路、疏通下水道。一个城市的基础建设做好了,才能吸引更多的人入驻;但一个城市的规模扩大了,这些基建工作当然也会变得越来越繁重。所以以后我们还计划投入更多精力,来帮助社区管理团队提升效率:

  • 一方面,进一步提升我们对低质内容的识别准确率以及覆盖率。例如要增加识别营销软文、网络谣言的能力,尽可能减少对社区的损害。

  • 另一方面,希望能够引入智能客服机器人,提高对用户举报、用户反馈等事务的处理效率,这项技术当前在一些电商网站中已经得到了很好的应用,我们也期望能够通过这项技术,来减轻社区管理团队的工作量,提升用户的满意度,使得用户发出反馈后,能尽快得到响应。

上面简单介绍了知乎目前的机器学习使用情况,主要集中在 6 个场景:包括用户画像、内容分析、排序、推荐、商业化和社区管理。归根结底一句话,就是将机器学习技术用于内容的生产和分发,提升效率。我们相信,随着我们的工作深入,以及机器学习技术本身的发展,我们能做得越来越好。除了这种渐近式的改进,,知乎还希望机器学习技术帮我们做到什么事情呢?用一句话来描述,就是:希望知乎不限于「分发」内容,还能更深入地「理解」内容。

大家可以看到,在「内容生产」和「内容消费」的闭环中,知乎作为平台,更多是在发挥「信息路由」的作用,促进内容的生产,然后投递到不同用户手中。如果说这些内容是宝贵的矿石的话,那么知乎的角色,更类似于一个矿产的集散中心,这些矿产能被发掘出多少价值,主要依赖于用户自己。我们希望,未来知乎能够对这些矿产进行一定程度的加工,进一步提升用户获取知识的效率。举个例子,前面有用户说过,喜欢来知乎看大家对同一个新闻的各种不同观点。设想一下,如果知乎能够把这些观点分门别类总结和聚集起来,让用户更容易掌握全局,节省一个回答一个回答翻看的时间,那将是非常有价值的。

这个工作要涉及到两个方面:一方面是从用户生产的非结构化内容中抽取知识和观点,变成知识库的一部分;另一方面,要能把知识库的内容转变成用户友好的产品。

先说从非结构化的内容中,抽取结构化的信息。目前业界有一些现有的操作和研究,例如知识图谱技术。我们希望从知乎的海量内容中,挖掘出各种知识和见解,存储起来,被进一步索引和利用。那么知乎的知识库建设困难在哪儿呢?主要是,知乎的内容形式比较复杂,除了可以结构化的属性信息和关系信息之外,还包括其它形式多样的知识和见解,例如对科学定理的论述、针对某些事件的评价,等等;知乎上的内容也有开放性的问题:讨论不局限在特定的领域,而是一个开放的、不断扩张的领域集合;另外,用户的讨论也会常常出现非常新颖的角度。

当然,相对于其他公司,知乎在知识和见解的结构化方面也有优势。因为知乎上的内容质量相对较高,同时用户的互动行为和内容构成了一张信息量丰富的网络。使得我们的数据具有极高的信噪比,这也为信息抽取工作提供了很大的便利。

假设我们已经神奇地完成了上一个步骤,建立了一个强大的知识库,那么我们应该如何把这个知识库产品化呢?我们同样期待机器学习技术能够有帮助。其中的一个设想是,构建一个智能问答产品,使用自然语言生成手段,以更加自然和易于理解的方式,将知识库中的信息提供给用户;如果更进一步,我们是不是可以让「知乎」成为一个聪明的大脑,能够和用户进行更自然的对话交流,并以及形式更加丰富的方式传递信息呢?大家都知道,如果限定领域范围,这个事情是相对好做的,但要面对一个通用的知识库,将是非常困难的。这也是业内的一个比较前沿的研究方向,国内外很多机构都在做类似的研究,我们也希望知乎能够在这方面有自己的积累。

以上就是今天分享的主要内容,主要讲了两个问题,一是知乎目前的机器学习应用现状;二是知乎对机器学习应用的未来展望。当然,这些东西要想实现,还需要有更多的机器学习大牛加入我们,一起来增加知乎的产品价值。这也是我们来到湾区宣讲的初衷。

所以接下来是一个小广告,对,我们在招聘,不管是算法大神还是刚毕业的机器学习相关毕业生,不管你在国内,还是国外,不论我们相距多远,我们都求贤若渴,至少我们可以先交流起来。

(欢迎大家投递简历,招聘链接:知乎网申系统--招聘详细

对了,还有另一个小广告,这个月我们正在举办「知乎·看山杯机器学习挑战赛」, 5 月 15 号正式开赛, 8 月 15 号结束。这次的比赛,知乎提供的训练数据是问题和话题标签的绑定关系,参赛者的目标是提供最优的自动标注模型。我们提供了 300 万问题和 2000 个标签,每个标签对应知乎上的一个「话题」。也欢迎大家的加入。


谢谢大家~!


Q & A 部分

Q:在你们的招聘职位中,有涉及到 CV 方向的部分,想了解下在这方面,你们毕竟关注要做哪些方面的内容?

A:接下来知乎会支持视频、 GIF 等其他格式的内容,让大家能够使用更多元的表达方式来传达思想。有了这些表达形式,我们很自然的就需要对这些内容进行理解。所以在 CV 上,我们主要还是需要图像、视频理解方向的工作。我们会在内容分析的 pipeline 里,增加离线解析到的视频和图片的 meta data。这些 meta data,简单形态就是标签;复杂的形态,则可能会与某一祯上有什么语义上的内容相关了。目前这部分的工作才刚起步,我们也还需要进一步安排具体的工作。

Q:对于各种模型的效果,知乎有做在线实验吗?在线实验的效果评估你们是怎么做的呢?是说就是一般性的随机抽一些数据,还是有什么特殊的?

A:在线实验是必须要做的。另外,我们也会在上线前先使用 NDCG 或者 AUC 等方式先做上线前预估。目前和小流量实验相关的工作主要还是机器学习团队自己在做,而涉及结果的可信度问题,可能需要数据分析的团队来配合完成。关于第二个问题,我的理解是你在问在线实验如何做 A/B Test 的问题吧?我们现在的做法其实还比较简单,主要是将用户分成一些实验组和对照组,首先保证这个实验对同一个用户是稳定的,然后上线前先关注一下这些 Metrics 在实验组和对照组之间是不是稳定的。上线后再观察实验结果的的可信度。

Q:知乎的工作氛围是什么样的?

A:知乎是一家技术驱动的公司,我们的团队非常年轻、有活力、崇尚黑客文化。办公室挂了一面海盗旗,Paul Graham 的文集《黑客与画家》是每名船员的必备读物。同时知乎也是一家重视「作品感」的公司,我们希望每一位海盗所完成的,都不仅仅是一份「工作」,更是在完成自己的一份作品。知乎更是一个注重个人发展潜力和成长空间的公司,我们相信这个世界有丰富的可能性亟待探索,每个人都有自己独特的灵魂和所擅长的方向,欢迎大家加入我们,一起探索更大的世界。

编辑于 2017-05-24 14:58