1. 您的位置:首页 > seo技术 >内容

尝试预测Google排名的实验

Google Prediction Machine Learning Experiment

机器学习正在迅速成为许多大公司必不可少的工具。 毫无疑问,每个人都听说过Google的AI算法击败了围棋世界冠军以及RankBrain等技术,但是机器学习并不一定要成为数学研究人员的神秘主题。 有许多平易近人的库和技术,它们有望对任何有数据可玩的行业都非常有用。

机器学习还具有颠覆传统网站营销和SEO的能力。 去年下半年,我和我的同事(天真地)开始了一项实验,其中我们投放了几种流行的机器学习算法来预测Google的排名。 我们最终完成了一个装配,该装配在数据集上实现了41%的真实正值和41%的真实负值。

在以下各段中,我将带您完成我们的实验,还将讨论一些对SEO开始理解很重要的重要库和技术。

我们的实验

到2015年底,我们开始越来越多地听到关于机器学习及其使用大量数据的承诺。 我们投入的时间越多,技术就越丰富,很快就清楚了,有人帮助我们穿越这个世界会很有帮助。

大约那时,我们遇到了一位来自巴西的杰出数据科学家,名为Alejandro Simkievich。 对于Simkievich而言,对我们而言有趣的是,他一直在搜索相关性和转化率优化(CRO)领域工作,并且在重要的Kaggle比赛中排名很高。 (对于不熟悉的人,Kaggle是一个网站,为数据科学家和机器学习爱好者团体举办机器学习竞赛。)

Simkievich是数据科学/机器学习咨询公司Statec的所有者,其客户遍布消费品,汽车,市场营销和互联网领域。 Statec的许多工作都集中在评估电子商务搜索引擎的相关性上。 一起工作似乎是很自然的选择,因为我们痴迷于使用数据来帮助SEO进行决策。

我们希望设定宏伟的目标,因此我们决定查看是否可以使用抓取,排名***,链接工具和其他工具提供的数据,以查看是否可以创建功能来预测广告的排名一个网页。 尽管我们知道成功的可能性很小,但我们仍然为获得惊人胜利的机会以及学习一些真正有趣的技术而努力。

数据

从根本上讲,机器学习正在使用计算机程序来获取数据并以提供有价值的回报的方式对其进行转换。 “变换”是一个非常松散使用的词,因为它并不能完全代表所有涉及的事物,但是为了便于理解而选择了它。 这里的重点是所有机器学习都从某种类型的输入数据开始。

(注意:有很多免费的教程和课程可以很好地介绍机器学习的基础知识,因此我们在这里不做。如果您有兴趣学习更多,Andrew Ng在Coursera上提供了出色的免费课程这里。)

最重要的是,我们必须找到可用于训练机器学习模型的数据。 在这一点上,我们不知道到底有用什么,所以我们使用了厨房水槽的方法,并尽可能多地获取了功能。 GetStat和Majestic在提供许多基础数据方面非常宝贵,我们构建了一个搜寻器来捕获其他所有内容。

Image of data used for ****ysis

我们的目标是最终获得足够的数据来成功训练模型(稍后会详细介绍),这意味着大量数据。 对于第一个模型,我们有大约200,000个观测值(行)和54个属性(列)。

一点背景

如前所述,我不会详细讨论机器学习,但重要的是要掌握一些要点,以理解下一部分。 总体而言,当今许多机器学习工作都涉及回归,分类和聚类算法。 我将在这里定义前两个,因为它们与我们的项目有关。

Image showing the difference between classification and regression algorithms
  • 回归算法通常可用于预测单个数字。 如果您需要创建一种基于股票特征预测股票价格的算法,则可以选择这种类型的模型。 这些称为连续变量。
  • 分类算法用于预测可能答案类别的成员。 这可以是简单的“是或否”分类,也可以是“红色,绿色或蓝色”。 如果您需要根据特征预测未知人物是男性还是女性,则可以选择这种类型的模型。 这些称为离散变量。

