Hulu(北京)推荐算法负责人周涵宁:怎样应对基于深度学习的视频推荐系统
本文仅用于学习和交流目的,不得用于商业目的。非商业转载请注明作译者、出处,并保留本文的原始链接:http://www.ituring.com.cn/art...
周涵宁,本科毕业于清华大学自动化系,于美国伊利诺伊大学香槟分校获得计算机视觉领域博士学位。
曾担任富士施乐硅谷研究中心研究员、亚马逊总部高级技术经理、盛大创新院资深研究员兼产品经理、智谷研发VP和宝宝树的CTO等。
现任Hulu北京研发中心研究推荐算法研究负责人(Hulu是全美第二大付费在线视频平台)。具有15年的产品研发、创新和团队管理经验,专注于实现应用数据和算法从0到1的产品落地,在数据分析和机器学习方面有丰富的经验。
访谈话题:
为什么从自动化专业转向了人工智能方向(计算机视觉)?您在研究方向的选择上,会考虑哪些因素?
我们学校的自动化专业下面有一个方向叫作模式识别,它是人工智能的一个应用领域。我举一个模式识别在工业界的应用,比如应用图像传感器做自动化质量检测,就是一个人工智能落地的场景。美国硅谷有一家叫KLA-Tencor的上市公司,他们的主要产品就是基于无损探测器(包括光学传感器)进行硅片自动质检。另外,指纹识别和光学字符识别(OCR)也是模式识别的范畴。它们都和计算机视觉有很强的联系。
选择计算机视觉作为研究方向,除了在自动化系的基础训练,还有一个重要因素是实习经历。我在大三的时候,到微软中国研究院(现在叫微软亚洲研究院)实习。当时研究院的主攻方向是计算机视觉和多媒体技术,每几周都会有相关的国际专家来交流讲座,其中包括我后来追随的博士导师,计算机视觉领域的开山鼻祖,UIUC大学的黄煦涛教授。我当时做的项目之一是基于多张图片的三维场景重建。耳濡目染,我对计算机视觉领域产生了浓厚的兴趣。
自动化跟智能化的区别是什么?
传统的自动化主要是以相对固定的模式,处理相对简单的场景。智能化则具有人的感知、决策和逻辑能力,可以更加灵活多变的处理各种复杂场景。举例来说,如果在Outlook里设置了一个日历事件,下午4点要开会,那么电脑到了下午3:45的时候就会弹出一个事件提醒,这叫作自动化。如果电脑根据你当时的位置、路上的交通状况和附近的空闲出租车状态,自动计算出从你所在的位置叫出租车再行驶到会场需要花费37分钟,然后在3:22 PM的时候帮你填好预约出租车的订单。你只需点一下确认按钮,就可以收拾好笔记本出门了。这就叫智能化。
随着各种智能算法可靠性的提高,它们逐渐融入到人们的日常生活,这些传统意义上的"智能化",也慢慢变成了"自动化"。例如,垃圾邮件过滤和拼音联想输入,都用到了基于机器学习的智能算法,但是人们对这类产品的预期也相应的提高了,不再认为这些功能是很"智能"的了。
要在工作中运用机器学习方面的技术,普通程序员需要如何准备?
主要是补充线性代数、凸优化和概率统计方面的知识。相比传统算法,机器学习算法的最大不同之处是它的执行步骤和参数,不是由程序员人工设定的固定组合,而是基于训练样本学习到的概率模型。要理解各种机器学习方法的优缺点,能够将当前应用的场景,抽象成经典的机器学习问题。
例如,Hulu视频App的首页推荐,之前是按照产品经理手工定义的几类不同内容来源来排列展示的优先级,然后再对相同优先级的内容,按照首播时间、最近热度等因素排序。这就是典型的面向传统编程模式的设计。新版App的首页排序正在向基于机器学习的数据驱动算法转变。我们根据点击率预估进行排序,其中的点击率预测模型训练,会参考产品经理给出的首播时间、最近热度等特征,但是会基于在线学习的框架,自动根据用户的场景不同而动态调整各个特征的权重。
从职业履历来看,您既做过技术研发也做过团队管理,更喜欢哪个方向?
从个人层面上,我觉得技术研发更有成就感,因为专注和沉浸在解决问题的过程中,是一件很享受的事。做技术研发也对自己的时间和精力有更好的掌控感。相比之下,团队管理者需要有牺牲小我、成就团队的胸怀。我读过一本很好的书——Leaders Eat Last,讲的就是这个意思。同时,还需要具备较高的情商和同理心,才能处理好承上启下的沟通,这方面我推荐大家读阿德勒写的《沟通的艺术》。
对于程序员来讲,哪个能力(技术vs管理)更重要?获得这样的能力,需要如何准备?
技术是立身之本,没有这个基础就不能成为一名合格的程序员。如果想要不断地提高自己的能力,解决更大的难题,即使不戴管理的头衔,也还是要掌握一些管理方面的知识。如何推进项目,如何说服他人,如何与其他团队沟通,等等。获得这些技能,我们需要运用“一万小时定律”循序渐进地进行有意训练:首先掌握一定的理论知识,这里我推荐看《高效能人士的七个习惯》;然后在实际工作中去运用,体会哪些方法是适合自己性格的。如果在这个"术"的层面训练到了一定的程度,就可以尝试上升到“道”的层面,就是找到自己最擅长和最认同的事业,并运用之前学到的“术”,在助人的过程中实现自己的人生价值。
Hulu这个名字跟汉字的关系很大,背后的故事是什么?
Hulu成立于2007年,当时的创始团队中就有华人,他们建议用汉字“葫芦”的汉语拼音来命名这家公司。因为Hulu希望以优质的视频内容吸引用户,让用户产生好奇心——“葫芦里卖的什么药”,并用个性化推荐引导用户发现更多内容。
Hulu未来会进入中国市场吗?跟国内的视频网站相比,Hulu有哪些优势特点?
Hulu目前只在美国运营,领导层会根据市场和用户的需求,评估Hulu国际化的战略。与国内视频网站相比,Hulu拥有更多的美剧资源,今年还推出了电视直播业务,用户可以在全平台随时看到50多个电视台正在播放的内容,包括体育实况、新闻等时效性很强的节目。
推荐系统对于视频网站的重要性是怎样的?
推荐系统,从更广的意义来讲,属于个性化系统,它是线上分发渠道相比线下渠道(例如,院线和传统电视台等渠道)的最显著技术优势,是视频网站的核心竞争力。它可以用来引导用户发现新内容,提高用户活跃度和粘性。
客制化可以有几个层级,个性化是其中最细致的一层。在个性化之上,可以按照粗略的用户分组来实现客制化。对于25~30岁这个年龄段的所有女性用户,我们可以使用同一排序模型。在客制化的基础上,可以叠加针对每个用户的个性化特征。如果把推荐系统看成是函数 y = A(x),其中x是关于每个用户的特征,y是输出的推荐结果,那么分组客制化,就是把A(.)函数针对不同组的x分别训练,然后利用集成学习(ensemble learning)整合。
如何衡量一个推荐系统是否优秀?
从业务上讲,用户的观看时长和订阅数可以间接反映推荐系统的有效性。但是,这两个指标会受到内容库和市场推广周期的影响。例如,新的爆款剧《冰与火之歌》第七季上线后,会在短时间内带来大量新的订阅用户,并且大幅度地提升用户的观看时长,但是一两周以后,这些指标就会逐渐回落。而在整个期间,推荐算法本身的质量并没有变化。
我们不仅需要根据业务指标来衡量推荐系统,还要参考一些直接的度量标准,比如点击率、多样性、内容覆盖率等。要想获得这些直接的度量指标,开发人员需要和业务部门沟通和讨论,根据他们的反馈做出调整。有的产品强调方便性,我们就要尽量缩短用户从浏览到观看花费的时间,而有的产品是为了给用户提供更多的选择,希望用户浏览尽量多的内容,我们就需要对它们各自定义不同的指标。
以某个场景为例,说明一下基于深度学习的视频推荐系统相比传统推荐系统的优势?
以特征选择为例,深度学习中的非线性映射(利用激活函数的非线性),自动化了特征选择的步骤,使得我们可以更容易地整合多种信息源。传统上基于用户行为的协同滤波和基于内容元数据的系统,则是分开训练两个模型,然后将结果融合在一起的。但是,这样很难将融合过程中观察到的误差传递到分开训练的两个模型的过程中。深度学习提供了一个端到端的框架,使得我们可以用同一个网络结构来将用户行为和内容元数据一起映射到用户-物品相关性评分的学习中。
在11月9~12日的TOP100summit2017上,您分享的哪些内容是值得关注的?
我着重介绍了Hulu利用多臂老虎机来平衡热门和长尾内容的展现,以及用循环神经网络模型做序列推荐的成果。前者可以更有效的利用有限的展示位来做长尾内容的冷启动,后者是对自动连播场景的一种比较有效的建模方法。
基于深度学习的视频推荐系统,下一步的发展是怎样的?
- 中短期的规划主要是基于内容的推荐,解决冷启动问题。
视频网站的核心价值是对内容的理解。基于用户行为的相关内容分析,已经到了比较成熟的阶段,接下来的主要挑战是对新内容和中长尾内容的冷启动。目前,现有的方法依赖于人工标签,存在一定的局限性,随着计算机视觉技术的发展,未来将会有越来越多的系统是基于内容理解来自动打标签。
- 长期的规划是,基于自然语言对话进行内容的推荐。
智能助手的应用是一个很有潜力的发展方向。例如,我晚上回到家,对电视说“我今天心情低落”,电视就会推荐一些治愈系的影视作品。如果我接着说“我想看点搞笑的”,它就会在之前推荐的基础上,筛选出喜剧。这个场景虽然看似简单,却涉及复杂的情感类语义标签和多轮对话之间的上下文关联。