BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

雅虎新闻推荐与搜索广告背后的技术支撑
录制于:

| 受访者 邹宇 关注 0 他的粉丝 作者 InfoQ 关注 9 他的粉丝 发布于 2015年3月23日 | 如何结合区块链技术,帮助企业降本增效?让我们深度了解几个成功的案例。
16:44

个人简介 邹宇现任雅虎北京全球研发中心研究总监,带领一支科学家团队致力于从科学建模及算法等角度提升雅虎产品的性能。邹宇毕业于北京大学计算机系并获得硕士学位,此前就职于微软亚洲研究院。

   

1. 各位InfoQ的读者们大家好,我现在在雅虎北京全球研发中心,今天我们十分高兴邀请到雅虎北京全球研发中心研究总监邹宇来接受我们的采访,首先请邹宇介绍一下自己。

邹宇:大家好,我叫邹宇,2009年1月份加入雅虎北研,在这边工作已经五年多了,主要是带领雅虎北京的实验室从事机器学习方面的算法研究,支持雅虎的各个产品。

   

2. 你为什么会对这块产生兴趣?

邹宇:雅虎是比较先驱的互联网公司,互联网是机器学习的一个很好的应用方向,因为互联网每天可以在线上收集到大量用户的各种数据,对于机器学习来讲,怎么样处理这些数据,能够得到一个基于学习的模型,去服务雅虎的亿级用户规模,提高雅虎用户的体验,同时也提高雅虎的运营收入,这对我个人来讲是比较有成就感的部分。

   

3. 大概介绍一下你们团队的情况。

邹宇:我们团队实际上不是很大的一个团队,只有20个人左右,但是我们同时支持雅虎的几个非常重要的产品,其中包括雅虎首页的新闻流推荐,还包括雅虎的搜索广告部分,搜索广告占雅虎现在总共收入的2/5还要多,是一个非常重要的项目,同时也支持雅虎的展示类广告的算法研究,我的团队主要是做这三个部分的雅虎产品的支持。

   

4. 能具体讲讲这三个部分的工作各自有什么样的特点?

邹宇:雅虎这三个产品可以分为两个部分,一个是做内容,另外一部分做广告,这两部分对于互联网公司都是比较重要的。内容对于互联网公司肯定是比较重要,因为互联网公司主要靠内容来吸引用户群,增加用户黏度。广告也是互联网公司的命脉,因为互联网公司的服务大部分都是免费的,几乎所有互联网公司,包括雅虎在内,都是依赖于广告的收入。整个这块我们从两个方向去努力,去帮助公司。一方面是去做更好的内容推荐系统,帮助公司提高用户的访问量,增加用户黏度。另一方面是去提高公司广告的用户体验,提高广告的点击率,这样公司也能够从用户的流量中得到很好的收益。

   

5. 这三个项目,您之前提到过,它背后的算法共通是比较多的。

邹宇:从业务层面讲,我们分内容推荐和广告推荐,但是从机器学习或者数学建模的角度来讲,它们也是有一定共通之处的,不管是内容还是广告,只是推荐对象的不同。我们在这里需要解决的问题都是用户来访问雅虎的页面之后,我们找哪些合适的内容或者合适的广告推送给用户,用户能够感兴趣,能够有进一步的响应,比如点击或者是阅读一条新闻,或者是点击广告产生一个购买行为。这块从科研的角度可以分为几个子问题,第一个问题,是用户当前意图的理解,用户来到雅虎的网站,他当前可能对什么样的内容最感兴趣,或者这个用户在最近一段时间会不会有兴趣购买一个物品,这块需要解决的问题是对用户兴趣的理解。如果我们通过一定的机器学习的算法或者是数学模型,能够捕获用户的兴趣,对用户的兴趣有比较好的了解,就能够从雅虎的新闻库或者广告库里选择适当的匹配用户兴趣的内容或者广告,推送给用户,这样用户会得到一个更好的体验,跟网站的互动也会越来越强。所以从科研的角度来讲,它是有很多共通的:用户理解,理解用户之后,怎么样对于广告库或者内容库的内容做排序,这些是广告推荐和内容推荐都使用的类似的科研方法,在后端和线上做一些实验,通过实验迭代去提高雅虎产品线上的性能。

   

6. 你们实时分析和离线分析都使用比如说Hadoop、Spark那些东西?

