分享嘉宾:江云胜@Hulu

编辑整理:许晏铭

出品平台:DataFunTalk

导读:Hulu是美国领先的互联网视频流媒体平台,拥有大量的电影、电视剧等视频资源,对这些内容的理解和表示是Hulu的一个重要研究方向。Content Embedding技术将内容表示为向量,以利于后续算法、模型的处理和分析。本次分享将介绍Hulu在content embedding方面的一些实践和尝试,包括embedding的生成及其在业务场景中的应用。

01

About Hulu

Hulu是一个视频流媒体平台,主要由三个要素构成,分别是用户 (users)、内容 (contents) 和广告 (ads)。Hulu的商业模式也是围绕着这三个要素进行的,即Hulu花钱购买内容资源并提供广告展示位,用户付费观看内容,广告主付费购买广告位。

1. Contents on Hulu

Hulu提供了种类丰富的内容资源,主要是电影、电视剧,以及一些体育、新闻、儿童相关的节目;既有点播的内容 (VOD contents),也有直播频道 (LIVE channels)。

2. Content understanding in Hulu

Hulu的内容理解可以分为四个不同的层次:

  • 第1层,对视频的理解,比如检测和识别视频中出现的特定目标、事件、场景、明星演员、商标等,以及一些特定的片段(如片头、片尾、highlight片段等);

  • 第2层,对整个剧集(包括电影、电视剧)的理解,比如为每个剧打一些标签 (tags) 或生成向量表征 (embeddings),或者分析剧与剧之间的相关性等;

  • 第3层,对collection的理解,这里的collection是Hulu页面上每一行所展示的剧构成的集合,我们需要为每个collection也生成一个表征,并分析不同collection之间的关系,以及思考如何用算法来辅助collection的创建;

  • 第4层,对内容在Hulu平台上生命周期的理解,主要是分析用户与内容之间的交互信息。

3. Contents & corresponding metadata/videos

Hulu上的每个剧集(电影/电视剧),除了最直接的视频资源外,还有一些与之相关的信息,包括剧的标题 (title)、简介 (description)、导演 (director)、演员 (actor)、主题 (topic)、类型 (genre)、标签/关键词 (tag/keyword)、获奖情况 (award)、分级情况 (rating)、字幕信息 (caption)、海报/封面图 (cover image) 等。

 4. How to represent contents?

上面提到,与一个剧集相关的数据有很多(如下右图所示),它们具有不同的形式(标签类、文本类、图像、视频、音频等),从不同维度刻画剧集,具有丰富的信息。那么,如何综合考虑这些信息,给每个剧一个表征呢?表征,从某种意义上来说也是一种信息压缩,用更简洁、有效、本质的形式来刻画一个东西。典型的表征有如下几种:

  • ID类型的表征,用一个id(一般是数字或字符串)来表示一个剧集。这类表征只能反映出两个剧是相同的或者不同的(看id是否相同),不能带来其它额外信息。One-hot encoding也是这类表征的一种形式。

  • 标签类型的表征,用若干个关键词来刻画一个剧集,每个关键词具有一定的语义信息,比较方便人类理解。

  • 向量类型的表征,用一个向量来标识一个剧集,这类表征可以很方便地用在后续的模型和计算中,对机器比较友好。我们接下来要介绍的content embedding就属于这一类表征。

02

Generation of content embeddings

1. Content embedding

Embedding是数学上的一个概念,指把一个数学结构经过某种映射嵌入到另一个数学结构中,这个映射需要保持某种意义下的结构不变性。类似地,content embedding是将剧集映射到一个低维稠密的向量空间中,并尽可能让内容相似的剧对应的embedding向量也比较接近。在Hulu,生成content embedding时需要考虑多种不同模态的数据,包括标签类数据(导演、演员、类型、标签/关键词等)、文本数据(标题、简介等)、图像(海报、封面图等)、视频、音频等;另外,考虑到电影/电视剧都是长视频,要压缩为一个低维向量需要很高的压缩率,并且在算法的训练和测试过程中都没有ground-truth可以参考,因此生成content embedding还是一个比较有挑战性的任务。

2. Tag-based embeddings (Graph Embedding) 

Step 1:

