在本系列博客中,我们旨在阐述机器学习在 Tubi 基于广告的视频点播 (AVOD) 领域中的应用。机器学习有助于解决涉及推荐、内容理解和广告的各种问题。我们在这些用例中广泛使用 PyTorch,因为它为我们提供了使用 GPU 训练大规模深度神经网络的能力,它具有灵活、计算速度快和易于实现的特点。
Tubi 是谁? 它是做什么的?
Tubi 是一个向用户提供高质量免费电影、电视剧和实时新闻的平台,是该领域的领头羊之一。Tubi 拥有 3,300 万月活用户,去年的总观看时长超过 25 亿小时。Tubi 持有流媒体行业最大的优质内容目录,其中包括很多热门影片、恐怖片和怀旧之作。为了维护和获取更多的观众,并不断增长我们的视频库,我们利用 Tubi 平台上的信息,结合精选的可信公开信息,发掘用户现在以及未来最有可能感兴趣观看的内容。观众可以在几十种设备上观看 Tubi,并在登录后获得无缝的观看体验,而且只会经历传统有线电视一半的广告数量。
Tubi 可以在您使用的几乎所有设备上观看。有一天,它甚至可能出现在你的智能冰箱上。
All-in 机器学习
为了获得成功,Tubi 采用了数据驱动的方法,但更重要的是,我们始终致力于探索正不断扩大的机器学习、深度学习、自然语言处理 (NLP) 和计算机视觉 (CV) 等领域(如果想要了解我们的总体理念,请详细阅读这篇文章)。我们的研究、开发和部署都是在一个灵活的平台上完成的,这个平台主要依靠Databricks,PyTorch 和其他高级框架来解决我们的一些挑战性问题,其中 Databricks 是主要的计算组件(结合其他开源资源)。
什么是视频点播(VOD)
当你听到流媒体服务这个短语时,很可能你脑海中浮现的公司都处在基于订阅的视频点播(SVOD)商业模式上。这意味着他们赚钱的方式是通过向用户收取会员费来观看其平台上的任何内容。基于广告的视频点播(AVOD)与那些流媒体服务大致一样,最大的区别在于它是免费的,就像电视已经免费了80年一样,观众在观看高质量的节目中只会看到极少的商业广告。这就是 AVOD 公司的创收方式。我们之所以指出这一点,是因为它对我们要解决的问题以及我们利用机器学习做事的方式影响大不相同。
AVOD 转向ML应用的三大支柱
在 AVOD 的世界里,支撑该模式的三支柱如下:
-
内容:我们在数据库中维护的所有视频内容。
-
观众:所有在Tubi上观看视频内容的人。
-
广告:向观众展示的广告内容。
为了获得成功,Tubi 需要最大限度地提高每个群体的满意度,它们之间是紧密相关的,所以这是一个微妙的平衡过程。这张图说明了这些支柱以及它们之间的相互关系:
AVOD 的三大支柱,其中实体之间有特定的关系,我们试图在良性循环中利用这些关系来优化每个实体的满意度。
AVOD 的三支柱模型阐述了我们为了维持一个良性循环所遵循的关系。我们从“内容”开始说明。获取好的视频内容有助于让我们的观众持续观看他们喜爱的节目。这需要利用我们现有目录的丰富表现形式,并在这个领域找到类似的内容,我们将在后面详细讨论。此外,我们拥有一个内容金字塔,在这个金字塔中,流行的内容由类似的电影支持,观众可以一个接一个地观看。当那些优秀的节目在流媒体上播放时,我们可以不干扰用户体验地注入相关的广告(例如,他们觉得广告有用,或者他们不太会注意到广告)。这部分广告有三个作用:
-
让广告商接触到他们想要的受众并获得投资回报;
-
为内容合作伙伴创造收入;
-
赚取Tubi发展和改进所需的资金。
让我们再看反馈循环,更好的内容可以增加受众,而更多的受众意味着广告商的更多关注,更多的广告商将被吸引到 Tubi,这会带来更多的广告,从而为内容合作伙伴和 AVOD 带来利润。Tubi 也会有更多的收入、更多的预算来追求更好的内容。以此类推,循环往复。
Tubi 良性循环中的支柱也对应着机器学习的三个关键领域:推荐、广告技术和内容理解。在下一节,我们将从ML的角度来看 AVOD。
ML 如何融入 AVOD 生态系统?
每个流媒体服务都拥有渗透到其业务各个方面的推荐系统。从用户下一步应该看什么,观众可能喜欢什么类型影片,到每周发送提供最新、最热门相关影片的电子邮件等等,它是无处不在的。但是,限于篇幅,我们在这篇文章中只按以下顺序讨论 ML 相关问题:
-
内容理解
-
广告技术
-
推荐系统
在今天的文章中,我们将逐一触及并总结这3个问题,而后续的文章将更详细地讨论每个主题。
-
内容理解
Tubi 的 "内容理解 "的目标之一是制定最有前(钱)途的电影清单,帮助预测电影和电视剧的价值,促进新发行电影快速融入推荐系统中,等等。我们将我们的内容理解项目命名为 "Spock",具体应用将在未来的文章中明确阐述。VOD 领域的 ML for Content 主要是基于已经存在的丰富的媒体元数据,但也利用 NLP 和 Embedding 技术的许多最新发展来挖掘丰富的文本内容,从现在的 word2vec 和 doc2vec,到 fasttext 和 GloVe,再到我们现代的基于 Transformer 的技术,如 ELMO 和 BERT,以及 Big Bird。
我们可以通过丰富的第一方和第三方数据生成 Embedding,以捕捉视频内容的每个方面,并利用这些数据进行建模。我们依靠 PyTorch 创建的模型涵盖了许多用例,如冷启动新影片、预测非 Tubi 标题的价值以及图中所见的许多其他情况。例如,在冷启动中,我们使用 PyTorch 建立了一个全连接网络,使我们能够从一个捕捉元数据和文本叙述关系的高维嵌入空间映射到 Tubi 推荐系统中的协同过滤模型。简单地说,这使我们能够确定哪些观众可能会对之前从未在 Tubi 上播放过的新标题感兴趣。
我们可以把这一从外部空间到“Tubi 空间”的映射,叫做“embending”(弯曲嵌入)。PyTorch 在帮助我们攻克这一具有挑战性的小数据问题方面发挥了极大的作用,它提供了灵活的 DataLoader 实用程序,可以在实现过程中给予很多便利。当新的库存被添加到我们的目录中时,Beamed embeddings(波束嵌入)一直是改变游戏规则的因素。
使用 PyTorch 制作 Embending 模型,方便冷启动。
值得一提的是,通常,推荐系统关注的是平台中播放的内容,而在 Tubi,我们关注的是包含外部数据在内的所有数据。从长远来看,我们正在朝着将所有不同的数据来源和 Embedding 整合到基于图形的建模和知识图谱中的方向发展,以此作为将我们生态系统中的所有对象关联到一个单一空间的方式。在我们的空间中,能够自信地直接以数字形式比较任何两个对象,这将带来更好的推荐,对用户更相关的广告,使我们更好地了解受众和更好的整体体验。
Tubi 的 Spock 系统,推动 Tubi 所有面向内容的用例。
-
广告技术
广告技术只存在于 AVOD 中,它涵盖了广告如何在平台上呈现给观众的体验,这些广告的货币化有关的所有方面。ML 在广告领域的核心目标是给用户带来愉悦的广告体验。
广告技术有三个重点领域。
-
定向:利用用户行为和人口统计信息,通过相关品牌广告锁定特定受众。
-
广告展示:
-
展示给用户哪些广告
-
植入的时间和数量
-
何时植入广告的破坏性最小
-
收入优化:动态修改广告主的价位,为每个展示位提供最佳价值。
机器学习还能帮助我们减少重复性的广告,帮助我们的广告主与用户进行有效的联系。这个领域创新的一个重要例子是我们的高级频率管理(AFM)解决方案,它主要依靠 PyTorch 来开发和部署标识检测和分类模型。AFM 使用基于计算机视觉的技术,在视频层对品牌广告的曝光进行限制,无需考虑供应源。我们使用一种新颖的方法,扫描每一个来自不同来源的视频内容,输出一个关于检测到的品牌的置信度分数,并利用这些信息来决定投放。这样做的好处是,我们的用户不会收到过多的广告展示。
在广告领域还有许多其他具有挑战性的问题,我们也在不断地解决。
重点介绍 Tubi 的广告技术的各种应用案例。
-
推荐系统
推荐系统的主要目标是帮助观众快速找到他们想看的内容。推荐系统在 Tubi 主页上无处不在。它们帮助展示最相关的视频给用户,帮助用户找到最相关的内容所在,帮助用户搜索内容,帮助我们选择视频的相关图片,帮助我们向用户发送相关内容的推送通知和消息,冷启动新的视频和用户等。Tubi 的推荐系统面临的主要挑战包括用户规模大,内容尤其是新闻的生命期短,以及不断增长的内容库。
通常推荐系统依靠协同过滤,在视频内容和浏览者之间建立关系,利用 “众人的智慧” 将相关内容展现给观众。获取协同过滤的方法有几十种,包括矩阵分解、基于上下文的模型、深度神经网络等。
我们的系统建立在 Spark、MLeap、MLFlow 等强大的框架之上,使用 Databricks 使我们能够对ML的最新技术进行实验,包括在线特征存储、实时推理、contextual bandits、深度学习和 AutoML。我们的端到端实验平台可以帮助团队将最新的想法快速上线。我们目前的研究方向是利用PyTorch来实验基于神经网络的协同过滤的方法,将利用深度学习的力量和许多来自我们内容理解系统的丰富数据,为我们的观众提供更有洞察力的推荐。
推荐系统在 Tubi 的所有平台中无处不在
重申一下,在以后的文章中会对这三大部分中的每一项进行丰富而详细的讨论!
Tubi 的技术栈是怎样的?
在 Tubi,我们利用来自一些技术巨头的强大、设计完善的软件包。不久前,ML 领域的所有工作都是从你自己开发出你认为适用的算法变体开始的,当你把它从纸上转化为代码时,你不得不自行把它转化为正确的算法,然后尝试解决手头的实际问题。幸运的是,我们现在所处的时代,人们可以在标准数据上建立大量高度可互操作的算法,并以更快的原型设计,快速比较许多算法的能力,优化超参数,将其最快实现并上线。
软件工程的另一个高度赋能的方面是亚马逊网络服务(AWS)和微软 Azure 等大型云平台的出现,在这些平台上,人们可以很容易地插入几十种支持良好的集成服务,并大规模地部署解决方案。此外,Databricks 等服务进一步将 Spark 和云架构的力量与 Notebook IDE 范式整合在一起,使得小公司的竞争能力有了质的飞跃。
在 Tubi,我们大量使用这些资源来解决我们每天在 ML 领域面临的许多挑战。从处理数以亿计记录的问题,到需要低延迟、高性能算法的实时应用。下图展示了我们的一些常用包。
介绍一下我们在 Tubi 经常使用的主要软件
那么,Tubi 用于机器学习研发和部署的基础设施是怎样的呢?下图是从 Tubi 架构的高层视角,来表述我们如何依靠 AWS,以及 Databricks 作为我们系统的动力源,既可以支持算法的交互式开发,又能将它们部署到我们的实时平台。下面只是一幅简图,但它阐述了如下的一些事实:
-
我们依靠的第一方和第三方数据,可以使用 S3、Redshift 和 Delta Lake 进行无缝集成。
-
机器学习的某些情况需要与观众进行低延迟、实时的互动。例如,与首次使用的用户进行互动,动态地提供一些定制化的内容,并推荐实时新闻。
-
其他方面可以是小数据、低延迟的模型,比如预测从未见过的视频内容的价值。
-
在开发 ML 解决方案时,能够在 Databricks 中使用 python 或 scala 插件和使用最新最强的算法是一个巨大的优势。
-
PyTorch、XGBoost 和其他软件包都经过精心设计,可以与 Spark 和 Databricks 很好地配合,并利用云存储、大型集群和 GPU 的优势,实现了几年前可能因为资源问题而没有考虑应用的算法。
从设备到流式视图以及驱动 ML 的数据和机器,对 Tubi 平台进行了追踪
敬请关注
总结一下,在这篇文章中,我们主要向大家阐述了关于流媒体服务、AVOD、Tubi 以及我们如何看待机器学习。这是个很有趣的内容,而本文只是一个开始。在接下来的文章中,我们将更深入地了解机器学习内容及其一些用例,并在之后的文章中进行深度的阐述,以更多地揭示我们负责内容理解的 Spock 团队的迷人世界。遗憾的是,博客不是点播的,所以请耐心等待——我们保证这将大有可观。
原文:John Trenkle, Jaya Kawale,点击 “阅读原文” 查看英文版
译者:Shuai Bi, Tubi Senior Machine Learning Engineer
Tubi 拍了拍你,邀请你****加入我们的大家庭!
目前开放的职位:
-
高级数据开发工程师
-
高级机器学习工程师
-
高级后端工程师 - Elixir 方向
-
高级后端工程师 - Scala 方向
-
高级 Android 工程师
-
高级 iOS 工程师
-
高级前端工程师
-
高级前端工程师 - 多媒体方向
-
高级基础设施开发工程师
更多职位细节请点击我们的官方网站:chinateam.tubi.tv/,或在 Boss 直聘搜索**“比图科技”**访问我们的招聘主页。