邹宇:我们有两部分分析会经常做,一部分是线上的一些业务层面的指标,比如说内容推荐或者广告的点击率,对于广告来讲还有另外一个比较重要的指标是每次搜索的变现率,这些指标我们后台会有实时系统,能够实时的知道现在系统运行的状态,所以我们每次发布一个新的模型或者算法,都能够很快知道这个算法相比于老的算法是更好还是更坏了,这是线上实时的一些数据和指标。离线部分对雅虎内部的科研来讲是非常重要的一个数据源,因为互联网公司每一次广告内容或者新闻内容的推送,在后端都有实时的日志,用户的每次响应点击在后端也会有一个记录,所有这些日志都是存放在雅虎后台的Hadoop系统上。雅虎的研究人员会利用这部分日志,通过数据清理、精简得到我们做基于学习模型感兴趣的数据,然后做一些训练评测,不断的做这样的迭代,拿到新的模型。同时通过离线的方法得到一些新的排序模型之后,我们会到线上去做一个AB测试,用真实的流量来检验新的模型和现有模型的好坏程度,这样的话可以通过用户的实时反馈,很快的了解到哪一个模型更好一些,如果能够百分之百确信有一个新的模型比老的模型更好,我们就会把这个新的模型发布到百分之百的流量上,这样就完成了一个周期。当然这个工作是周而复始的,我们通过一个一个周期的迭代,不断的提高雅虎线上的机器学习模型或者是排序模型的性能和质量。

   

7. 这个新模型的周期是怎样的?比如说现在在测的有多少个新模型?

邹宇:我们有一个项目是在优化雅虎首页的新闻排序的模型,在这个项目中,一周会做一次线上的发布,每一次发布我们同时会发布20到30个左右不同的实验,去测试不同的模型或者是参数的改动,这样一周之后我们会得到一个结论,这30个不同的模型哪个会更好。除了这些线上实验,还有很多的离线实验,因为线上我们是做真实流量的测试,这个会影响用户的体验,也需要一些工程的支持去发布新的模型,这样成本会比较高。另外一方面我们同时在Hadoop上做很多离线的实验,我们雅虎实验室这边的同事的日常工作就是通过处理雅虎后台的日志数据,做很多离线实验,用Hadoop作为我们大规模数据处理的平台,通过这些离线实验找到30个能够去做线上测试的候选模型,在这30个模型之后,会有更多的模型的工作要去尝试,所以后台的离线实验会远远大于30个。

   

8. 一周会有几百个吗?

邹宇:这取决于需要改的部分,因为有一些模型可能是比较彻底的改变,所以它需要收集比如说一个月到三个月的数据去做训练,数据规模比较大的话,训练周期就会相对比较长,有的时候可能会需要消耗一天去做训练,有一些只是改一个变量,这样只需要去调一个变量的合适的值大概是多少,这种工作相对来说就比较轻量级。所以这块取决于模型实验想法的大小。

   

9. 把离线数据作为一个实验室,然后把觉得好的30个模型挑到线上系统去。

邹宇:取决于有没有一个足够好的想法,如果有好的想法,首先会用离线的大规模的数据去验证这个想法,通过一些离线的指标去判断这个想法是好的还是不好的,有了一个初步的结论之后,我们再去确定要不要做线上的AB测试,经过线上的AB测试之后,就会有比较准确的科学结论,下一步再去决定是不是要发布一个模型。

   

10. 它好或者不好的时候,比如说你提到CTR这是个重要指标,当然肯定不会是唯一的指标,大概会有哪些评级,比如说ABC这样的。

邹宇:线上指标CTR点击率可能是最容易理解的一个指标,其实线上有很多各种各样不同的指标,拿搜索广告来举例子吧,CTR大概是最重要的一个指标,因为搜索广告是按点击付费的,同时还有另外的指标是每次展现的广告的深度,它是用户来访问之后,平均每次能够在搜索结果页的上面看到多少条广告,如果看到的广告条数越多,可能对用户体验的损失会越大,这也是我们经常监控的一个指标,我们不希望用户每次来用雅虎搜索的时候,在搜索结果的上面看到很多很多的广告,这一块我们会在每次做线上测试的时候,尽量保证用户在搜索结果上面看到的平均广告条数跟上一次实验是差不多的,在这个前提条件下,尽量的提高广告的点击率。类似搜索广告的性能指标还有很多,比如说每次点击的平均价钱,这个可能是广告主比较关心的数据,因为这个是他们需要在广告平台上付出的成本。整个搜索广告的优化问题对于雅虎实验室的研究人员来讲,是一个综合的多目标优化,我们尽量的保证用户的使用体验,同时能够保证广告主不会花费过多的价钱去买一个点击,同时我们也通过优化点击率,能够为公司赚到更多的钱。

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT