全面指南:通过机器学习对Youtube视图进行预测

这个项目是由艾伦·王,Aravind Srinivasan,Kevin Yee和Ryan O ‘ farrell设计的。

  • 脚本和模型地址:https://github.com/allenwang28/YouTube-Virality-Predictor

在我们的模型中输入你自己的缩略图和标题来预测视频视图。

  • 模型地址:https://enigmatic-wave-74142.herokuapp.com/

背景

在过去的5年中,YouTube向YouTube的内容创作者支付了超过50亿美元。PewDiePie在2016年仅靠YouTube就赚了500万美元,不包括YouTube之外的赞助、代言和其他交易。随着越来越多的公司利用YouTube来吸引千禧一代的观众,在YouTube上观看视频变得越来越有利可图。

我们的目标是创建一个模型,帮助预测下一个视频的视图计数。Youtube上涵盖各种类型的视频,如喜剧、体育、时尚、游戏和健身。健身视频是YouTube的重要组成部分。人们倾向于选择免费的在线健身视频,而不是聘请昂贵的私人教练。

在YouTube上观看相关视频的人将首先看到标题和缩略图。如果可以使用特定的标题和缩略图生成更多的潜在视图,那么Youtube用户可以使用这些信息来生成具有视频内容的最大值的潜在视图。因此,我们的目标是创建一个使用非视频功能的模型来预测健身视频发布者可以使用的视图计数以推广其频道。

数据

因为无法找到一个合适的数据集,所以我们只能使用YouTube的8M数据集,其中包含32 GB的预先标注的数据,这些数据被标记为不同的类型(比如运动、时尚、电影)。我们过滤掉了所有与“健身和体育”相关的标签,还剩余15305个视频。为了增加我们的数据集的大小,我们去掉了先前数据集中每个用户的视频。我们现在有115362个视频。我们为每个视频收集了以下特征:

YouTube的8M数据集地址:https://research.google.com/youtube8m/

  • 标题
  • 缩略图
  • 描述
  • 喜欢数量
  • 不喜欢数量
  • 视图计数
  • 最喜欢数量
  • 评论数量
  • 发表日期
  • 频道用户数量
  • 频道发布的视频数量
  • 整个频道的视图计数
  • 频道发布的前一段视频的评论数量
  • 频道发布的前一段视频的视图计数
  • 频道发布的前一段视频的标题
  • 频道年限

特性工程和提取

我们关注视频的标题和缩略图,因为这些是用户在浏览视频时最先看到的内容。我们必须从缩略图和标题中提取有意义的特性,在我们的模型中体现它们。

类似于我们在BuzzFeed等网站上看到的标题诱饵的效果,我们希望看到标题诱饵和缩略图在YouTube视频上产生良好的效果。我们注意到一些成功吸引用户关注的健身视频,有以下常见的特征:

  • 标题过度夸张并使用了感叹号
  • 标题提供了保证和承诺
  • 标题包括一个列表
  • 缩略图包括一个与标题相符的男人或女人

我们尝试在标题和缩略图上训练神经网络,但是没有得到很好的结果。

我们决定采用不同的路线——使用预先训练的网络作为特征提取器。我们在Yahoo找到了一个开源的NSFW Scorer。我们在先前标题、当前标题和缩略图上运行这些,并提供了代表它们的信息的新特性,从以此产生新的可用特征。

数据探索

我们的主要目标是生成一个模型来预测视图的数量(或者视图的差异)。首先,我们删除一些离群值——也就是那些“病毒式”视频,我们将视图计数超过10万的视频定义为“病毒式”视频。

我们可以看到,视图计数分布严重扭曲,但却可以理解——大多数YouTube用户可能不会有这么多的视图。而且,YouTube-8M数据集视频似乎是随机抽取的(也就是说,不偏向流行视频),因为它的目标是为分类提供视频信息。

当我们最终得到预测因子时,我们想要预测类似于高斯曲线的东西。幸运的是,我们可以将日志转换应用到视图计数中,以使其能够做到这一点。

另一个我们可以试着预测的是视图计数的不同。我们从删除异常值开始——视频的视图计数增加或减少超过5x。

请注意,在我们的视频中,视图之间的差异通常在0左右波动,但实际上以-1为中心。 这被计算为:

因此,百分比差值大约为-1的条目是当前视频的视图计数大约为0的条目。这很有趣 – 我们当前视图计数的大部分都是最近被刮掉的视频。 可能是这样的情况:视频没有足够长的时间来获得它的“真实”视图计数,可以这么说,我们可能需要一个特征来表示上传和删除它之间的时间。