首先,介绍如何利用剧集的标签类型数据来生成content embedding。前面提到,每个剧集都或多或少会有一些标签类型信息,比如导演、演员、类型、关键词/标签等,我们把它们称为该剧的属性 (attribute) 信息。由此,我们可以构建一个content-attribute graph,其中剧集和属性是该 graph 中节点,它们之间的对应关系用graph中的边来连接。由于不同的剧可能有相同的属性(比如两个剧有相同的导演或关键词),这些共同的属性节点可以将不同的剧连接起来,如下图所示,最终会构成一个非常庞大的content-attribute graph。

Step 2:

有了content-attribute graph之后,可以用node2vec 技术为graph中每个节点(包括剧节点和属性节点)学习出一个embedding向量,其中剧节点对于的向量即为我们需要的content embedding。大致的步骤是先根据graph采样获得一些path,然后调用word2vec方法学习得到节点的embeddings。我们略过细节,这里的基本思路是:如果graph中两个节点之间的path越多,则希望它们对应的embedding向量越接近。

3. To be improved …

上述基于content-attribute graph生成的content embedding,有如下几个不足的点:

  • 只使用了标签类型数据,没有考虑非标签类型的文本数据(如标题、简介等);

  • 在标签类型数据中,GraceNote keywords和genres是最重要的,但它们的覆盖率并不高,很多剧会缺失这些数据;

  • 构建content-attribute graph时候,并没有利用上这些标签的语义信息(只根据标签是否相同来构建graph中的连接边);

  • 在建模过程中,不同类型的标签之间没有足够的信息交互。

4. Considering non-tag textual data

接下来,我们思考如何利用非标签类型的文本数据(标题、简介等)。我们尝试了两种处理方法:

  • 方法一:直接根据文本数据生成content embedding;

  • 方法二:先根据文本数据预测出一些标签,然后将预测的标签加到前面的content-attribute graph来生成更高质量的content embedding。

上图是我们尝试的方法一,对于剧集简介,先用BERT模型得到句中每个token的embedding,然后利用SIF算得每个句子的embedding,最后将剧集简介中所有句子的embedding做平均后得到整个剧集简介的embedding。这个方法的效果比较一般,接下来我们重点介绍方法二。

Metadata-BERT: 

use metadata to predict/complement content tags

方法二,主要是先根据文本数据来预测剧集的一些标签信息,然后将这些标签加到content-attribute graph中,接着调用前面的tag-based embedding方法即可。我们对原始BERT模型进行了改进,使得它可以接受各种类型的数据作为输入,包括标签类型数据 (tag-like metadata) 和非标签类型的文本数据 (non-tag textual metadata) 。新的模型被称为Metadata-BERT,它能根据输入的metadata信息预测出更多的tags,可以作为原始标签数据的一个扩展和补充。Metadata-BERT模型利用GraceNote keywords数据进行训练,在测试集上的标签预测准确率达到83%(比原始BERT的61%有显著提升)。将Metadata-BERT预测出来的标签添加到之前的content-attribute graph中,能够进一步丰富graph的节点和边,从而产生质量更高的content embedding。

5. Further: how about visual/audio data?

除了上述提到的标签类型数据和非标签类型的文本数据,一个剧还有对应的音频资源和视频资源。与前面的数据不同,音视频信息是一帧一帧的,一部剧是由一个图片序列和音频序列构成的。如何将整个序列转化为一个embedding向量,这是我们需要重点考虑的地方。我们的做法是:先将整个视频的视频帧和音频帧抽出来,然后用一些神经网络(如Inception/VGGish)为每个视频帧和音频帧提取特征,最后用一些聚合模型(如NeXtVLAD/BERT等)将帧级的特征聚合为整部剧的embedding。整个模型可以借助一些诸如标签预测、推荐排序等任务来训练。

6. A try: two-level-BERTs for v/a embedding learning

我们做了一个尝试,用两层BERT模型来做推荐业务中的CTR预估任务,简单来说,就是先用一个BERT模型来聚合视频的帧级/片段级的特征,以得到每部剧的content embedding向量;然后再用一个BERT模型来聚合用户信息,主要是历史观看记录 (history_shows) 以及目标剧集 (target_show);最后再接MLP进行CTR预估。这个框架比较大,将content embedding的学习直接放到具体的推荐业务中,是一个end-to-end的学习过程;缺点是两个BERT模型体量太大,收敛不太稳定。

7. Overview: generation of content embeddings

