Mejorando la búsqueda de productos de comercio electrónico utilizando LLMs

Mejorando búsqueda productos comercio electrónico con LLMs

Aplicando los LLM para hacer que los motores de búsqueda de comercio electrónico sean robustos frente a consultas coloquiales

Foto de Oberon Copeland @veryinformed.com en Unsplash

En los últimos años, los motores de búsqueda web han adoptado rápidamente los Modelos de Lenguaje Grande (LLMs) para aumentar su capacidad de búsqueda. Uno de los ejemplos más exitosos es el motor de búsqueda de Google impulsado por BERT [1]. En comparación, muchas plataformas de comercio electrónico son relativamente más conservadoras al aplicar esta técnica emergente en su búsqueda de productos. En este artículo, demostraré cómo se pueden aplicar los LLM para beneficiar la capacidad de comprensión de la búsqueda de productos de comercio electrónico cuando encuentra consultas de búsqueda coloquiales e implícitas.

Declaración del problema

A pesar de los pioneros como Amazon [2], muchas plataformas de comercio electrónico todavía dependen en gran medida de técnicas de recuperación tradicionales como TFIDF y BM25 para la búsqueda de productos. Estos métodos dispersos suelen requerir que los clientes escriban consultas explícitas que coincidan con la información del producto y generalmente tienen dificultades para lograr una buena relevancia para consultas coloquiales e implícitas. En consecuencia, el motor de búsqueda devuelve o bien ningún resultado o resultados con baja relevancia, ignorando la existencia de los relevantes, lo cual perjudica la experiencia del cliente y las métricas del negocio.

Por ejemplo, Ebay devuelve “No se encontraron coincidencias exactas” para la consulta “¿Cuáles son los mejores regalos para niños menores de 5 años?”. Aunque la solución “Resultados que coinciden con menos palabras” evita la situación de “ningún resultado”, su relevancia en la búsqueda tiene un claro potencial de mejora.

Figura 1. Resultados de búsqueda de Ebay para la consulta '¿Cuáles son los mejores regalos para niños menores de 5 años?' | Fuente: Ebay.com

Algunos podrían argumentar que es raro que ocurran tales consultas. Sin embargo, no es infrecuente que muchas oportunidades y avances sean impulsados por casos de uso que se subestiman al principio.

Solución basada en LLM

Hoy en día, gracias al rápido desarrollo de los LLM, uno puede construir rápidamente prototipos sin preocuparse por el esfuerzo necesario para construir soluciones internas desde cero. Esto me permite descubrir rápidamente cómo abordar el problema.

Como se muestra en la imagen a continuación, la idea es bastante sencilla. Se aprovecha el LLM para traducir la consulta en bruto a una consulta mejorada que busca contener información explícita del producto para la búsqueda. Potencialmente, el rango de productos cubierto en la consulta mejorada podría ser amplio para la consulta en bruto que es implícita y difusa. En consecuencia, enviar la consulta mejorada directamente al motor de búsqueda basado en palabras clave probablemente conduzca a resultados pobres debido a su ambigüedad e incertidumbre. Como solución, se adopta el uso de incrustación de LLM para abordar la complejidad semántica. Específicamente, la consulta mejorada se proyecta en el espacio de incrustación que contiene las incrustaciones preprocesadas de los productos. A continuación, la recuperación de productos se realiza comparando la similitud entre la incrustación de la consulta y las incrustaciones de los productos, lo que genera los productos principales como resultados de búsqueda.

Figura 2. Flujo de trabajo de la solución propuesta | Imagen del autor

Existen una amplia variedad de técnicas para implementar la idea, ya que existen muchas opciones para cada paso. Aquí proporciono un ejemplo de implementación basado en Hugging Face y LangChain. El código real se encuentra en el repositorio de Github a continuación, con los detalles explicados de la siguiente manera.

ML_experiments/LLM_search_exp.ipynb en main · simon19891101/ML_experiments

Contribuye al desarrollo de simon19891101/ML_experiments creando una cuenta en GitHub.

github.com

Generar la consulta mejorada

En primer lugar, se adopta Llama 2, recientemente anunciado, como el LLM para generar la consulta mejorada para una consulta en bruto dada. Como se muestra a continuación, se utiliza el pipeline de Hugging Face, considerando su simplicidad. Vale la pena señalar que el propio pipeline es suficiente para llevar a cabo la tarea, por lo que el uso de LangChain es totalmente opcional. La plantilla de prompt adoptada aquí tiene como objetivo generar nombres de productos relevantes y diversos para abordar la ambigüedad de la consulta en bruto.

from transformers import AutoTokenizerimport transformersimport torchmodel = "meta-llama/Llama-2-7b-chat-hf"tokenizer = AutoTokenizer.from_pretrained(model, use_auth_token=True)pipeline = transformers.pipeline(    "text-generation",    model=model,    torch_dtype=torch.float16,    device_map="auto",    do_sample=False,    top_k=1,    num_return_sequences=1,    eos_token_id=tokenizer.eos_token_id,    max_length=200)from langchain.llms import HuggingFacePipelinefrom langchain import PromptTemplate, LLMChaintemplate='''[INST] <>Solo dime los nombres de los productos. La respuesta solo debe incluir diez nombres.<>{prompt}[/INST]'''prompt_template = PromptTemplate(template=template, input_variables=["prompt"])llm = HuggingFacePipeline(pipeline=pipeline)llm_chain = LLMChain(prompt=prompt_template, llm=llm)

