库和工具,用于在网络上启用数据驱动的用户体验。
对于WebPack用户:
安装和配置猜测Pluesplugin-猜测。
如果您希望尝试单独提供的模块,则packages目录包含三个包:
ga一个用于从Google Analytics(分析)API获取结构化数据的模块,以了解用户导航模式。parser - 提供JavaScript框架解析的模块。这为在Guess Webpack插件中实现的路由功能提供动力。webpack用于在应用程序中设置预测性获取的WebPack插件。它消耗了ga和parser模块,并提供了大量选项,用于配置预测性获取在应用程序中的工作方式。对于非webpack用户:
我们对网站工作流程的预测性提示提供了一组步骤,您可以遵循使用Google Analytics(分析)API集成预测性提取的步骤。
此存储库使用Google Analytics(分析)数据来确定用户主要可能从给定页面访问哪个页面。客户端脚本(您将添加到应用程序中)将请求发送到服务器以获取该页面的URL,以获取该请求,然后预取资源。
Guess.js提供了库和工具,以简化预测性数据分析驱动的方法来改善网络上的用户体验。这些数据可以从任何数量的来源驱动,包括分析或机器学习模型。 Guess.js旨在降低消费和将这种思维应用于所有现代站点和应用程序的摩擦,包括为流行工作流构建库和工具。
将预测性数据分析思维应用于网站可以在多种情况下应用:
通过在可以轻松应用数据驱动方法的生态系统中的不同接触点之间进行协作,我们希望概括常见的基础架构,以最大程度地利用它们在不同技术堆栈中的适用性。
<link rel=prefetch>用于将来导航的开发人员在很大程度上依靠手动阅读描述性分析来告知他们的预摘要的决策。<link rel=prefetch>目前用于总铬pageloads的5%,但这可能更高。Guess.js的第一个大型优先级将通过预测的内容提高Web性能。
通过构建用户可能会访问的页面模型,鉴于任意输入页,解决方案可以计算用户将在用户仍在查看其当前页面时访问给定的下一页或一组页面的可能性。这有可能改善以后的页面访问的页面加载性能,因为在用户的缓存中,页面很有可能。
为了预测用户可能会访问的下一页,解决方案可以使用Google Analytics(分析)API。 Google Analytics(分析)会话数据可用于创建模型,以预测用户将要在网站上访问的最可能的页面。本会话数据的好处是它可以随着时间的推移而发展,因此,如果特定的导航路径发生变化,预测也可以保持最新。
有了这些数据的可用性,引擎可以插入<link rel="[prerender/prefetch/preload]">标签,以加快下一页请求的加载时间。在某些测试中,例如马克·埃德蒙森(Mark Edmondson)使用R的增压页面载荷,这导致页面加载时间提高了30%。他的研究中使用的方法标记涉及使用GTM标签和机器学习来训练模型以进行页面预测。这是机器学习中持续的想法标记,符合云 - 智能预取。
尽管这种方法是正确的,但所使用的方法可以认为有些复杂。可以采用的另一种方法(更简单)是尝试从Google Analytics(分析)API获取准确的预测数据。如果您运行了页面和上一页路径维度的报告,并结合了页面浏览量和退出指标,则应提供足够的数据来连接大多数流行页面的预取。
ML可以帮助提高解决方案预测的总体准确性,但不需要初始实施。可以通过在用户可能会随着时间的推移访问和改进的页面上的模型来实现预测性提取。
深度神经网络特别擅长挑逗可能导致用户选择一个页面而不是另一个页面的复杂性,如果我们想尝试尝试迎合个人用户可能访问的页面的解决方案版本,而“通用/中位数”用户可能会访问接下来。固定的页面序列(上一个,当前,下一个)可能是最初开始处理的最简单的。这意味着建立一个模型,该模型是您一组文档的独特模型。
模型更新往往会定期进行,因此可能会根据新的用户行为设置每晚/每周工作以刷新。这可能是实时完成的,但可能很复杂,因此定期这样做可能就足够了。可以想象一个通用模型代表站点上用户的行为模式,该模型可以由训练有素的状态集,Google Analytics(分析)或您使用新层插入路由器中的自定义描述来驱动,从而使网站能够预测地获取未来页面,从而提高页面负载性能。
投机性预取的可能会在页面加载上导航。这假设存在有关概率的知识的存在,一个页面将需要某个下一页或一组页面,或者可以提供数据驱动方法来确定此类概率的方法。
从延期到UA,可以通过多种方式来完成页面加载的预摘要,以决定何时预取资源(例如,在<link rel=prefetch>的<link rel = prefetch>),在页面空闲时间(通过requestIdlecallback())或其他某些间隔。用户不需要进一步的互动。
当页面中的链接在视口中可见时,一个页面可以推测开始预摘要内容,这表明用户可能有更高的机会需要单击它们。
这是Gatsby(使用React和React路由器)使用的一种方法。他们的具体实现如下:
<Link>组件变得不可见时,链接到预取票的页面的链接“投票”每次都值得较小,因此页面顶部的链接优先于较低的链接。当用户表明他们对某些内容感兴趣时,页面可以开始推测预取资源。这可以采用多种形式,包括当用户选择悬停在链接或UI的某些部分时,将它们导航到单独的页面。一旦有清楚的迹象表明,浏览器可以立即开始获取链接的内容。这是JavaScript库(例如InstantClick)采用的一种方法。
与提前预取内容的任何机制一样,需要非常仔细地接触此内容。在受限制的数据计划上的用户可能不会从提前获取页面中欣赏或受益,尤其是如果他们开始吞噬数据。站点/解决方案可能需要注意这种问题,例如尊重保存数据标头。
预取向“注销”页面的链接可能是不可取的。对于触发页面载荷措施的任何页面也可以说(例如,一键式购买)。解决方案可能希望包含一个从未预拿的URL的黑名单,以增加预取页页面有用的可能性。
过去实现类似建议的一些尝试依赖于<link rel=prerender> 。 Chrome团队目前正在探索RER = Prerender,以支持NostatePrefetch-这种机制的更轻版本,该机制仅预取到HTTP缓存,但没有使用Web平台的其他状态。解决方案应考虑是否依靠替代品来替换rel = prerender或使用预摘要/预紧/其他方法。
Nostateprefetch和预摘要之间有两个关键区别:
Nostate-prefetch是一种机制, <link rel=prefetch>是一个API。可以通过其他入口点请求Nostate-prefetch:OmniBox预测,自定义选项卡, <link rel=prerender> 。
实现是不同的: <link rel=prefetch>预拿一个资源,但在此基础上,nostate-prefetch在资源上运行了预加载扫描仪(在新的新渲染器中),发现了子资源并将其预摘(不再重新填充预装扫描仪)。
在这个问题空间中,值得了解的数据分析有三种主要类型:描述性,预测性和规定性。每种类型都是相关的,并帮助团队利用各种见解。
描述性分析总结了原始数据,并将其变成人类可解释的东西。无论事件何时发生,它都可以查看过去的事件。描述性分析使团队可以从过去的行为中学习,这可以帮助他们影响未来的成果。描述性分析可以确定网站用户以前已查看的网站上的哪些页面以及给定任何给定的输入页面所采用的导航路径。
预测分析“预测”接下来会发生什么。预测分析有助于我们了解未来,并为团队使用数据提供可行的见解。它提供了对未来结果有用的可能性的估计。重要的是要记住,很少有算法可以完全准确地预测未来的事件,但是我们可以使用尽可能多的信号来帮助提高基线准确性。预测分析的基础是基于我们从数据中确定的概率。预测分析可以预测用户可能会访问任意输入页面的下一页或一组页。
规定分析可以开处方不同的可能措施来指导解决方案。规范性分析提供建议,试图量化未来决策的影响可能必须在做出这些决定之前就可能的结果提供建议。规定分析的目的不仅是预测将要发生的事情,而且要进一步发展。告知为什么会发生并提供有关可以利用此类预测的行动的建议。规范性分析可以预测用户将访问的下一页,但也建议采取措施,例如通知您可以自定义他们的体验以利用这些知识的方式。
预取问题空间中预测模型的关键目标是确定给定特定页面请求的用户可能需要的后续请求。这允许服务器或客户端预先提取下一组页面,并尝试在直接导航到页面之前确保它们在用户的缓存中。这个想法是减少整体加载时间。当谨慎地实现此功能时,该技术可以减少页面访问时间和延迟,从而改善整体用户体验。
马尔可夫模型已被广泛用于研究和理解随机(随机概率分布)过程[参考,参考]。已证明它们非常适合建模和预测用户的浏览行为。这些问题的输入往往是用户或用户集(网站范围内)访问的网页的顺序,其目标是构建Markov模型,我们可以用来建模并预测用户接下来很可能访问的页面。马尔可夫进程具有代表访问的页面和边缘的状态,代表了状态之间从分析日志中给定序列计算的状态之间的过渡概率。受过训练的马尔可夫模型可用于预测下一个k先前状态的下一个状态。
在某些应用程序中,一阶马尔可夫模型在预测用户浏览行为方面并不那么准确,因为这些模型并不总是研究过去以区分已经观察到的不同模式。这是经常使用高阶模型的原因之一。这些高阶模型具有局限性,具有状态空间的复杂性,范围较大,有时降低了预测准确性。
克服这个问题的一种方法是训练不同的订单马尔可夫模型,然后我们在预测阶段使用。这是在此参考文献中提出的全级马尔可夫模型中尝试的。但是,这会使州空间的复杂性变得更糟。另一种方法是识别频繁的访问模式(最长的重复子序列),并使用此组序列进行预测。尽管这种方法可以降低状态空间复杂性的数量级,但它可以降低预测准确性。
选择性马尔可夫模型(SMM)也仅在模型中存储某些状态,以解决状态空间复杂性权衡的解决方案。它们以全级马尔可夫模型开头 - 然后使用一种后固定方法来修剪预期的预测指标。结果是一个模型,其具有相同的全订单模型的预测能力,其空间复杂性较小,预测准确性较高。在Deshpane和Karpis中,在预测(频率,置信度,误差)之前,在模型中对修剪状态的不同标准。
在Mabroukeh和Ezeife中,研究了语义丰富的一阶和第二阶马尔可夫模型的性能,并将其与高阶SMM和语义延伸的SMM进行了比较。他们发现语义封闭的SMM的尺寸比频率键入的SMM小16%,并且提供了几乎相等的精度。
观察导航模式可以使我们能够分析用户行为。这种方法需要访问用户会议识别,将会话聚集到相似的群集中,并使用当前和早期的访问模式开发用于预测的模型。该领域的以前许多工作都依赖于聚类方案,例如具有欧几里得距离的K均值聚类技术,以提高预测的信心。使用K均值的缺点之一是很难确定簇数,选择初始随机中心和页面访问顺序并不总是考虑。 Kumar等人对此进行了研究,提出了一种层次聚类技术,使用访问时间长度,频率和高阶Markov模型进行预测,使用了修改的Levenshtein距离,Pagerank。
下一节中引用的许多论文围绕Markov模型,协会规则和聚类。我们的重点是强调与模式发现相关的相关工作的论文,这是我们的重点。
使用一阶马尔可夫模型来建模用户要求的网页序列,以预测他们可能访问的下一页。马尔可夫链使系统能够根据先前状态在导航日志中动态建模URL访问模式。为每个用户培训了“个性化”马尔可夫模型,并用于预测用户的未来会议。实际上,为每个用户构建一个独特的模型非常昂贵,并且当网站拥有大型用户基础时,扩展的成本变得更具挑战性。
第一张纸,研究隐藏的马尔可夫模型(HMM)。作者收集了Web服务器日志,修剪了数据并修补了通过的路径。基于HMM,作者构建了一个用于Web浏览的特定模型,该模型可以预测用户是否有意实时购买。相关措施,例如研究在购买模式时加快操作及其影响。
提出了一个框架,以根据其先前的排名来预测页面的排名位置。假设一组连续的TOP-K排名,作者根据不同的方法来确定预测因子。预测质量被量化为预测和实际排名之间的相似性。详尽的实验是在全球和基于查询的TOP-K排名的现实世界大型数据集上进行的。用于比较Top-K排名列表的各种现有相似性措施,包括在论文中捕获的新颖列表。
建议使用N-Hop Markov模型来预测下一个网页用户可能访问的网页。模式将用户的当前访问顺序与用户的历史Web访问序列相匹配,以提高预取预约准确性。
提出了基于动态聚类的方法,以提高Markov模型的准确性,以表示代表Web导航会话的集合。使用状态克隆概念以一种将相应二阶概率差异的链接分开的方式来复制状态。提出的方法包括一种聚类技术,该聚类技术确定了一种分配与同一克隆相似的二阶概率的链接的方法。
扩展了具有许多导航属性的页面级算法的使用:页面的大小,页面的持续时间,过渡持续时间(依次两个页面访问),页面的频率和过渡。定义基于持续时间的等级(DPR)和基于受欢迎程度的页面等级(PPR)。作者使用持续时间信息,使用页面大小和访问频率来研究过渡和页面的普及。使用页面的普及值,本文试图改善传统的页面级算法,并在给定的TOP-N值下建模下一页预测。
![]() Minko Gechev | ![]() Addy Osmani | ![]() 凯蒂·亨普尼乌斯(Katie Hempenius) | ![]() 凯尔·马修斯(Kyle Mathews) |