机器学习现在是一个非常技术性的领域,许多前沿的工作都需要熟悉线性代数,微积分,数学符号和像Python这样的编程语言。 但是,帮助我在一个可理解的水平上理解总体流程的项目之一是,将机器学习模型视为对您提供的数据中的特征施加权重。 功能越重要,重量越重。

当您阅读“训练模型”时,可视化通过模型连接到每个砝码的字符串是有帮助的,并且在模型进行猜测时,将使用成本函数来告诉您猜测的错误程度以及如何轻轻地猜测,或者严厉地,朝正确答案的方向拉弦,校正所有的重量。

下面的部分在术语上有点技术性,因此,如果您觉得太多,可以随时跳到最后一部分的结果和要点。

处理Google排名

现在我们有了数据,我们尝试了几种方法来预测每个网页的Google排名问题。

最初,我们使用回归算法。 也就是说,我们试图预测给定搜索词的站点的确切排名(例如,一个站点将对搜索词Y排名X),但是几周后,我们意识到该任务太困难了。 首先,根据定义,排名是某个站点相对于其他站点的特征,而不是该站点的固有特征(例如字数)。 由于我们不可能用给定搜索词排名的所有站点来提供算法,因此我们对问题进行了重新表述。

我们意识到,就Google排名而言,最重要的是给定网站是否最终出现在给定搜索词的首页上。 因此,我们重新设计了问题:如果我们试图预测某个网站是否会在某个搜索字词中最终排在Google排名前10位的网站中,该怎么办? 我们选择了前十名,因为正如他们所说,您可以在第二页上隐藏尸体!

从这个角度来看,问题变成了二进制(是或否)分类问题,其中我们只有两个类别:a)该站点是排名前10的站点,或者b)该站点不是排名前10的站点。 此外,我们没有做出二进制预测,而是决定预测给定站点属于每个类别的概率。

后来,为了使自己做出明确的决定,我们确定了一个阈值,在该阈值之上,我们预测一个站点将排名前10位。例如,如果我们预测该阈值是0.85,那么如果我们预测该概率为如果网站排名前10位高于0.85,我们继续进行下去,并预测该网站将排名前10位。

为了衡量算法的性能,我们决定使用混淆矩阵。

下表概述了整个过程。

Image visually showing our machine learning process

清理数据

我们使用了200,000条记录的数据集,其中包括大约2,000个不同的关键字/搜索词。

通常,我们可以将使用的属性分为三类:

  • 数值特征
  • 分类变量
  • 文字功能

数值特征是可以在无限或有限间隔内取任意数量的数值。 我们使用的一些数字功能是易读性,等级级别,文本长度,每句话平均单词数,URL长度,网站加载时间,引用网站的域名数量,引用网站的.edu域名数量, .gov域名是指网站,多个主题的信任流,引文流,Facebook共享,LinkedIn共享和Google共享。 我们对这些特征应用了标准的标量(乘数)以将它们围绕均值置中,但除此之外,它们不需要进一步的预处理。

类别变量是一个可以采用有限数量的值的变量,每个值代表一个不同的组或类别。 除了可信任的网站主题之外,我们使用的分类变量还包括最常用的关键字以及网站中的位置和组织。 这些功能的预处理包括将它们转换为数字标签并随后进行一键编码。

文字特征显然是由文字组成的。 它们包括搜索词,网站内容,标题,元描述,锚文本,标题(H3,H2,H1)等。

重要的是要强调指出,某些分类属性(例如,站点上提到的组织)和文本之间没有明显的区别,并且某些属性确实在不同模型中从一种类别切换到另一种类别。

特征工程

我们设计了其他功能,这些功能与等级相关。

这些功能大多数都是布尔值(对或错),但有些是数字的。 布尔特征的一个示例是网站文本中包含的确切搜索词,而数字特征是网站文本中包含多少个搜索词。

以下是我们设计的一些功能。

Image showing boolean and quantitative features that were engineered

运行TF-IDF

