Xiaohongshu recomienda la práctica de big data en Alibaba Cloud

Introducción: El  contenido de este artículo se divide principalmente en tres partes, en la primera hablaré sobre los escenarios de uso de la computación en tiempo real en el negocio de la recomendación. La segunda parte habla de cómo Xiaohongshu usa algunas funciones nuevas de Flink. La tercera parte habla principalmente de algunos escenarios de análisis en tiempo real de OLAP y la cooperación con Alibaba Cloud MC-Hologres.

Autor: pequeño libro rojo responsable del proyecto recomendó  Guo

Arquitectura empresarial recomendada por Xiaohongshu

1.png

En primer lugar, en esta imagen se dibujan algunos servicios de recomendación típicos. Los módulos principales que usan big data son el motor de recomendación en línea en el extremo izquierdo. Por lo general, el motor de recomendación se dividirá en varios pasos, como recuperación, clasificación y última fila. No entraré en detalles aquí. Arriba. Principalmente desde la perspectiva del big data, el motor de recomendaciones utiliza principalmente modelos predictivos para estimar cuánto les gusta a los usuarios cada nota candidata. Decide qué notas recomendar a los usuarios de acuerdo con determinadas estrategias. El modelo de recomendación debe capturar las características de las notas cuando se usa, y estas características se devolverán a nuestros datos de entrenamiento para entrenar nuevos modelos. Una vez que el motor de recomendaciones devuelve las notas, el comportamiento de consumo de las notas por parte del usuario, incluidos los comportamientos como la visualización, el clic y el gusto, formará el flujo de comportamiento del usuario. Estos flujos de comportamiento del usuario combinan flujos de características para generar datos de entrenamiento del modelo para iterar el modelo. Después de combinar la información de los usuarios y las notas, se generarán algunos informes de análisis utilizados en los retratos de usuarios y notas y los servicios recomendados.
Después de más de un año de transformación, en el escenario recomendado de Xiaohongshu, además de la necesidad de participación humana en la estrategia iterativa desde el análisis de datos hasta la estrategia, los otros módulos se actualizan básicamente en tiempo real o casi en tiempo real.

Aplicación informática en tiempo real para empresas recomendadas

2.png

Ampliemos el cálculo en tiempo real después de que se devuelvan los datos de las funciones y los comportamientos del usuario, y cómo usamos los datos que generan. Cuando el motor de recomendaciones genera el flujo de características, el flujo de características es extremadamente grande, incluidas todas las notas devueltas recomendadas, que pueden incluir casi un centenar, y todas las características de estas notas, por lo que probablemente haya cientos de estas características en total. Nuestro enfoque actual es escribir las características en una caché kv eficiente y desarrollada por nosotros mismos durante varias horas, y luego los datos del comportamiento del usuario se devuelven del cliente y luego comenzamos el procesamiento del flujo de datos.
Nuestro primer paso es atribuir y resumir el comportamiento de usuario que gestiona el cliente. Esto es lo que son la atribución y la agregación. Porque en la APLICACIÓN Xiaohongshu, la administración del cliente está dividida en páginas. Por ejemplo, el usuario lee y hace clic en la nota en la recomendación de la página de inicio. Después de hacer clic, el usuario saltará a la página de notas y luego el usuario navegará en la página de notas Esta nota y me gusta. Al mismo tiempo, el usuario puede hacer clic en el avatar del autor para ingresar a la página personal del autor y seguir al autor en la página personal. La atribución significa que esta serie de comportamientos de los usuarios se cuentan como comportamientos generados por las recomendaciones de la página de inicio y no se mezclarán con otros negocios. Dado que el usuario de búsqueda ve la misma nota en la búsqueda, puede devolver el mismo resultado. Por tanto, tenemos que distinguir qué empresa es responsable del comportamiento del usuario, esto es atribución.

Entonces resumen se refiere a la serie de comportamientos de los usuarios, respecto a la misma nota generaremos un registro resumen, que puede facilitar el análisis posterior. Luego, después de la atribución, habrá un flujo de datos de comportamiento de un solo usuario en tiempo real. En el lado del resumen, debido a que hay un período de ventana, los datos de resumen generalmente se retrasan unos 20 minutos. Después de generar el flujo de datos de atribución y resumen, agregaremos algunos datos de la tabla de dimensiones. Encontraremos las características que recomendamos en ese momento en función de las notas del usuario. Al mismo tiempo, también combinaremos algunas notas e información básica del usuario. Se agrega información básica al flujo de datos. En realidad, hay cuatro escenarios de usuarios más importantes. El primer escenario es generar información de desglose para cada negocio. Esto es principalmente para saber que un determinado usuario se encuentra en diferentes dimensiones de nota, su tasa de clics y algunos otros indicadores de negocio. Al mismo tiempo, también puedo conocer la tasa de clics de una nota para diferentes usuarios. Esta es una característica más importante en nuestra recomendación en tiempo real. Otra cosa muy importante es una tabla ancha que analizamos en tiempo real. La tabla ancha es la información resumida que convertimos la información del usuario, la información de la nota y la interacción de la nota del usuario en una tabla multidimensional para el análisis en tiempo real. Esta será Cuéntale a todos con más detalle. Luego hay dos más importantes. Uno es la información de entrenamiento en tiempo real. La información de entrenamiento es que amplié la información del usuario y la interacción de la nota. Recogí la función al ordenar, y esta función más algunas etiquetas que resumimos. , Entrene el modelo para actualizar el modelo. Luego, la otra es que toda mi información resumida ingresará al almacén de datos fuera de línea, y luego se llevarán a cabo algunos análisis posteriores y procesamiento de informes.

