En el artículo anterior (Ingeniería), presentamos el marco básico del motor de búsqueda similar. Los motores de búsqueda constan principalmente de tres partes. En primer lugar, el clúster Hadoop se utiliza para generar búsquedas a gran escala e indexación en tiempo real; en segundo lugar, el clúster ElasticSearch proporciona soluciones de búsqueda distribuida; en tercer lugar, el clúster de búsqueda avanzada se utiliza para proporcionar funciones especiales para búsquedas comerciales.
Debido a la particularidad de la búsqueda de comercio electrónico comercial, los grupos de búsqueda elásticos independientes no pueden cumplir con los diversos requisitos de los algoritmos. Contamos con complementos de algoritmo correspondientes para cada parte de la búsqueda para construir el sistema de algoritmo del motor de búsqueda de comercio electrónico comercial.
El proceso de creación de un índice es el proceso de creación de un índice invertido a partir de los datos originales. En este proceso, analizamos el producto (doc), calculamos la puntuación estática del producto y calculamos la similitud del producto. La calificación estática de un producto juega un papel crucial en la mejora de la calidad de los motores de búsqueda, lo que equivale al pagerank de la búsqueda web. Imagínese si no existiera un algoritmo de ranking de páginas. ¿Qué tan mala puede ser la calidad de las búsquedas web? En la búsqueda de comercio electrónico, el problema más común es que hay demasiados productos similares y la similitud entre productos debe calcularse previamente durante el proceso de indexación para eliminar eficazmente la duplicación durante el proceso de recuperación.
El proceso de creación de un índice es el siguiente.
Paso 1. Calcule la puntuación estática de cada documento.
El segundo paso. Calcula la similitud de cada documento.
Paso tres. Clasifique los datos basándose en similitudes y otra información.
Paso 4. Cree un índice ES.
El proceso de recuperación es el proceso en el que el motor de búsqueda recibe la consulta del usuario, la procesa y devuelve resultados relevantes. Los motores de búsqueda comerciales deben considerar dos factores durante el proceso de recuperación: 1) relevancia 2) importancia.
La relevancia se refiere a si los resultados devueltos son relevantes para la consulta de entrada. Esta es una de las cuestiones básicas de los motores de búsqueda. Los algoritmos más utilizados actualmente incluyen BM25 y el modelo de vector espacial. Ambos algoritmos son compatibles con ElasticSearch y los motores de búsqueda comerciales generales utilizan el algoritmo BM25. El algoritmo BM25 calcula la puntuación de relevancia de cada documento y consulta, que utilizamos Dscore para representar.
La importancia se refiere al grado en que se confía en un producto. Deberíamos devolver los productos más confiables a los consumidores en lugar de permitir que los consumidores los identifiquen ellos mismos. Especialmente en las búsquedas de comercio electrónico donde los productos son totalmente competitivos, se debe otorgar a los productos una puntuación de importancia razonable para garantizar la calidad de los resultados de la búsqueda. La puntuación de importancia también se denomina puntuación estática y está representada por Tscore.
La base de clasificación final de los motores de búsqueda es:
Puntuación = Dscore * Tscore
Es decir, sólo considerando de manera integral los puntos estáticos y dinámicos podemos brindar a los usuarios información relevante e importante.
El proceso de recuperación se resume aproximadamente en los siguientes pasos.
Paso 1. Analizar la consulta original.
El segundo paso. Vuelva a escribir la consulta de acuerdo con los resultados del análisis de la consulta en as.
Paso tres. Recuperar mediante consulta reescrita.
Paso 4. Se realiza una clasificación completa en función de los puntos estáticos y los puntos dinámicos en el proceso de consulta es.
Paso cinco. Reordene los resultados devueltos por es as.
Paso seis. Devolver resultados.
Los siguientes capítulos describen varias tecnologías clave.
En los motores de búsqueda de comercio electrónico, los puntos estáticos de los productos tienen el mismo valor e importancia que el pagerank en las búsquedas web. Todas son medidas de valor intrínseco de documentos independientes de la consulta. Pagerank opera a través de relaciones de votación entre documentos. Relativamente hablando, hay más factores en la calificación estática de los productos. Al igual que el pagerank, el proceso de cálculo estático de productos debe resolver los dos problemas siguientes: 1. Estabilizar. Pagerank puede garantizar que un sitio web no mejore linealmente su clasificación debido al simple apilamiento de enlaces. De manera similar, el cálculo de las calificaciones estáticas del producto no puede permitir que el producto aumente linealmente la calificación aumentando un solo indicador (como el impacto de pasar una sola página en la calidad del motor de búsqueda).
2. Grado de discriminación.
Para garantizar la estabilidad, la clasificación estática de productos debe tener una discriminación suficiente para garantizar que, en las mismas condiciones de búsqueda, la calidad del producto clasificado en primer lugar sea superior a la de los productos clasificados en segundo lugar.
Asumimos que el estado estático del bien tiene tres determinantes, a saber, 1. El siguiente número impar, 2. Calificación positiva y 3. Velocidad de entrega.
Para puntos estáticos, utilizamos Tsocre. Tscore se puede escribir como:
Tscore = a * f (número de pedidos) b * g (tasa positiva) c * h (entrega). velocidad)
a, B y C son parámetros de peso que equilibran la influencia de cada indicador. f, G, H, G y H son funciones representativas que convierten indicadores originales en medidas razonables.
Primero, necesitamos encontrar una función representativa razonable.
Método de normalización de puntuación Z
Este método es muy inestable. Suponiendo que un punto singular es 1000 veces el segundo valor más grande, la mayoría de los valores se concentrarán entre 0 y 0,01, lo que perderá el propósito de normalización.
(Figura 3: normalización log-zscore)
Finalmente, seleccione el peso apropiado y normalícelo con log-zscore, que básicamente explica f, G, h, G, h. función representativa, Tscore = a f (número impar inferior) b g (calificación positiva) c * h (velocidad de entrega), el siguiente paso es determinar los parámetros de a, B, c B, c. Generalmente existen dos métodos:
a) Método experto. Ajustar dinámicamente los parámetros de peso según nuestra experiencia diaria;
b) Método experimental. Primero, con la ayuda de expertos, asigne un valor inicial, luego cambie el método de una sola variable y ajuste dinámicamente los parámetros según los resultados de abtest.
La eliminación de títulos de productos juega un papel importante en las búsquedas de comercio electrónico. Los datos muestran que el 80% de los productos comprados a través de la página de búsqueda son las primeras cuatro páginas que los usuarios eligen para buscar. Los títulos de productos duplicados harán que las páginas importantes no tengan contenido dorado y reducirán en gran medida la tasa de compra de búsqueda.
Por ejemplo:
Título1: delicioso/plátano/envío gratis/Guangdong/Gaozhou/plátano//sin/agente de maduración/
Título2: delicioso/plátano /Guangdong/Gaozhou/banana//non/banana/free Shipping/
Primero, realice la vectorización de características.
Aquí se utiliza la tecnología "bolsa de palabras", que utiliza el vocabulario como la dimensión del vector espacial y la frecuencia de palabras de cada $term en el título como el valor de la característica. En este ejemplo, las dimensiones de este vocabulario son delicioso (0), plátano (1), franqueo (2), Guangdong (3), Gaozhou (4) y plátano (5).
Título1: 1, 2, 1, 1, 1, 1, 1, 1, 0
Título 2: 1, 2, 1, 1, 1, 0, 0, 1, 1
Cada título está representado por un vector de longitud fija.
En tercer lugar, calcule la similitud por pares.
Sin pérdida de generalidad, la similitud se suele conseguir calculando la distancia entre dos vectores. Aquí usamos 1-coseno (x,y) para representar la distancia entre dos vectores. Este es un problema de "similitud de todos los pares", es decir, se requiere una comparación por pares y la complejidad es O (n 2). Cuando la cantidad de mercancías es enorme, resulta difícil manipularla con una sola máquina. Proporcionamos dos métodos de implementación.
Método 1: Operación matricial de Spark.
Método 2: método lineal de reducción de mapas. Este método hace referencia al artículo "Uso de Mapreduce para implementar similitud de documentos por pares en colecciones grandes". Puede lograr una complejidad temporal casi lineal. En comparación con las operaciones matriciales, la escala es grande (más de 654,38 mil millones). Las operaciones de similitud por pares tienen las ventajas anteriores. Este método se describe brevemente de la siguiente manera: Primero, de acuerdo con el método de cálculo del índice invertido, se calcula la asignación de cada $term a doc. Por ejemplo, tres documentos:
Convertir a formato inverso, lo que requiere un asignador de reducción.
Luego, para filtros con un solo elemento de valor, para combinaciones por pares con valor mayor que 2 documentos:
Finalmente resuma la salida, el valor es la suma del número de repeticiones del producto de los dos documentos La proporción de raíces.
Para dos títulos 1 y 2, si Para dos documentos similares, la definición de división estática es el documento principal y la definición de división estática es el documento auxiliar. El documento principal y el documento auxiliar establecen bases de datos respectivamente.
A diferencia de la búsqueda web (la búsqueda web elimina directamente los documentos auxiliares), creamos documentos principales y documentos auxiliares por separado. Para cada búsqueda, buscamos los documentos primarios y secundarios proporcionalmente y fusionamos los resultados. Esto garantiza la diversidad de resultados.
La deduplicación de tiendas es ligeramente diferente a la deduplicación de títulos de productos. Debido a las necesidades de escenarios de comercio electrónico específicos, no queremos que los resultados de búsqueda sean únicos, lo que provocará un fuerte efecto Matthew. La deduplicación del almacenamiento no se puede realizar mediante el método anterior, porque la base principal del método anterior es la similitud del texto y la toma de decisiones apropiadas bajo la premisa de que todos los resultados son relevantes. Pero eliminar la duplicación de almacenamiento no es una característica de ese tipo.
Imagínese si dividimos la mercancía de una misma tienda en almacén principal y almacén esclavo según si las tiendas son iguales, como se muestra en la siguiente figura.
a y B representan tiendas diferentes.
Cuando buscas plátanos, puedes controlar el número de resultados de la tienda A, pero cuando buscas "peras", es incorrecto que las peras de la tienda B ocupen el primer lugar (suponiendo que A: la Puntuación estática de peras) Mayor que B: pera).
Durante el proceso de búsqueda, se comparten uniformemente 25 tareas de búsqueda en cada segmento y los resultados se fusionan en una página estáticamente, lo que garantiza que el orden relativo de los resultados sea el mismo, logrando el propósito de eliminar la duplicación. en la tienda.
Como se muestra en la imagen de arriba, aunque hay 10 resultados que cumplen con los requisitos cuando se busca "plátano", solo se pueden mostrar 5 resultados por página cuando se busca borrachera.
Lo anterior introduce varias tecnologías en el proceso de indexación y hay muchas tecnologías clave en el proceso de recuperación. La más conocida es la tecnología de análisis de consultas. Las tecnologías de análisis de consultas que utilizamos incluyen principalmente la identificación de palabras centrales, la expansión de sinónimos, la identificación de palabras de marca, etc. La mayoría de las técnicas de análisis de consultas entran dentro del alcance de la investigación de PNL. Hay muchos conocimientos teóricos que no entraré en detalles en este artículo. Nos centraremos en las técnicas de expansión de sinónimos. Esta tecnología generalmente requiere capacitación específica basada en sus propios productos y registros de usuarios, y no se puede aplicar en una biblioteca estándar como la tecnología de segmentación de palabras y el reconocimiento de palabras de marca.
La expansión de sinónimos generalmente se obtiene analizando los registros de sesión del usuario. Si el usuario ingresa "iPhone" y no obtiene el resultado deseado, y luego ingresa "iphone", creamos una relación de transferencia entre "iPhone" y "iphone". Basándonos en las estadísticas, podemos crear un gráfico de peso interconectado para las consultas de los usuarios.
El usuario introduce la consulta "Teléfono móvil Apple". Según el análisis de consultas, "teléfono móvil Apple" tiene dos sinónimos: "iPhone" 0.8 y "iPhone 6" 0.5. 0,8 y 0,5 representan respectivamente el grado de sinónimos. Queremos ingresar tres consultas al mismo tiempo: "teléfono Apple", "iPhone" y "iPhone 6". Y dé diferentes pesos a diferentes consultas según el grado de sinónimos. La consulta Boosting proporcionada por ElasticSearch puede cumplir con este requisito. referirse a:).