为了预处理文本特征,我们使用了TF-IDF算法(术语频率,逆文档频率)。 该算法将每个实例视为一个文档,将整个实例集视为一个语料库。 然后,它为每个术语分配分数,其中术语在文档中的频率越高,语料库中的频率越低,分数越高。

我们尝试了两种TF-IDF方法,根据模型,结果略有不同。 第一种方法包括首先串联所有文本特征,然后应用TF-IDF算法(即,单个实例的所有文本列的串联成为文档,而所有此类实例的**变为语料库)。 第二种方法包括将TF-IDF算法分别应用于每个功能(即,每个单独的列都是一个语料库),然后将结果数组连接起来。

TF-IDF之后的结果数组非常稀疏(给定实例的大多数列为零),因此我们应用了降维(单值分解)以减少属性/列的数量。

最后一步是将所有要素类别的所有结果列连接到一个数组中。 我们在执行上述所有步骤之后(清理特征,将分类特征转换为标签并在标签上执行一键编码,将TF-IDF应用于文本特征并缩放所有特征以将它们围绕均值居中)进行了操作。

模型和合奏

获得并连接了所有功能后,我们在它们上运行了许多不同的算法。 最有前途的算法是梯度提升分类器,岭分类器和两层神经网络。

最后,我们使用简单的平均值汇总了模型结果,因此我们看到了一些额外的收益,因为不同的模型倾向于具有不同的偏差。

优化阈值

最后一步是确定一个阈值,以将概率估计值转换为二进制预测值(“是的,我们预测此网站将在Google中排名前10位”或“否,我们预测此网站将在Google中排名前10位”)。 为此,我们优化了交叉验证集,然后将获得的阈值用于测试集。

结果

我们认为衡量模型有效性的最具代表性的指标是混淆矩阵。 混淆矩阵是一个表,通常用于描述对一组已知真实值的测试数据的分类模型(或“分类器”)的性能。

我敢肯定,您听到过这样的说法:“一天两次时钟坏了是正确的。” 每个关键字有100个结果,随机猜测可以正确地预测90%的时间“不在前10名”。 混淆矩阵可确保肯定答案和否定答****性。 在我们的最佳模型中,我们获得了大约41%的真实正值和41%的真实负值。

Image showing confusion matrix of our best model

可视化模型有效性的另一种方法是使用ROC曲线。 ROC曲线是“图解图,它说明了二元分类器系统的判别阈值变化时的性能。 通过绘制各种阈值设置下的真实阳性率(TPR)与阳性阳性率(FPR)绘制曲线。” 集成中使用的非线性模型是XGBoost和神经网络。 线性模型是逻辑回归。 整体图表示线性模型和非线性模型的组合。

Image of ROC curve generated by our model

XGBoost是“极端梯度增强”的缩写,梯度增强是“一种用于回归和分类问题的机器学习技术,它以弱预测模型的**形式生成预测模型,通常是决策树。”

下图显示了特征类别对此模型最终预测准确性的相对贡献。 与神经网络不同,XGBoost与某些其他模型一起使您可以轻松查看模型,以告知特定功能所具有的相对预测权重。

Graph of predictive importance by feature category

使我们印象深刻的是,我们能够建立一个模型,该模型从我们提供的功能中可以显示出预测能力。 我们非常担心功能的局限性会导致该项目完全徒劳。 理想情况下,我们将有一种方式可以爬网整个站点以获得整体相关性。 也许我们可以收集有关一家企业的Google评论数量的数据。 我们还了解到,与链接和引用相关的Google数据要比我们希望收集的要好得多。

我们学到了什么

机器学习是一个非常强大的工具,即使您不完全了解其工作原理的复杂性,也可以使用它。 我已经阅读了许多有关RankBrain以及工程师无法理解其工作原理的文章。 这是机器学习的魅力所在。 与进化过程相似,在进化过程中,生命获得了不同的特征,有的活着,有的死了。机器学习的过程找到了答案的方法,而没有给出答案。