Crear embeddings de productos

A continuación, se utilizan Sentence Transformer y FAISS en LangChain para crear y almacenar los embeddings de productos basados en los títulos de productos en el inventario. Aquí, debido a la falta de acceso a motores de búsqueda reales, se adopta el conjunto de datos de productos de Ebay “products.csv” sin conexión como simulación del inventario de productos de comercio electrónico. Este conjunto de datos contiene aproximadamente 3,000 productos que cubren una amplia gama de categorías.

Conjunto de datos de productos de Ebay UK – conjunto de datos de opensnippets

Conjunto de datos gratuito de productos de comercio electrónico de Ebay UK

data.world

import pandas as pdproducts = pd.read_csv('products.csv', usecols=['name'])from langchain.vectorstores import FAISSfrom langchain.embeddings import HuggingFaceEmbeddingsembeddings = HuggingFaceEmbeddings(model_name='sentence-transformers/all-MiniLM-L6-v2',                                   model_kwargs={'device': 'cpu'})product_names = products['name'].values.astype(str)product_embeddings = FAISS.from_texts(product_names, embeddings)

Recuperación de productos

Cuando se trata de la recuperación, se utiliza nuevamente el mismo modelo de Sentence Transformer que codifica los productos para generar el embedding de consulta para la consulta mejorada. Finalmente, se recuperan los 10 mejores productos en función de la similitud entre el embedding de consulta y los embeddings de productos.

raw_query = 'ejemplo de consulta'enhanced_query = llm_chain.run(raw_query)product_embeddings.similarity_search_with_score(enhanced_query, k=10)

Ejemplo

Para demostrar la efectividad de este enfoque, veamos la consulta mencionada anteriormente “¿Cuáles son los mejores regalos para niños menores de 5 años?” y compare la mejora de LLM con los resultados de búsqueda originales de Ebay presentados en la Figura 1.

En primer lugar, después de recibir la consulta en bruto, Llama 2 genera 10 productos según las instrucciones de la plantilla de prompt. Parecen bastante impresionantes para ideas de regalos para niños, aunque se espera una mayor granularidad a nivel de producto.

Figura 3. Consulta mejorada de LLM | Imagen por autor

A continuación, echemos un vistazo a la coincidencia de similitud en el espacio de embeddings. Lo que se recupera del inventario de productos simulado no está nada mal en comparación con los resultados del motor de búsqueda de Ebay del mundo real en la Figura 1. Debido al rango limitado de productos del inventario simulado, la comparación es algo injusta, pero aún así podemos observar la diferencia significativa antes y después de aplicar LLM. En general, la recuperación en el espacio de embeddings logra tanto relevancia como diversidad.

Figura 4. Resultados de búsqueda mejorados por LLM | Imagen del autor

Conclusiones finales

Después de realizar el descubrimiento inicial, es evidente que los LLM son una herramienta poderosa para mejorar la búsqueda de productos en las plataformas de comercio electrónico. Para esta tarea, existen muchas exploraciones futuras por realizar, que incluyen la ingeniería de indicaciones para generar consultas, la generación de atributos enriquecidos para las incrustaciones de productos, la optimización de la latencia en línea para mejorar las consultas de LLM, etc. Espero que este blog pueda inspirar a las plataformas de comercio electrónico que necesiten soluciones para mejorar la búsqueda de productos.

Referencias

[1] Nayak, P. (2019) Comprendiendo las búsquedas mejor que nunca, Google. Disponible en: https://blog.google/products/search/search-language-understanding-bert/ (Consultado el 09 de agosto de 2023).[2] Muhamed, A. et al. (sin fecha) Búsqueda semántica de productos a gran escala con grandes modelos de lenguaje, Amazon Science. Disponible en: https://www.amazon.science/publications/web-scale-semantic-product-search-with-large-language-models (Consultado el 09 de agosto de 2023).

We will continue to update Zepes; if you have any questions or suggestions, please contact us!

Share:

Was this article helpful?

93 out of 132 found this helpful

Discover more

Inteligencia Artificial

¡Abrocha tu cinturón ¡El Falcon 180B está aquí!

Vamos a sumergirnos en el modelo de lenguaje abierto más grande del mundo.

Investigación

Cómo rejuvenecer usando IA Descubierto nuevo medicamento contra el envejecimiento.

En un avance, los algoritmos de IA han jugado un papel clave en la identificación de posibles fármacos que podrían co...

Inteligencia Artificial

Aprendiendo el lenguaje de las moléculas para predecir sus propiedades

Este sistema de IA solo necesita una pequeña cantidad de datos para predecir propiedades moleculares, lo que podría a...

Inteligencia Artificial

Conoce a Llemma el modelo de lenguaje matemático de próxima generación que supera los estándares actuales

Los modelos de lenguaje entrenados en diversas mezclas de texto muestran una comprensión y generación de lenguaje gen...

Inteligencia Artificial

La investigación liderada por UMD impulsa el Panel de datos sobre el enjuiciamiento del condado de Montgomery.

Investigadores de la Universidad de Maryland ayudaron a la Oficina del Fiscal del Estado del Condado de Montgomery a ...

Inteligencia Artificial

La Desesperada Búsqueda del Premio Más Indispensable del Auge de la Inteligencia Artificial

Para alimentar los productos de inteligencia artificial, las nuevas empresas y los inversores están tomando medidas e...