上图是content embedding生成过程的一个概览图。图中的 content data包括剧的metadata信息、视频文件和字幕文件,其中metadata又分为标签型数据和非标签型的文本数据,而视频文件又包含视觉图像和音频信息。针对不同类型的数据,我们采用不同的模型,从而产生不同的 content embeddings,而这些不同的embedding也融合成一个终极embedding。在实际应用中,可以根据业务特点来使用不同类型的embeddings,或者使用最终的融合版embedding。

03

Applications of content embeddings

1. Content similarity

接下来我们介绍content embedding的一些应用。content embedding最直接的应用是可以简单方便地计算两个剧在内容上的相似性(比如计算embedding向量的余弦相似性)。下图右侧是完全基于content embedding向量计算出的与“钢铁侠”最相关的剧,可以看到大部分结果都还是比较合理的。在推荐业务中,很多时候需要计算show-to-show relevance,而内容相似性可以作为其中的一个重要因子(其它可能需要考虑的因子包括基于用户co-watching信息的相关性等)。Show-to-show relevance可以应用在Hulu的You May Also Like (YMAL)、UpNext等场景中,下图左侧是Hulu的YMAL页面。

2. Content embeddings as features in TV/Movies ranker, PCS, etc.

Content embedding的另外一个应用是可以作为很多算法、模型的输入特征。如上图所示,左边是Hulu推荐业务中对TV/Movie的排序模型,右边是对Home页面的collections的排序模型,这两个模型中都使用了content embeddings作为输入特征(图中绿色框所示)。

3. Content embeddings for content cold start (in Retriever)

Content embedding在内容冷启动方面也有着重要应用。以推荐系统的召回模型为例,如果召回模型只是基于用户的co-watching信息(如下图左侧分支),这样对于新加入的内容或冷门内容,可能采集不到足够多的用户观看记录,从而影响召回效果。这时候可以根据content embedding来构建另外一个基于内容信息的召回分支(如下图右侧分支),然后再用一些方法(比如gate函数)将两个分支融合起来(如下图中间的分支所示),从而提升对新内容或冷内容的召回效果。

4. Collection modeling with content embeddings

前面提到,Hulu页面上每一排展示的内容被称为一个collection(一个collection也即若干个剧构成的一个集合)。在Hulu的Home页面,会根据用户的行为数据对collection进行动态选择和排序,这就需要大量的collections供算法选择,仅靠editor手动创建collections是非常低效和耗时的。这里我们尝试利用算法,从如下几个角度来加速collection的创建:

  • 对已经存在的collections进行建模,从而可以对collection里面的剧进行扩展和更新;

  • 在editor手工创建collections时,让editor可以根据embeddings或tags来搜索相似的剧集,或者直接根据editor已选的剧作为种子来自动推荐合适的剧加入到collection中,从而提高collection的创建效率;

  • 用算法直接创建collections,然后经过人工审核并命名后即可入库。

04

Thinking

最后,关于content embedding的一些思考:

  • 如何评价content embedding的效果?是建立一套以内容为主视角的评价指标,还是看embedding在推荐、搜索等业务中的效果?

  • Content embedding与具体业务场景之间的gap。比如,content embedding的训练通常与业务目标是分开的,如何保证content embedding在业务场景中的效果呢(泛化性能)?如何利用业务相关的数据集或任务来调整content embedding呢?是否可以直接用业务相关的任务对content embedding进行end-to-end的训练?是提供内容理解的数据(比如像content embedding这种),还是提供内容理解的能力(比如算法模块等)更好呢?

上述问题都是开放的,没有定论,欢迎大家思考和讨论。

今天的分享就到这里,谢谢大家。


在文末分享、点赞、在看,给个3连击呗~


嘉宾介绍:

江云胜

Hulu | Senior Research Lead