最后,让我们来看看我们从标题和缩略图中提取的特征:

标题诱饵分数

我们使用预先训练的网络为每个标题提取标题诱饵分数。 标题诱饵分数从0到1,分数越高,标题就越具有吸引力。 标题诱饵分数分布如下:

我们感兴趣的是YouTube用户是否在他们的频道上使用了不同级别的标题诱饵。所以我们计算了每个YouTube视频的标题诱饵分数的差异并绘制出了分布图:

有趣的是,我们看到标题诱饵得分的差异看起来像一个零均值的高斯曲线。这意味着我们不希望YouTube用户在他们的标题中出现默认的“clickbait – iness”。

最后,我们比较了排名前10%和后10%的点击数:

事实证明,“clickbait-y”标题不限于顶级的YouTube用户,它可能不会用一个十分安全的方式来产生更多的意见。“clickbait-iness”对查看次数的总体影响尚不清楚,但我们认为这一特征在我们的模型中不会提供太多的预测能力。

接下来,我们看看标题诱饵分数和视图计数之间的实际散点图:

从这个图中,我们注意到视图计数和标题诱饵得分之间并没有多少关联,这意味着标题诱饵可能不是扩散的先决条件。

接下来,我们决定看看标题中的实际单词。

常见的词和语法

为了验证我们在标题中使用的技巧,我们决定找出最常用的单词和语法。过滤掉一些常见的单词,比如“the”,“to”,“and”等,一些非常普通的单词和单词:

NSFW得分

让我们看一下我们从缩略图中提取的NSFW分数的分布:

NSFW得分严重偏向0,均值是0.107。当我们看NSFW平均分数为前10%的观看视频和最后10%的观看视频时,我们发现这很有趣。

在前10%的情况下,nsfw_score的平均值是0.158,而在最后的10%中,nsfw_score的平均值是0.069。这似乎比诱饵标题分数提供了更多的预测能力,并且证实了我们所知道的所有的长期性卖点。

预测

使用GradientBoostedRegressor,我们绘制特性重要度:

最终,看起来过往表现决定了未来的成功。你的频道最好的预测因素是你之前的视频的观看次数。缩略图的暗示性质和视频标题的“点击率”对观看者所能看到的视图计数的影响很小。最后,我们使用了XGBRegressor来预测日志转换的视图计数。我们使用交叉验证来获得:

R² = 0.750 ± 0.007 RMSE = 0.970 ± 0.021

从我们对真实值图的预测,我们可以看到模型和数据似乎拟合的很好。另外,残差图意味着误差的偏差是由于零均值高斯分布。

最后,我们指数化输出来得到真实的视图计数:

RMSE = 8727.0 ± 100.9

这意味着如果使用我们预测器的YouTube用户,可以预期实际结果在模型结果的8800个实际视图之内。对于一个拥有大约1000个视图的业余YouTube用户来说,这没有什么作用,但是对于一个拥有10万个视图的YouTube用户来说,它是非常有用的。然而,预测视图计数是困难的,所以这些结果是我们所期望的。

模型可能需要更多的调查

最初,当我们计划这个项目时,我们试图预测标题和缩略图本身的视图的数量。不幸的是,我们很快发现,视图的数量更多地与通道信息本身有关——它们的视图典型数量、订阅者数量等。本节将介绍我们尝试过的各种其他模型,以评估标题和缩略图对视图的影响。

标题的反馈神经网络/ LSTMs

由于我们有两个单独的文本序列,所以我们需要找到一种方法来将它们呈现为网络的输入。我们决定将先前的和当前的标题合并为一个明显的分离标记。如果在不同的标题之间确实有区别,那么网络应该获得它。

我们使用GloVe嵌入将每个标题转换成一个序列的向量,然后0 – p相加每个序列长度相同。

  • GloVe嵌入地址:https://nlp.stanford.edu/projects/glove/

首先,我们尝试了一个网络,它是一个相当标准的用于NLP任务的网络:

我们注意到网络训练迅速,但虽然训练损失迅速减少,但验证损失却开始增加。这表明这个模型可能过度拟合了。记住这一点,我们建立了第二个网络:

不同的是,在这个新的网络中,我们添加了更多的LSTM单位和另一个LSTM层。为了避免过度拟合,我们对每一项都进行了更多的规范化。我们训练了大约30个epoch,注意到训练损失会略有下降,但是验证损失也会有很大的波动。最终,仅仅使用视频的标题会产生比信号更多的噪音。每一个epoch都需要很长的时间来训练,特别是在许多的LSTM单元,所以我们决定不继续这条路线。

