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