Optimización de la informática de transmisión: integración de transmisión por lotes de Flink

3.png

Luego hablaré sobre cómo usamos algunas características nuevas de Flink para optimizar el proceso de computación de flujo. Hablo principalmente de dos puntos en esto, el primero de los cuales es la integración de lote y flujo.
Acabo de decir que analizamos el comportamiento de un usuario en función del comportamiento de la nota. La información de resumen aquí es en realidad mucha información. Entre la información de resumen, excepto por la más simple, por ejemplo, ¿le gustó al usuario marcar esta nota? Hay algunas etiquetas más complejas, como cuánto tiempo permanece el usuario en la página de la nota, o si el clic anterior de esta nota es un clic válido, necesitamos saber si el Si el usuario permanece más de 5 segundos después de hacer clic, entonces el clic es válido. Entonces, al igual que este tipo de lógica compleja, esperamos que se implemente solo una vez en nuestro sistema, y ​​luego se pueda usar en cálculos en tiempo real y por lotes al mismo tiempo. Entonces, en el sentido tradicional, esto es difícil, porque en la mayoría de las implementaciones, batch y stream son dos versiones, es decir, estamos en Flink. Por ejemplo, hemos implementado una versión de la definición de clic efectivo, y también necesitaremos Realice la definición de una versión sin conexión de clics válidos, esta puede ser una versión escrita en SQL. Entonces Xiaohongshu usa una nueva función en FLIP-27. El archivo de registro tiene la forma de un lote, que se puede convertir en un flujo. De esta manera, puedo lograr un flujo de lotes unificado en el sentido del código.

Optimización de Stream Computing: optimización de múltiples sumideros

4.png

Luego, otra función de Flink es Optimización de múltiples sumideros en Flink 1.11. Significa que se escribirá una copia de mis datos en varias aplicaciones de datos. Por ejemplo, tendré que crear una tabla amplia de comportamiento del usuario al mismo tiempo y también generar datos sin conexión. Entonces, lo que hace la Optimización de múltiples sumideros es que solo necesita leer de Kafka una vez. Si es la misma clave, solo necesita ir a Buscar una vez para generar múltiples copias de datos y escribir en múltiples sumideros al mismo tiempo, lo que puede reducir en gran medida Nuestra presión sobre Kafka y presión sobre las consultas de kv.

Escena típica de Xiaohongshu OLAP

5.png

Finalmente, permítanme hablar sobre una colaboración entre nuestro escenario OLAP y Alibaba Cloud MaxCompute y Hologres. Xiaohongshu tiene muchos escenarios OLAP bajo el negocio de recomendación. Aquí hablaré sobre 4 escenarios más comunes. El más común es en realidad un análisis en tiempo real basado en la comparación del grupo experimental del usuario. Debido a que necesitamos muchas estrategias de ajuste o modelos de actualización en el negocio de la recomendación, y luego, cada vez que ajustamos la estrategia y actualizamos el modelo, abriremos un experimento para colocar a los usuarios en diferentes ABtests para comparar los comportamientos de los usuarios. De hecho, un usuario participará en varios experimentos al mismo tiempo durante la recomendación. Cada experimento pertenece a un grupo experimental. El análisis experimental que hacemos por agrupación de experimentos es sacar un experimento y luego resumir el comportamiento y los datos del usuario. , De acuerdo con el grupo experimental en este experimento, realice un análisis dimensional para ver la diferencia en los indicadores de usuario entre los diferentes grupos experimentales. Entonces, este escenario es un escenario muy común, pero también es un escenario muy intensivo en computación, porque debe agruparse de acuerdo con la etiqueta experimental del usuario.
Entonces, otro escenario es que la recomendación de nuestro Xiaohongshu en realidad se ejecuta en varios centros de datos. Los diferentes centros de datos a menudo tienen algunos cambios, como cambios en la operación y el mantenimiento. Necesitamos iniciar un nuevo servicio, o Quizás algunos modelos nuevos necesiten conectarse en línea en un determinado centro de computación primero, luego necesitamos una solución de extremo a extremo para verificar si los datos entre diferentes centros de datos son consistentes y si la experiencia del usuario en diferentes centros de datos es la misma. En este momento, necesitamos comparar diferentes centros de datos y comparar el comportamiento de los usuarios en diferentes centros de datos. Ya sea que sus indicadores finales sean consistentes o no, también usamos nuestros modelos y versiones de código. Veremos una versión de modelo o una versión de código de la versión anterior y la nueva, la comparación de los indicadores de comportamiento del usuario generados por ellos y veremos si son consistentes. De manera similar, nuestro OLAP también se utiliza para alertas de indicadores comerciales en tiempo real. Si la tasa de clics del usuario y la cantidad de Me gusta de los usuarios disminuyen repentinamente, también activará nuestras alertas en tiempo real.

