百度技术沙龙第 33 期回顾:推荐引擎实战(含资料下载)

  • 水羽哲

2012 年 12 月 24 日

话题:云计算百度语言 & 开发架构百度云

在 12 月 22 日由@百度主办、@InfoQ负责策划组织和实施的第 33 期百度技术沙龙活动上,来自百度推荐与个性化部高级架构师陈天健和豆瓣网首席科学家王守崑分别分享了各自在推荐系统中的经验与实践,话题涉及“推荐系统的工程挑战”,以及“个性化推荐系统的几点思考”等。本文将对他们各自的分享做下简单的回顾,同时提供相关资料的下载。

主题一:推荐系统的工程挑战 (下载讲稿

来自百度推荐与个性化部高级架构师陈天健第一个为大家分享,他认为随着互联网产品的不断深度整合,推荐引擎的服务与计算规模也在以几何级数飞速增长。推荐系统的开发者面临着服务扩展、计算性能和开发效率等多方面挑战。他主要从百度推荐引擎的实践出发,探讨如何通过架构上的努力,整合数据与算法的优势,最终面向用户提供流程和智能的推荐产品推荐。

搜索是为了满足用户的主动表达的需求,而推荐是为了挖掘并满足用户的潜在需求,目前国内的互联网产品设计者已经开始蜂拥在产品中加入个性化的推荐功能。但是在实践当中,如何来平衡系统规模和产品需求的工程挑战?陈天健认为这是大数据遭遇时效性的问题,他分享了百度推荐系统中的关键系统技术:

  • Vortex 流式计算系统
    1. 数据处理延迟从数小时级下降到秒级
    2. 流量波动影响钝化
  • LISA 实时索引架构
    1. 实时索引实现展示
    2. 所以查询和更新操作融合

Vortex 技术特点是简单可依赖(系统可用性好、功能扩展简单)和系统灵活性(拓扑不局限于 DAG、与 BVC 计算网络融合)。而 LISA 通过索引功能模块组件化让其简单可依赖,在时效性方面将更新延迟从 2 小时降低到 5 秒,进而将点击率提升 3 倍。

随后的分享中,陈天健还指出了时效性之外的问题,他回顾了一些公司的算法升级周期指出随着用户的变化导致了多样性和新颖性的需求,进而使得推荐算法的“寿命”正在缩短,这就产生了新的问题,即如何平衡成本和效果?为了解决这个问题,需要将“推荐系统”进化为“推荐引擎”,百度正在以推荐引擎为核心构建各种推荐系统和应用,最大限度复用数据、算法和系统资源。

他随后谈到了推荐引擎的规模化效应的四点体现:

  • 成本:推荐系统工程成本摊低
  • 算法:问题的维度变化,从“艺术”到“科学”
  • 数据:不同应用共享数据,克服数据稀疏的问题
  • 效果:推荐产品功能横向打通,多领域满足用户需求

在构建推荐引擎时,他提到了两个核心功能:过程优化和用户兴趣发现。百度在构建方面采用召回算法和排序算法,使得系统具有实时更新、超大规模计算等能力。在推荐算法模块,百度主要使用语义相关性、文本相关性、CTR 预估、规则过滤等,将用户模型更新延迟降低到 5 秒、内容索引更新延迟降低到 50 秒以内,同时将离线计算规模提高到 2M pairs/sec、在线计算提升到 1M pairs/sec。随后又通过百度随心看、百度新闻 2.0 等实例陈述了发现和优化并重的原则。

最后,他又回顾了百度推荐引擎的发展历程。

主题二:个性化推荐系统的几个问题 (下载讲稿

现任豆瓣网首席科学家王守崑第二个为大家分享,他从产品的不同阶段和需求出发,讨论解决推荐系统问题和挑战的思路和做法。具体内容包括:算法的选取、度量指标的选择、用户行为建模、算法调度框架、计算资源的分配等等。同时也展望了个性化推荐系统的发展方向和前景。

他首先对基于用户和基于条目的两种算法进行再比较,接下来在实际的计算复杂度中指出:在幂律分布的假设下,相似度矩阵的计算量与收藏的分布直接相关,通常基于条目的 CF 要显著低于基于用户的 CF 算法。同时他还提到算法要与产品匹配,即根据不同的产品阶段、用户群和计算资源与框架选择不同的算法。

在推荐系统中,他建议将缺失值作为负面反馈来优化推荐效果,然后他谈到了矩阵分解和生成模型。

当谈到针对于什么样的产品适合推荐时,他提出了如下的三点建议:

  1. 能够获得快速反馈
  2. 条目增长相对稳定
  3. 稀疏性、多样性和时效性平衡

最后他回顾了个性化推荐的历史,并谈到了 Web 面临的挑战:

  1. 从自由与开放走向私有与封闭
  2. 从第二人生走向第一人生
  3. 从信息经济走向体验经济

面对这些前所未有的机会,他说道:

个性化推荐要么是平台,要么是平台的一部分

Open Space(开放式讨论环节)

为了促进参会者与我们每期的嘉宾以及讲师近距离交流,深入探讨在演讲过程中的疑问,本次活动依然设置了 Open Space(开放式讨论)环节。

在 Open Space 的总结环节,几位话题小组长分别对讨论的内容进行了总结。

陈天健:主要是讨论了如何从零开始将推荐系统做大,并讨论了过程中的困难;

姚旭:以百度随心看为例,聊到了推荐产品如何选取算法、遇到问题时如何进行分解转化,并且在实际运用当中如何根据实际的数据对系统进行调整;

梁斌:谈到了社交网络索引如何去做,以及所做的微博寻人的想法,最后谈到了西瓜大会,希望所有人能够过去锻炼口才和聪明的人做交流 ;

会后,一些参会者也通过新浪微博分享了他们的参会感受:

胖胖的 KUMA:听完感触很深,推荐真是无处不在,而且是很强的用户需求,推荐更实时更精准用户体验就更优,百度知道将实时性从 20 小时提升到 5 秒,使流量提高了三倍,你心动了么?

Hi 张伦:多亏百度技术沙龙久闻 @梁斌 penny 大名终于相见。

沈 _ 穎:科学家就是与众不同,无论多么复杂的问题,都能拿出来一个算法公式,哎,就是自己水平太差,几乎完全不懂,要是能够加些通俗易懂的语言和案例,简单的描述就更好了。

三江小渡 hzy:豆瓣的开场才像真干货!@百度技术沙龙 真的需要改进百度工程师的分享内容了,要真心建开放社区和分享社区,学习下豆瓣好么?这是我听几次豆瓣的感觉。

有假熊出没: 个性化推荐的几点思考,思考得很深远,不仅是算法那么简单,产品和解决方案是亮点哈。

Iproduct 李磊:推荐引擎庞大复杂的系统架构和数据量级,只有掌握大量资源的行业巨头才敢企及,听了天健的介绍,发现推荐系统这座银河战舰已然呼之欲出,巨头战略级别的博弈,加速了大数据系统时代的到来,更加智能的系统何时能真正改变普通用户的生活,我们拭目以待。

有关百度技术沙龙的更多信息,可以通过新浪微博关注@百度技术沙龙,InfoQ 上也总结了过往 32 期所有百度技术沙龙的演讲视频和资料等,感兴趣的读者可以直接浏览内容

特别提示:第 34 期百度技术沙龙将在 1 月 12 日,在北京举行,欢迎关注@InfoQ@百度技术沙龙获取后续的活动信息。

云计算百度语言 & 开发架构百度云