Hulu在Content Embedding的探索与实践相关推荐

  1. content embedding

    导读:Hulu是美国领先的互联网视频流媒体平台,拥有大量的电影.电视剧等视频资源,对这些内容的理解和表示是Hulu的一个重要研究方向.Content Embedding技术将内容表示为向量,以利于后续 ...

  2. 美团搜索中查询改写技术的探索与实践

    猜你喜欢 0.[免费下载]2022年1月热门报告盘点1.腾讯QQ信息流推荐业务实践2.小红书推荐中台实践3.微信视频号的实时推荐技术架构分享4.预训练模型在华为信息流推荐系统中的探索和应用5.腾讯PC ...

  3. 眼界大开 声临其境丨胡宜峰:视频深度伪造检测技术在内容安全领域的探索与实践

    导读:「眼界大开 声临其境」技术系列课第三期.网易易盾资深计算机视觉算法工程师胡宜峰带来了主题为<视频深度伪造检测技术在内容安全领域的探索与实践>技术分享. 讲师简介:胡宜峰,网易易盾资深 ...

  4. 异构广告混排在美团到店业务的探索与实践

    省时查报告-专业.及时.全面的行研报告库 省时查方案-专业.及时.全面的营销策划方案库 [免费下载]2022年2月份热门报告盘点 机器学习在B站推荐系统中的应用实践 小红书推荐系统中台应用实践 微信视 ...

  5. 美团搜索推荐多业务商品排序探索与实践

    猜你喜欢 0.2021年10月热门报告盘点:<2021年轻人性生活报告>稳居榜首! 1.多目标排序在快手短视频推荐中的实践 2.内容推荐策略产品经理的方法与实践 3.京东推荐算法精排技术实 ...

  6. 深度学习在美团配送ETA预估中的探索与实践-笔记

    文章作者:Tyan 博客:noahsnail.com  |  CSDN  |  简书 本文为美团文章学习的笔记整理. 1. 背景 ETA(Estimated Time of Arrival," ...

  7. 检索式对话系统在美团客服场景的探索与实践

    在传统的客服.IM等场景中,坐席需要花费大量时间回答用户的各种咨询,通常面临答案查询时间长.问题重复.时效要求高等挑战.因而,使用技术手段辅助坐席快速.准确.高效地回答用户的各类问题非常有必要. 我们 ...

  8. Jira Automation 探索与实践

    2020 年上半年,Atlassian 在 Jira Cloud 上推出了一个非常不错的新功能 Jira Automation,将强大的无代码自动化功能带入 Jira Cloud 原生功能中,不用安装 ...

  9. 美团外卖广告智能算力的探索与实践(二)

    在深度学习时代,算力的需求和消耗日益增长,如何降低算力成本,提高算力效率,逐渐成为一个重要的新课题.智能算力旨在对流量算力进行精细化和个性化分配,从而实现系统算力约束下的业务收益最大化. 本文主要介绍 ...

  10. BERT在美团搜索核心排序的探索和实践

    为进一步优化美团搜索排序结果的深度语义相关性,提升用户体验,搜索与NLP部算法团队从2019年底开始基于BERT优化美团搜索排序相关性,经过三个月的算法迭代优化,离线和线上效果均取得一定进展.本文主要 ...

最新文章

  1. [日常] Go语言圣经--Channel习题
  2. mapreduce 聚合_MapReduce:处理数据密集型文本处理–局部聚合第二部分
  3. BHO插件操作IE浏览器,js调用C#方法
  4. MFC实现 MSN QQ 窗口抖动
  5. hdu 1106 字符串处理
  6. python编程词典_Python 字典(Dictionary)操作详解
  7. SQL 判断 临时表是否存在
  8. 开源GIS(十二)——openlayers中加载切片原理
  9. 关于自定义通知事件的跨线程问题
  10. 乐高魔方机器人编程及图纸_乐高解魔方机器人
  11. java计算机毕业设计幼儿园管理系统源码+系统+mysql数据库+lw文档
  12. USB Server应用于税控盘的远程集中管理
  13. YOLOv5网络详解
  14. html页面调用高德地图,html前端使用高德地图入门教程
  15. 2021年编程类书籍推荐清单
  16. Linux下命令行中的复制和粘贴
  17. 小程序实现滚动加载(懒加载)
  18. 民航飞行学院计算机研究生就业,数据说话:文科硕士研究生就业变迁史
  19. 解决ios以及mac yyyy-MM-dd HH:mm:ss格式不兼容
  20. 希沃白板如何在公式里面输入绝对值符号

热门文章

  1. 毕业旅行 | 伦敦5日游行程推荐
  2. python扫码点餐系统_微信小程序源代码带后台 扫码点餐系统 python Django 前后端分离...
  3. 小米无线路由器服务器用户名和密码忘了,小米路由器密码忘记了怎么办 小米路由器密码忘记解决办法【详解】...
  4. php zip压缩包下载
  5. Gos —— 实现系统调用
  6. 无需越狱,iPhone修改微信提示音!
  7. java直接控制飞鹅打印机_智慧餐厅,飞鹅智能云打印机设置教程
  8. 【艺工交叉】艺术系自画像作业赏析
  9. SpringBoot项目怎么重命名
  10. 高通平台SPI配置方法