La escala de los datos OLAP de Xiaohongshu

6.png

En las horas pico, tenemos alrededor de 350.000 comportamientos de usuarios registrados en nuestros cálculos en tiempo real cada segundo. Luego, nuestra tabla grande y ancha tiene alrededor de 300 campos, y luego esperamos mantener los datos durante más de dos semanas o alrededor de 15 días, porque cuando estamos haciendo un análisis experimental, a menudo necesitamos ver la comparación de los datos de esta semana y la semana anterior, y luego Cada día se realizan unas mil consultas.

Pequeño Libro Rojo + Hologres

7.png
Tenemos una cooperación con MaxComputer y Hologres de Alibaba Cloud en julio. Hologres es en realidad una nueva generación de soluciones de almacenamiento de datos inteligentes, que puede resolver cálculos tanto en tiempo real como fuera de línea a través de un método integral. Al mismo tiempo, sus aplicaciones se pueden utilizar principalmente en pantallas grandes en tiempo real, Tableau y ciencia de datos, lo hemos estudiado y es más adecuado para nuestros escenarios de recomendación.

Escenarios de aplicación de Little Red Book Hologres

8.png
Lo que hace Hologres es principalmente consultar y acelerar datos fuera de línea, y luego responder a consultas interactivas a nivel de tabla para datos fuera de línea. No necesita hacer el trabajo de mover datos de fuera de línea a un almacén de datos en tiempo real debido a esto. Está todo adentro. Todo el almacén de datos en tiempo real, a través del establecimiento de un sistema de información del usuario, monitoreo en tiempo real de los datos del usuario en la plataforma, diagnóstico en tiempo real de los usuarios desde diferentes ángulos, lo que puede ayudar a implementar operaciones refinadas. De hecho, esta también es una escena muy adecuada para las grandes mesas anchas de nuestros usuarios. Luego, su computación federada en tiempo real y fuera de línea puede basarse en el análisis interactivo del motor de computación en tiempo real y el almacén de datos fuera de línea MaxCompute, y en consultas federadas fuera de línea en tiempo real para construir una operación refinada de todo el enlace.

Hologres VS Clickhouse

9.png

Antes de cooperar con Alibaba Cloud MaxCompute, creamos nuestro propio clúster de Clickhouse. En ese momento, también éramos un clúster a gran escala con 1320 núcleos en común. Debido a que Clickhouse no era una solución para separar la computación y el almacenamiento, estábamos ahorrando Costo, solo se almacenan 7 días de datos, y debido a que Clickhouse en realidad no es muy bueno para el escenario de etiqueta de experimento de usuario, se dice que consultamos datos durante más de tres días en ese momento será particularmente lento. Debido a que es un escenario OLAP, esperamos que la consulta de cada usuario pueda producir resultados en dos minutos, por lo que solo podemos verificar los datos de los últimos tres días. Al mismo tiempo, otro problema es que Clickhouse tiene algunos problemas con el soporte de componentes, por lo que no configuramos componentes en el clúster de Clickhouse. Si el flujo de datos ascendente es inestable y los datos causan alguna duplicación, en realidad habrá algunos en el Clickhouse descendente Algunos datos duplicados. Al mismo tiempo, también enviamos a una persona dedicada a operar y mantener Clickhouse, y luego descubrimos a través de la investigación que si Clickhouse se va a convertir en una versión de clúster, sus costos de operación y mantenimiento siguen siendo muy altos. Por lo tanto, en julio, cooperamos con Alibaba Cloud para migrar la tabla de usuarios más grande que recomendamos a MaxCompute y Hologres. Luego, tenemos un total de 1200 núcleos en Hologres, porque es una solución de almacenamiento informático, por lo que 1200 Un núcleo es suficiente para que lo usemos. Pero tenemos mayores necesidades en términos de almacenamiento. Hemos coexistido 15 días de datos. Luego, debido a que Hologres ha realizado algunas optimizaciones personalizadas para el escenario de agrupación de usuarios basada en experimentos, podemos decir que ahora podemos fácilmente Consulta de datos de 7 a 15 días. En este escenario basado en grupos experimentales, el rendimiento de la consulta mejora considerablemente en comparación con Clickhouse. Hologres en realidad admite la clave principal, por lo que también configuramos la clave principal. Usamos el método insertar o ignorar en este escenario. Luego, debido a que la clave principal está configurada, naturalmente tiene la función de deduplicación. En este caso, utilizamos el método de Siempre que se garantice al menos una vez, no habrá duplicación de datos posteriores. Y como estamos en Alibaba Cloud, decimos que no hay costos de operación y mantenimiento.

 

Enlace original
Este artículo es el contenido original de Alibaba Cloud y no se puede reproducir sin permiso.

Supongo que te gusta

Origin blog.csdn.net/yunqiinsight/article/details/109195724
Recomendado
Clasificación