本文转载自雷锋网。现在视频已经成为重要的媒介,vlog和视频博主也成为了一种职业,如何提升视频的播放量是内容生产者最头疼的问题之一。当然,网络上有很多内容制作、热点追踪、剪辑技巧分享,但你可能不知道机器学习在其中也能发挥很大的作用。joinintodata的两位作者Lianne和Justin做了硬核的技术分析。他们分析的对象是SydneyCummings,一位在YouTube上崭露头角的健身博主。Sydney是美国国家运动医学学院(NASM)的认证私人教练,并且是一名跳高运动员。她的账号注册于2016年5月17日,累计播放量27031566。她目前拥有21万粉丝,每天稳定更新,极具研究意义。请注意,以下研究将全部使用Python实现。SydneyCummings的头条有一定的公式,比如最近的一个头条《30 分钟手臂和强壮臀肌锻炼!燃烧 310 卡路里!》,通常包括时间、身体部位、消耗的卡路里和其他关于运动的描述性词语。在观众点击这个视频之前,他们会知道一些事情:30分钟——我将在30分钟内完成整个锻炼;手臂和臀大肌——我会锻炼手臂和臀大肌,专注于力量;燃烧310卡路里-我燃烧了相当多的卡路里。掌握以上关键信息就是前期准备,主要有六个步骤:观察数据、用自然语言处理技术对视频进行分类、选择特征、创建目标、构建决策树、读取决策树。接下来,让我们看看笔者是如何一步步带着雷锋网进行研究的。开始之前:抓取数据实际上有许多不同的方法可以抓取YouTube数据。由于这是一个一次性的项目,笔者选择了一种只需要手动操作,不依赖额外工具的简单方法。这是一步一步:选择所有视频;右键单击最近的视频并选择“检查”;将鼠标悬停在每一行上以找到突出显示所有视频的最低级别的HTML代码/元素;例如,如果使用Chrome浏览器,它将如下所示:[图片来源:Sydney的YouTube视频页面所有者:Sydney]右键单击??该元素并选择“复制”,然后选择“复制元素”;将复制的元素粘贴到文本文件中并保存,这里是JupyterLab文本文件并将其另存为sydney.txt;使用Python提取信息并清理数据。现在是有趣的部分,他们将从这些数据中集中提取特征并研究影响播放量的因素。Step1:Observingthedata上一节将数据导入Python,下面是数据集df_videos,一共有837个视频。df_videos有8个特征来描述每个视频的详细信息,包括:标题、发布时间、视频时长、播放量、地址、卡路里、发布日期和发布天数。此外,他们还注意到数据重叠,因为博主多次上传同一个视频,在后续分析中会忽略这个小样本。第2步:使用NLP对视频进行分类在这一步中,他们根据标题中的关键字对视频进行分类。分组标准是:这个视频是关于身体的哪个部位的?这个视频的目的是增肌还是减肥?或者还有其他关键字吗?作者使用NaturalLanguageToolkit(NLTK)(一种常用的Python开源NLP库)来处理字幕。生成关键字列表首先,标记视频的标题。此过程使用空格("")等分隔符将标题文本字符串拆分为不同的标记(单词)。这样,计算机程序就可以更好地理解文本。这些标题中有538个不同的词,下面列出了最常用的标签/词。可以发现使用频率最高的就是那几个词,再次证明博主是真的喜欢标准格式的视频标题。在高频词列表的基础上,作者创建了3个关键词词表,可以用来对下一个链接中的视频进行分类。body_keywords(文本关键字)-这标识了视频所针对的身体部位,例如“完整”身体、“腹肌”、“腿”。workout_type_keywords(fitness-type-keywords)–区分锻炼类型,例如“有氧运动”、“拉伸”、“力量”。其他关键词——这包括常用但难以归类的关键词,如“bootcamp”、“burnout”、“toning”。词干关键字列表在形成这些关键字列表后,作者还提取了词干词。这是为了确保计算机可以识别同义词。例如,ABS是AbdominalExercise的缩写,“abs”和“ab”这两个词具有相同的词干“ab”。YouTube标题的标记和词干除了关键字之外,作者还需要标记和词干标题。这些过程准备进一步匹配的关键字和标题列表。第3步:特征工程经过头脑风暴,他们选择了两种类型的特征——基于关键字和基于时间。基于关键字的特征指示器特征由于上一步的工作,现在有3个关键字列表和浓缩标题可以匹配以对视频进行分类。按body_keywords和workout_type_keywords分类,一个视频有多个关键词。所以在匹配之前,作者还创建了2个特征:area面积和workout_type健身类型。这些功能将视频的所有身体部位和锻炼类型连接成一个字符串。例如,锻炼视频可以同时锻炼“腹肌”和“腿部”,或者同时锻炼“有氧运动”和“力量”。这个视频的特色区域是“腹肌+腿部”,健身类型是“有氧+力量”。同时,作者也将“total”和“full”、“core”和“abs”等相似的关键词识别出来,并归为一组。最后,他们创建了三种不同类型的虚拟特征:is_{}_area,它标识视频是否包含特定的身体部位;其他关键字。为清楚起见,视频标题“LegStrengthWorkout”应具有_leg_area=True、is_strength_workout=True、title_contains_burnout=True,以及所有其他False。FrequencyFeatures除了上述特征,作者还创建了三个特征:num_body_areas、num_workout_types和num_other_keyword,用于计算视频标题中提到的关键词的数量。例如,标题为“AbsandLegsCardioStrengthWorkout”的num_body_areas和num_workout_types均为2。这些特征有助于确定视频中应包含的最佳身体部位数量或锻炼类型。RateFeatures最后但同样重要的是,作者创建了一个特征:calories_per_min(每分钟卡路里)来查看卡路里燃烧的速度。毕竟,观众想要一些明确(且可量化)的锻炼目标。当然,整个过程中难免会出现一些误分类的视频,作者在转向时间特征之前也进行了人工修复,这里不再赘述。基于时间序列的特征利用上述基于关键词的特征,作者发现了流行视频的类型。但这是否意味着博主应该继续发布相同类型的视频?为了回答这个问题,他们还创建了一些基于时间序列的特征:num_same_area,过去30天内针对同一区域发布的视频(包括当前视频)的数量。例如,feature=6,表示除了当前针对上半身的视频外,最近30天内还有5个上半身锻炼视频。num_same_workout,这个特征和num_same_area类似,只是统计的是健身类型。例如,feature=3,这意味着除了当前视频HIIT锻炼之外,最近30天还有2个HIIT锻炼视频。last_same_area,同一身体部位自上次视频以来的天数。比如feature=10,表示上一个abs视频是10天前发的。last_same_workout,同last_same_area,仅适用于健身类型。num_unique_areas,过去30天锻炼了多少身体部位。num_unique_workouts,过去30天内发布的不同锻炼类型的视频数量。这些特征将有助于了解观众是否喜欢相同或不同类型的视频。需要注意的是,博主偶尔会发布与健身无关的视频,浏览量差异较大,因此笔者并未将这些纳入分析。他们还过滤掉前30天的视频,因为它们缺乏足够的历史数据。接下来请看下面特征工程的具体过程。MulticollinearityTest多重共线性检验什么是多重共线性检验,维基百科的解释是,多重共线性(也称为共线性)是一种现象,其中多元回归模型中的预测变量可以相当准确地与其他预测变量进行线性预测。多重共线性不会降低模型整体的预测能力或可靠性,至少在样本数据集中是这样;它只影响单个预测变量的计算。为什么这很重要?假设一位博主只在周一发布有关力量训练的帖子,而她的视频总是在周一获得更高的浏览量。那么在分析流时,应该将它们归因于它们是在星期一发布的事实,还是因为它们是力量训练?为了获得现实的答案,作者必须确保特征之间不存在强共线性。成对相关是常用的方法,但是当出现多个特征(超过一对)时,可能同时存在共线性。因此,作者采用了更复杂的方法——K折交叉验证(K-foldcross-validation)来达到目的。具体过程如下:根据判断,选取一组关键特征进行共线性检验。作者选择了对YouTube视频观看量至关重要的特征,还添加了三个由随机数组成的特征:rand0、rand1、rand2。在比较特征之间的关系时,它们充当锚点。如果一个特征不如这些随机特征重要或相似,那么它不是目标特征的重要自变量。为k折交叉验证准备这些特征。在此过程中,他们转换分类特征:area和workout_type。此转换确保每个类别级别至少有K个值。使用其中一个特征作为目标,其余特征作为自变量来训练预测模型。接下来,作者迭代每个特征并使用其他特征拟合模型来预测它。他们使用简单的梯度提升模型(GBM)和K折验证,并根据目标特征是数字还是分类,应用不同的模型和分数(模型预测能力评估指标)。当目标特征为数字时,作者使用了GradientBoostingRegressor模型和均方根误差(RMSE);当目标特征是分类特征时,使用GradientBoostingClassifier模型和Accuracy(准确率)。对于每个目标,他们打印出K折验证分数(平均分数)和最重要的5个自变量。每个目标特征的研究分数和重要的自变量。作者试图研究每个目标特征及其与自变量的关系。当然,本文不会列出整个过程,而是给出两个例子。作者发现长度(视频长度)和卡路里特征是相关的。这个发现很直观,因为你锻炼的时间越长,你燃烧的卡路里就越多。这种关系并不难理解。长度和卡路里之间存在正相关关系,但不足以将它们直接混为一谈。因为40-45分钟的视频消耗的卡路里与30-35分钟、50-55分钟,甚至60分钟的视频重叠。因此,保留了这两个特征。另外,作者发现num_same_area和area_full,这两个特征也有关联,这个发现有点意外,然后开始解密。下图展示了num_same_area和area的关系。num_same_area特征统计过去30天内为同一部分发布的视频(包括当前视频)的数量。area_ful代表fullbodyworkout,这是悉尼视频中最常见的类型。因此,当num_same_area很大时,视频将用于全身锻炼。假设我们发现更高的num_same_area(>=10)确实会导致更高的YouTube观看次数,但我们无法知道这是因为area_full还是因为num_same_area。因此作者舍弃了num_same_area特征,同样的逻辑也舍弃了num_same_workouts特征。第4步:制定目标您可能还记得,这项研究的目标是增加YouTube观看次数。是不是说我们可以直接以播放量为目标呢?但要小心!播放音量有偏差。观看次数的中位数为27,641,而最高视频达到130万。这种不平衡可能会导致模型的可解释性出现问题。因此,作者创建了特征views_quartile,并针对它。他们将视频分为两类——播放量高的视频(“高”)和播放量低的视频(“低”)。“高”占总浏览量的75%,即浏览量在35578及以上的视频,其余归类为“低”。通过这种方式,作者使用预测模型为前25%播放的视频找到特征组合。第五步:构建决策树一切准备就绪,我们根据目标views_quartile构建决策树模型!为了避免过拟合,作者将一个叶子节点的最小样本设置为10。为了让我们更容易理解,作者将树的最大深度设置为8层。第6步:阅读决策树在最后一步,作者调查并总结了导致高播放或低播放的“分支”。他们发现了什么?发现1:calories_per_min是最重要的特征是的,calories_per_min是最重要的特征。人们似乎不太关心健身类型或身体部位。每分钟消耗卡路里≥12.025属于高消耗,60%(51/(34+51))的视频观看率高。每分钟燃烧更少(≤9.846)卡路里的视频远没有那么受欢迎,只有7.2%(12/(154+12)=)的观看次数更高。对于每分钟消耗的卡路里在9.846到12.025之间的视频,其他因素也会产生更大的影响。发现二:分部位、多种方式锻炼并不能提高播放量。这一发现超出了作者的想象。多多锻炼不是更好吗?当近一个月不同身体部位的运动次数(num_unique_area)较高,≥10时,观看视频的倾向较低。即使每分钟燃烧的卡路里很高,也是如此。结合前两点,78%(42/(12+42))的视频在以下情况下获得更多观看次数:每分钟燃烧大量卡路里(≥12.025)在过去一个月锻炼不同的身体部位更少的数字(发现3:当视频消耗较少的卡路里(calories_per_min≤9.846)时,臀部锻炼很受欢迎,但只要是臀部锻炼,33%(5/(10+5))仍然获得高播放量;否则,只有4.6%(7/(144+7))视频的播放量更高建议:如何提高播放量综上,笔者给雪梨提出了三点建议:建议一:燃烧卡路里卡路里是最重要的特征,12.025是神奇的数字。下表显示不同长度的视频应该燃烧多少卡路里的节点:30分钟锻炼:361卡路里40分钟锻炼:481卡路里50分钟锻炼:601卡路里60分钟锻炼:722卡路里作者还提出了一个猜想:数字(持续时间和卡路里)对人的刺激只是心理上的,而大家可能只是喜欢看到卡路里的前两位数比时间大很多,也就是说可以用更短的时间,消耗更多的能量。更多卡路里。建议2:少用不同身体部位的关键词有时少即是多。人们不喜欢健身游戏中有太多不同的身体部位。根据该模型,一个月内少于10个身体部位的目标组合会更好。作者注意到,Sydney在她最近的视频中使用了更少的身体部位关键词。最值得注意的是,她一直在使用“手臂”或“上半身”而不是“二头肌”或“背部”等词。建议3:发布更多的臀部锻炼悉尼的订阅者可能更多的是喜欢“臀部”塑形而不是增加手臂肌肉的女性。人们愿意牺牲燃烧更少的卡路里来获得更健美的臀部。也许悉尼应该为燃烧更少卡路里的视频投入一些臀部锻炼。建议4:未经证实的想法,例如在月初发起新的活动。月初发布的视频更有可能获得更高的观看次数。也许人们喜欢通过设定新目标来开始新的一个月。其次,避免在5天内发布相同类型的锻炼。最后,作者还指出,这项研究也有一些局限性:这些建议是基于过去的表现。另一方面,YouTubers经常打破旧套路并尝试新想法。鉴于此,我们可以将机器学习应用于他们的竞争对手。仅对标题进行了深入分析,还有一些其他信息,如订阅人数、性别、地区统计等,可能包含更多特征、更准确的发现和解读。