卷积神经网络:性别

这里的目的是验证缩略图中的人的性别是否与视图的数量相关。我们用这个预先训练好的CNN来提取一个二元性别特征。然而,和大多数性别分类CNN一样,我们的网络在识别缩略图中的面孔方面也遇到了问题。我们的网络也很难处理没有人物的缩略图。考虑到这种方法的问题,以及从每个缩略图中提取人脸所需要的时间,我们决定不将其作为特征提取器使用。

  • CNN地址:https://github.com/yu4u/age-gender-estimation

结论

对于这个项目,我们有很多不同的想法。我们最初试图预测只给出标题和缩略图的视图计数。我们希望神经网络能够学习隐藏的功能,就像YouTube用户写的标题和创建的缩略图一样,但很快就发现这只是一厢情愿的想法。相反,我们能够找到比原始标题和缩略图更有意义的特征,并最终能够创建一个预测器,可以用于适当规模的YouTube频道。如果我们有更多的时间,我们可以尝试更多的事情:

  • 扩大到不同的流派;
  • 在评论中应用情绪分析来创建一个更稳健的可以作为特征使用的“用户配置文件”;
  • 通过对评论的情绪分析来创建一个强大的可以预测的“接收”特征(类似于喜欢/不喜欢);
  • 使用生成模型创建注释;
  • 在缩略图上训练CNN——因为NSFW分数似乎比诱饵标题的分数提供了更多的预测能力,所以CNN对缩略图的应用可能比在标题上训练的LSTM更好。

原文发布于微信公众号 - ATYUN订阅号(atyun_com)

原文发表时间:2018-01-13

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏磐创AI技术团队的专栏

谷歌发布迄今最大注释图像数据集,190万图像目标检测挑战赛启动

1473
来自专栏机器之心

ECCV 2018 | 中山大学&商汤提出部分分组网络PGN,解决实例级人体解析难题

识别每个语义部分(如手臂、腿等)是人体解析中最基本、最重要的一部分。不仅如此,它还在许多高级应用领域中发挥了重要的作用,例如视频监控 [38]、人类行为分析 [...

594
来自专栏机器之心

百度NLP | 神经网络语义匹配技术

百度NLP专栏 作者:百度NLP 一、序言 文本匹配是自然语言处理中一个重要的基础问题,自然语言处理中的许多任务都可以抽象为文本匹配任务。例如网页搜索可抽象为网...

3787
来自专栏专知

【Keras教程】用Encoder-Decoder模型自动撰写文本摘要

【导读】这篇博文介绍了如何在深度学习框架Keras上实现文本摘要问题,探讨了如何使用编码器-解码器递归神经网络体系结构来解决文本摘要问题,如何实现文本摘要问题的...

4545
来自专栏AI科技大本营的专栏

多图|入门必看:万字长文带你轻松了解LSTM全貌

作者 | Edwin Chen 编译 | AI100 第一次接触长短期记忆神经网络(LSTM)时,我惊呆了。 原来,LSTM是神经网络的扩展,非常简单。深度学...

3027
来自专栏机器之心

LSTM入门必读:从基础知识到工作方式详解

选自echen 机器之心编译 参与:机器之心编辑部 长短期记忆(LSTM)是一种非常重要的神经网络技术,其在语音识别和自然语言处理等许多领域都得到了广泛的应用。...

3198
来自专栏编程之旅

算法时间复杂度

很多程序员,做了很长时间的编程工作却始终都弄不明白算法的时间复杂度的估算,这是很可悲的一件事情。因为弄不清楚,所以也就从不深究自己写的代码是否效率底下,是不是可...

591
来自专栏机器之心

ECCV 2018 | 给Cycle-GAN加上时间约束,CMU等提出新型视频转换方法Recycle-GAN

作者:Aayush Bansal、Shugao Ma、Deva Ramanan、Yaser Sheikh

521
来自专栏数据科学与人工智能

【数据挖掘】用文本挖掘和机器学习洞悉数据

文本挖掘是对包含于自然语言文本中数据的分析。它可以帮组一个组织从基于文本的内容中获得潜在的有价值的业务洞察力,比如Word文档,邮件和社交媒体流中发布的帖子,如...

22010
来自专栏PPV课数据科学社区

SPSS扫清障碍:区分T检验与F检验

1. T 检验和 F 检验的由来 一般而言,为了确定从样本 (sample) 统计结果推论至总体时所犯错的概率,我们会利用统计学家所开发的一些统计方法,进行统计...

48217

扫描关注云+社区