尽管我们对第一个模型的结果感到满意,但重要的是要了解,与庞大的互联网规模相比,这是在相对较小的样本上进行的。 构建任何类型的机器学习工具的主要目标之一是泛化思想,并对从未见过的数据进行有效操作。 我们目前正在针对新查询测试我们的模型,并将继续完善。

在这个项目中,对我来说最大的收获就是刚刚开始了解机器学习对我们行业的巨大价值。 我认为它会影响SEO的几种方法是:

  • 文本生成,摘要和分类。 考虑内容和网站的智能摘录,这些摘录可能会基于分类进行自我组织。
  • 无需编写另一个ALT参数(见下文)。
  • 查看用户行为和访问者分类/评分的新方法。
  • 集成了使用语音和智能问答风格的内容/产品/推荐系统导航网站的新方法。
  • 全新的挖掘分析和爬网数据的方式,可洞悉访问者,会话,趋势和潜在的可见性。
  • 在将广告渠道分配给相关用户方面,许多更智能的工具。

这个项目更多的是为我们学习,而不是完成圣杯。 就像我给新开发人员的建议(“边做边学最好的东西”)一样,弄脏双手并开始培训很重要。 您将学习如何收集,清理和组织数据,并熟悉各种机器学习工具的来龙去脉。

更多的技术SEO对此很熟悉,但是该行业也在开发工具来帮助那些技术上不太熟练的人。 我在下面整理了一些有助于理解该空间的资源。

感兴趣的最新技术

重要的是要理解,机器学习的绝大部分不是关于构建人类级别的AI,而是关于使用数据来解决实际问题。 以下是最近发生这种情况的一些示例。

神经对话2

NeuralTalk2是Andrej Karpathy编写的Torch模型,用于生成给定图像的自然语言描述。 想象一下,再也不必再写入另一个ALT参数,而让机器为您完成此操作。 Facebook已经在采用这项技术。

微软机器人和Alexa

研究人员正在掌握语音处理功能,并开始能够理解单词背后的含义(根据上下文)。 这对传统网站在信息访问方面具有深远的影响。 该网站可以与您的访问者进行对话,而不是导航和搜索。 以Alexa为例,根本没有网站,只有对话。

自然语言处理

目前,翻译和内容语义领域正在开展大量工作。 它远远超出了传统的马尔可夫链和文本的n-gram表示形式。 机器正在显示跨域汇总和生成文本的能力的初步提示。 “递归神经网络的不合理的有效性”是去年的一篇很棒的文章,概述了这里可能发生的事情。

家得宝搜索相关性竞赛

家得宝(Home Depot)最近赞助了Kaggle的公开比赛,以预测其搜索结果与访客查询的相关性。 您可以在该线程中看到获胜作品的一些流程。

如何开始机器学习

因为我们作为搜索市场营销者,生活在数据的世界中,所以对我们而言,了解可以使我们在工作中做出更好决策的新技术至关重要。 在许多地方,机器学习可以帮助我们更好地理解用户的意图,从而更好地理解用户的行为。

对于那些对机器学习感兴趣但对复杂性不知所措的人,我建议使用Data Science Dojo。 有一些使用Microsoft的Machine Learning Studio的简单教程,对新手来说很容易上手。 这也意味着您无需在构建第一个模型之前就学习编码。

如果您对更强大的自定义模型感兴趣,并且不惧怕一些代码,那么我可能会先听听斯坦福大学的贾斯汀·约翰逊的讲座,因为它涵盖了四个最常见的库。 做好任何功绩,必须对Python(也许还有R)有一个很好的了解。 Christopher Olah的博客很好,涵盖了许多涉及数据科学的有趣话题。

最后,Github是您的朋友。 我发现自己正在查看最近添加的回购,以查看人们正在从事的非常有趣的项目。 在许多情况下,数据随时可用,并且有经过预训练的模型可以很好地执行某些任务。 环顾四周并熟悉各种可能性,将使您对这个令人惊奇的领域有所了解。


本文中表达的观点是来宾作者的观点,不一定是Search Engine Land。 工作人员作者在此处列出。

本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。如若转载,请注明出处:http://www.botadmin.cn/sylc/9679.html