Bibliotecas y herramientas para habilitar las experiencias de usuario basadas en datos en la web.
Para usuarios de Webpack:
Instale y configure GuessPlugin: el complemento Guess.js Webpack que automatiza la mayor parte del proceso de configuración para usted como sea posible.
Si desea probar los módulos que ofrecemos individualmente, el directorio packages contiene tres paquetes:
ga : un módulo para obtener datos estructurados de la API de Google Analytics para aprender sobre los patrones de navegación de los usuarios.parser - Un módulo que proporciona el análisis del marco JavaScript. Esto impulsa las capacidades de emparejamiento de ruta implementadas en el complemento Guess Webpack.webpack : un complemento Webpack para configurar la obtención predictiva en su aplicación. Consume los módulos ga y parser y ofrece una gran cantidad de opciones para configurar cómo debería funcionar la recuperación predictiva en su aplicación.Para usuarios que no son de Webpack:
Nuestro flujo de trabajo para la lista predictiva para los sitios proporciona un conjunto de pasos que puede seguir para integrar la obtención predictiva utilizando la API de Google Analytics en su sitio.
Este repositorio utiliza datos de Google Analytics para determinar qué página es más probable que un usuario visite a continuación desde una página determinada. Un script del lado del cliente (que agregará a su aplicación) envía una solicitud al servidor para obtener la URL de la página que debe obtener, y luego prefabrica este recurso.
Guess.js proporciona bibliotecas y herramientas para simplificar enfoques predictivos de datos analíticos para mejorar las experiencias de los usuarios en la web. Estos datos se pueden conducir desde cualquier cantidad de fuentes, incluidos los modelos de análisis o aprendizaje automático. Guess.js tiene como objetivo reducir la fricción de consumir y aplicar este pensamiento a todos los sitios y aplicaciones modernos, incluida la creación de bibliotecas y herramientas para flujos de trabajo populares.
Aplicar el pensamiento predictivo de datos analíticos a los sitios podría aplicarse en varios contextos:
Al colaborar en diferentes puntos de contacto en el ecosistema donde los enfoques basados en datos podrían aplicarse fácilmente, esperamos generalizar las piezas comunes de infraestructura para maximizar su aplicabilidad en diferentes pilas tecnológicas.
<link rel=prefetch> para futuras navegaciones dependen en gran medida de leer manualmente el análisis descriptivo para informar sus decisiones sobre qué prevenir.<link rel=prefetch> se usa actualmente en el 5% de las pageloads de Chrome totales, pero esto podría ser más alto.La primera gran prioridad para Guess.js será mejorar el rendimiento web a través de la prevención predictiva del contenido.
Al construir un modelo de páginas, es probable que un usuario visite, dada una página de entrada arbitraria, una solución podría calcular la probabilidad de que un usuario visite una página o conjunto de páginas siguiente determinada y prejuguen los recursos para ellos mientras el usuario aún ve su página actual. Esto tiene la posibilidad de mejorar el rendimiento de la carga de la página para las visitas posteriores a la página, ya que existe una gran posibilidad de que una página ya esté en la memoria caché del usuario.
Para predecir la página siguiente que es probable que un usuario visite, las soluciones podrían usar la API de Google Analytics. Los datos de la sesión de Google Analytics se pueden usar para crear un modelo para predecir la página más probable que un usuario visitará el próximo en un sitio. El beneficio de esta sesión de datos es que puede evolucionar con el tiempo, de modo que si cambian las rutas de navegación particulares, las predicciones también pueden mantenerse actualizadas.
Con la disponibilidad de estos datos, un motor podría insertar <link rel="[prerender/prefetch/preload]"> Etiquetas para acelerar el tiempo de carga para la solicitud de la página siguiente. En algunas pruebas, como las cargas de página de sobrealimentación de Mark Edmondson con R, esto condujo a una mejora del 30% en los tiempos de carga de la página. La marca de enfoque utilizada en su investigación implicó usar etiquetas GTM y aprendizaje automático para entrenar un modelo para las predicciones de página. Esta es una idea que Mark continuó en el aprendizaje automático se encuentra con la nube: la captación previa inteligente.
Si bien este enfoque es sólido, la metodología utilizada podría considerarse un poco compleja. Otro enfoque que podría tomarse (lo cual es más simple) es intentar obtener datos de predicción precisos de la API de Google Analytics. Si ejecutó un informe para la página y la dimensión de ruta de la página anterior combinada con las métricas de PageViews y sale, esto debería proporcionar suficientes datos para conectar previamente las capturas para las páginas más populares.
ML podría ayudar a mejorar la precisión general de las predicciones de una solución, pero no es una necesidad para una implementación inicial. La recuperación predictiva podría lograrse capacitando un modelo en las páginas que los usuarios probablemente visitarán y mejorarán en este modelo con el tiempo.
Las redes neuronales profundas son particularmente buenas para descubrir las complejidades que pueden llevar a un usuario a elegir una página sobre otra, en particular, si quisiéramos intentar una versión de la solución que se atendiera a las páginas que un usuario individual podría visitar frente a las páginas que un usuario "general/mediano" podría visitar a continuación. Las secuencias de página fijas (previas, actual, siguiente) podrían ser las más fáciles de comenzar a tratar inicialmente. Esto significa construir un modelo que sea exclusivo de su conjunto de documentos.
Las actualizaciones del modelo tienden a hacerse periódicamente, por lo que uno podría configurar un trabajo nocturno/semanal para actualizar en función del nuevo comportamiento del usuario. Esto podría hacerse en tiempo real, pero probablemente sea complejo, por lo que hacerlo periódicamente podría ser suficiente. Uno podría imaginar un modelo genérico que represente patrones de comportamiento para los usuarios en un sitio que puede ser impulsado por un conjunto de estado capacitado, Google Analytics o una descripción personalizada que se complete utilizando una nueva capa en un enrutador que le da al sitio la capacidad de obtener páginas futuras predictivas, mejorando el rendimiento de la carga de la página.
El prejuicio especulativo se puede hacer que las páginas prevenieras se navegarán en la carga de la página. Esto supone la existencia de conocimiento sobre la probabilidad de que una página necesite una determinada página o conjunto de páginas, o un modelo de capacitación que pueda proporcionar un enfoque basado en datos para determinar tales probabilidades.
La comprensión previa en la carga de la página se puede lograr de varias maneras, desde diferir hasta la UA para decidir cuándo prepotear los recursos (por ejemplo, a baja prioridad con <link rel=prefetch> ), durante la hora inactiva de la página (a través de SoldIdlecallback () ()) o en algún otro intervalo. El usuario no requiere más interacción.
Una página podría comenzar especulativamente a la captura de contenido cuando se vean los enlaces en la página en la ventana gráfica, lo que significa que el usuario puede tener una mayor probabilidad de querer hacer clic en ellos.
Este es un enfoque utilizado por Gatsby (que utiliza el enrutador React y React). Su implementación específica es la siguiente:
<Link> se vuelve invisible, el enlace "votos" para la página vinculado a los votos preestacados vale un poco menos de puntos cada vez, por lo que los enlaces en la parte superior de la página se priorizan sobre los más bajos.Una página podría comenzar especulativamente prevenir los recursos cuando un usuario indica que está interesado en algún contenido. Esto puede tomar muchas formas, incluso cuando un usuario elige pasar un enlace o alguna parte de la interfaz de usuario que los navegaría a una página separada. El navegador podría comenzar a obtener contenido para el enlace tan pronto como hubo una clara indicación de interés. Este es un enfoque adoptado por las bibliotecas de JavaScript como InstantClick.
Al igual que con cualquier mecanismo para una captura previa del contenido con anticipación, esto debe abordarse con mucho cuidado. Un usuario en un plan de datos restringido puede no apreciar ni beneficiarse tanto de las páginas que se obtienen con anticipación, en particular si comienzan a comer sus datos. Existen mecanismos que un sitio/solución podría tener en cuenta de esta preocupación, como respetar el encabezado de datos de guardado.
Es probable que la captación de enlaces a las páginas de "cierre de sesión" sea indeseable. Lo mismo podría decirse de cualquier página que active una acción en la carga de página (por ejemplo, compra de un solo clic). Las soluciones pueden desear incluir una lista negra de URL que nunca están prevenidas para aumentar la probabilidad de que una página prevenida sea útil.
Algunos de los intentos de lograr propuestas similares en el pasado se han basado en <link rel=prerender> . El equipo de Chrome actualmente está explorando la deprecación de Rel = Prerender a favor de nostatePrefetch, una versión más ligera de este mecanismo que solo previa previamente al caché HTTP pero no usa ningún otro estado de la plataforma web. Una solución debe tener en cuenta si dependerá del reemplazo de REL = Prerender o utilizando prefetch/precarga/otros enfoques.
Hay dos diferencias clave entre nostateprefetch y pre -captando:
Nostate-Prefetch es un mecanismo, y <link rel=prefetch> es una API. El nostate-prefetch se puede solicitar mediante otros puntos de entrada: predicción de Omnibox, pestañas personalizadas, <link rel=prerender> .
La implementación es diferente: <link rel=prefetch> Prefetta un recurso, pero nostate-prefetch además de eso se ejecuta el escáner de precarga en el recurso (en un nuevo renderizador nuevo), descubre los subconocentes y también los pre-prepara (sin recurrir al escáner preload).
Hay tres tipos principales de análisis de datos que vale la pena conocer en este espacio de problemas: descriptivo, predictivo y prescriptivo. Cada tipo está relacionado y ayuda a los equipos a aprovechar diferentes tipos de información.
El análisis descriptivo resume los datos sin procesar y los convierte en algo interpretable por los humanos. Puede ver los eventos pasados, independientemente de cuándo se han producido los eventos. El análisis descriptivo permite a los equipos aprender de los comportamientos pasados y esto puede ayudarlos a influir en los resultados futuros. El análisis descriptivo podría determinar qué páginas en un sitio han visto previamente los usuarios y qué rutas de navegación han tomado en cualquier página de entrada dada.
El análisis predictivo "predice" lo que puede suceder a continuación. Predictive Analytics nos ayuda a comprender el futuro y ofrece a los equipos información procesable utilizando datos. Proporciona estimaciones de la probabilidad de que un resultado futuro sea útil. Es importante tener en cuenta que pocos algoritmos pueden predecir eventos futuros con una precisión completa, pero podemos usar tantas señales disponibles para nosotros como sea posible para ayudar a mejorar la precisión inicial. La base del análisis predictivo se basa en las probabilidades que determinamos a partir de los datos. El análisis predictivo podría predecir la página siguiente o el conjunto de páginas que un usuario es probable que visite dada una página de entrada arbitraria.
El análisis prescriptivo permite prescribir diferentes acciones posibles para guiar hacia una solución. Prescriptive Analytics brinda asesoramiento, intentando cuantificar el impacto que las decisiones futuras pueden tener que asesorar sobre posibles resultados antes de tomar estas decisiones. El análisis prescriptivo tiene como objetivo no solo predecir lo que va a suceder, sino que va más allá; Informar por qué sucederá y proporcionar recomendaciones sobre acciones que puedan aprovechar tales predicciones. El análisis prescriptivo podría predecir la siguiente página que visitará un usuario, pero también sugerir acciones como informarle sobre las formas en que puede personalizar su experiencia para aprovechar este conocimiento.
El objetivo clave de un modelo de predicción en el espacio de problemas previos a la captación es identificar lo que las solicitudes posteriores que un usuario puede necesitar, dada una solicitud de página específica. Esto permite que un servidor o cliente prefisque el siguiente conjunto de páginas e intente asegurarse de que estén en el caché de un usuario antes de navegar directamente a la página. La idea es reducir el tiempo de carga general. Cuando esto se implementa con cuidado, esta técnica puede reducir los tiempos de acceso y la latencia de la página, mejorando la experiencia general del usuario.
Los modelos de Markov se han utilizado ampliamente para investigar y comprender el proceso estocástico (distribución de probabilidad aleatoria) [Ref, Ref]. Se ha demostrado que son adecuados para modelar y predecir el comportamiento de navegación de un usuario. La entrada para estos problemas tiende a ser la secuencia de páginas web a las que se accede por un usuario o un conjunto de usuarios (en todo el sitio) con el objetivo de construir modelos de Markov que podamos usar para modelar y predecir las páginas que un usuario probablemente accederá a continuación. Un proceso de Markov tiene estados que representan páginas y bordes accedidos que representan probabilidades de transición entre los estados que se calculan a partir de una secuencia dada en un registro de análisis. Se puede utilizar un modelo de Markov capacitado para predecir el siguiente estado dado un conjunto de k estados anteriores.
En algunas aplicaciones, los modelos Markov de primer orden no son tan precisos para predecir los comportamientos de navegación de los usuarios, ya que no siempre analizan el pasado para hacer una distinción entre diferentes patrones que se han observado. Esta es una de las razones por las que a menudo se usan modelos de orden superior. Estos modelos de orden superior tienen limitaciones con la complejidad del espacio de estado, una cobertura menos amplia y, a veces, una precisión de predicción reducida.
Una forma [de referencia] para superar este problema es entrenar a los modelos de Markov de orden variable, que luego usamos durante la fase de predicción. Esto se intentó en el modelo Markov de orden de KTH propuesto en esta ref. Sin embargo, esto puede empeorar la complejidad del espacio de estado. Otro enfoque es identificar patrones de acceso frecuentes (posteriores de repetición más largas) y usar este conjunto de secuencias para predicciones. Aunque este enfoque puede tener un orden de reducción de magnitud en la complejidad del espacio de estado, puede reducir la precisión de la predicción.
Los modelos selectivos de Markov (SMM) que solo almacenan algunos estados dentro del modelo también se han propuesto como una solución a las compensaciones de complejidad del espacio de estado. Comienzan con un modelo de Markov de orden de KTH: un enfoque posterior a la siembra se utiliza para podar estados que no se espera que sean predictores precisos. El resultado de esto es un modelo que tiene el mismo poder de predicción de los modelos de orden de KTH con menos complejidad espacial y mayor precisión de predicción. En Deshpane y Karpis, se analizan diferentes criterios para podar en el modelo antes de la predicción (frecuencia, confianza, error).
En Mabroukeh y Ezeife, se estudió el rendimiento de los modelos de Markov de primer y segundo orden rico en semántico y se comparó con el de SMM de orden superior y SMM con precisión semántica. Descubrieron que el SMM premántico premiado tiene un tamaño 16% más pequeño que el SMM premedido por frecuencia y proporciona casi una precisión igual.
Observar los patrones de navegación puede permitirnos analizar el comportamiento del usuario. Este enfoque requiere acceso a la identificación de la sesión de usuario, las sesiones de agrupación en grupos similares y el desarrollo de un modelo para la predicción utilizando patrones de acceso actuales y anteriores. Gran parte del trabajo anterior en este campo se ha basado en esquemas de agrupación como la técnica de agrupación de K-means con la distancia euclidiana para mejorar la confianza de las predicciones. Uno de los inconvenientes del uso de K-Means es la dificultad para decidir el número de grupos, no siempre se considera la selección del centro aleatorio inicial y el orden de las visitas de página. Kumar et al investigaron esto, proponiendo una técnica de agrupación jerárquica con una distancia modificada de Levenshtein, PageRank utilizando longitud de acceso de acceso, frecuencia y modelos Markov de orden superior para su predicción.
Muchos de los documentos mencionados en la siguiente sección se centran en el modelo de Markov, las reglas de asociación y la agrupación. Los documentos que destacan el trabajo relevante relacionado con el descubrimiento de patrones para la precisión de la predicción de la página en evolución son nuestro enfoque.
Utiliza modelos Markov de primer orden para modelar la secuencia de páginas web solicitadas por un usuario para predecir la página siguiente al que probablemente accederá. Las cadenas de Markov permiten que el sistema modele dinámicamente los patrones de acceso de URL observados en los registros de navegación basados en el estado anterior. Un modelo de Markov "personalizado" está capacitado para cada usuario y se usa para predecir las futuras sesiones de un usuario. En la práctica, es demasiado costoso construir un modelo único para cada usuario y el costo de escalar, esto se vuelve más desafiante cuando un sitio tiene una gran base de usuarios.
Primer artículo para investigar los modelos ocultos de Markov (HMM). El autor recopiló registros de servidores web, podó los datos y parcheó las rutas que pasaron los usuarios. Según HMM, el autor construyó un modelo específico para la navegación web que predice si los usuarios tienen la intención de comprar en tiempo real. Se investigan medidas relacionadas, como acelerar la operación y su impacto cuando en un modo de compra.
Propone un marco para predecir posiciones de clasificación de una página basadas en sus clasificaciones anteriores. Suponiendo un conjunto de clasificaciones sucesivas de Top-K, el autor identifica predictores basados en diferentes metodologías. La calidad de la predicción se cuantifica como la similitud entre las clasificaciones predichas y reales. Se realizaron experimentos exhaustivos en un conjunto de datos a gran escala del mundo real para la clasificación global y basada en las consultas. Una variedad de medidas de similitud existentes para comparar listas clasificadas de Top-K, incluida una novedosa capturada en el documento.
Propone el uso de modelos N-Hop Markov para predecir la próxima página web que los usuarios pueden acceder. El patrón coincide con la secuencia de acceso actual del usuario con las secuencias históricas de acceso web del usuario para mejorar la precisión de la predicción para los prestados.
Propone métodos basados en agrupación dinámica para aumentar la precisión del modelo de Markov en la representación de una colección de sesiones de navegación web. Utiliza un concepto de clonación de estado para duplicar los estados de una manera que separa en los enlaces cuyas probabilidades de segundo orden correspondientes divergen. El método propuesto incluye una técnica de agrupación que determina una forma de asignar en enlace con probabilidades similares de segundo orden al mismo clon.
Extiende el uso de un algoritmo de rango de página con numerosos atributos de navegación: tamaño de la página, tiempo de duración de la página, duración de la transición (visitas de dos páginas secuencialmente), frecuencia de página y transición. Define un rango basado en la duración (DPR) y el rango de página basado en popularidad (PPR). El autor analizó la popularidad de las transiciones y las páginas utilizando información de duración, utilizándola con el tamaño de la página y la frecuencia de la visita. Utilizando el valor de popularidad de las páginas, este documento intenta mejorar los algoritmos de rango de página convencionales y modelar una predicción de la página siguiente bajo un valor superior dado.
![]() Minko Gechev | ![]() Addy Osmani | ![]() Katie Hempenius | ![]() Kyle Mathews |