全面指南:通过机器学习对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 条评论
登录 后参与评论

相关文章

自然语言处理指南(第四部分)

请务必首先检查第1部分,第2 部分和第3部分!

1888
来自专栏ATYUN订阅号

机器学习项目:建立一个酒店推荐引擎

所有在线旅行社都在争先恐后地满足亚马逊和网飞(Netflix)设定的AI驱动的个性化标准。此外,在线旅游已经成为一个竞争激烈的领域,品牌试图通过推荐,对比,匹配...

722
来自专栏小樱的经验随笔

牛顿迭代法(Newton's Method)

牛顿迭代法(Newton's Method)                    简介 牛顿迭代法(简称牛顿法)由英国著名的数学家牛顿爵士最早提出。但是,这...

2945
来自专栏AI研习社

深度学习下的医学图像分析(四)

对与深度学习相关的医疗保障工作而言,2017 年的 “Nvidia GTC 大会” 绝对是一个绝佳的信息来源。在大会上,有诸如 Ian GoodFellow 和...

3355
来自专栏CDA数据分析师

工具 | 用Python做自然语言处理必知的八个工具

Python以其清晰简洁的语法、易用和可扩展性以及丰富庞大的库深受广大开发者喜爱。其内置的非常强大的机器学习代码库和数学库,使Python理所当然成为自然语言处...

1686
来自专栏瓜大三哥

人脸识别

1.人脸识别的难点 用户配合度 相似性 易变形 2.人脸识别的评测方法 LFW数据集(Labeled Faces in the wild):该数据库工有1323...

2517
来自专栏机器之心

现场报道 | IJCAI 2017四大论文奖项揭晓:牛津大学获最佳杰出论文

机器之心报道 机器之心编辑部 IJCAI(人工智能国际联合大会)是人工智能领域的顶级综合会议,被中国计算机学会推荐国际学术会议列表认定为 A 类会议。IJCAI...

2836
来自专栏段石石的专栏

Word2Vec 的迁移实践:Tag2Vec

今天我们就来重点关注下基于用户行为的内容表示的一些有意思的东西。

5272
来自专栏AI研习社

手把手教你用 R 语言分析歌词

翻译 | 刘朋 Noddleslee 程思婕 余杭 整理 | 凡江

1393
来自专栏AI科技评论

开发丨深度学习框架太抽象?其实不外乎这五大核心组件

许多初学者觉得深度学习框架抽象,虽然调用了几个函数/方法,计算了几个数学难题,但始终不能理解这些框架的全貌。 为了更好地认识深度学习框架,也为了给一些想要自己亲...

3414

扫码关注云+社区