Deduplicación de anuncios en Yandex.Real Estate

El semestre pasado, los estudiantes del Centro de Ciencias de la Computación Sergey Gorbatyuk y Peter Karol trabajaron en deduplicar anuncios en Yandex. Real Estate bajo el liderazgo de Vladimir Gorovoy, gerente de proyecto. Los chicos nos contaron cómo funciona el proyecto y qué resultados lograron.

imagen


Tarea de diseño


Yandex.Real Estate es un servicio de anuncios para la venta y alquiler de apartamentos, habitaciones, casas, parcelas. Los anuncios son colocados por individuos, desarrolladores inmobiliarios o agencias, por lo que la misma propiedad a menudo está representada por varias ofertas. Muy a menudo, varias agencias intentan vender un apartamento a la vez y, a veces, también el propietario.

Los duplicados de anuncios vistos en el mejor de los casos molestan a los usuarios, en el peor de los casos son engañosos. Esto también evita que el equipo de Yandex recopile análisis por departamento y cuente exactamente cuánto está en venta o en alquiler. Por lo tanto, quiero aprender a buscar y pegar duplicados en una oferta.

Una secuencia de anuncios no se puede moderar manualmente porque es enorme. Por lo tanto, necesitamos un algoritmo que pueda encontrar tantos duplicados como sea posible con alta precisión. La precisión es importante porque el precio del error es alto: vincular diferentes anuncios hará que los usuarios se quejen.

Las tareas con requisitos tan altos y una estructura de datos compleja se resuelven tradicionalmente utilizando algoritmos de aprendizaje automático, por lo que en realidad la tarea se formuló como "Capacitar a uno de los clasificadores más avanzados".

Los problemas


  • El área temática es nueva para nosotros, tiene sus propias dificultades y características.
  • No hay datos etiquetados en absoluto.
  • No existe una tarea de aprendizaje automático explícita: ¿cuáles serán los factores y las variables objetivo aquí?

Con el último párrafo, todo es relativamente simple: los factores serán información sobre un par de objetos de diferentes anuncios, y la variable objetivo es si uno es un objeto en realidad, o dos diferentes. Pero descubrir las características del mercado inmobiliario y marcar los datos tomó la mayor parte del tiempo del proyecto.

Marcado de datos


Recibimos parte de la base de datos con ofertas sobre la venta de apartamentos en Moscú. Los datos principales que los describen son:

  • Datos estructurados generales: material de archivo, precio, piso, número de habitaciones, baños, altura del techo, metainformación sobre el vendedor y otros.
  • Descripción del texto del objeto.
  • Fotos del objeto.

Antes de Yandex, teníamos un clasificador duplicado entrenado en factores desde 1 punto sin datos de control. Este es un algoritmo de agrupación de ofertas que se llama ofertas duplicadas que se dividen en un grupo. Tenía una precisión bastante alta, pero una integridad relativamente baja. Esto significa que la proporción de duplicados que descubrió fue baja, aunque rara vez se equivocó.

Utilizamos la idea de comparar ofertas entre sí en función de las diferencias y las relaciones entre los indicadores clave: por ejemplo, precio o piso, para obtener una métrica empírica de disimilitud de anuncios. Y se les ocurrió una función que correlacionaba los dos números con un solo número, una medida de cuánto difieren los dos anuncios en los datos primarios. Este indicador nos ayudó a crear una muestra equilibrada mientras marcamos los datos y al menos aproximadamente regulamos la distribución de ejemplos: queremos ejemplos más idénticos, muy diferentes o complejos en algún punto intermedio.

El marcado resultó ser mucho más complicado de lo que esperábamos. Y aquí está el por qué:

  • Descripciones idénticas y no informativas de objetos similares. Especialmente del nuevo fondo: las empresas de construcción los llevan en lotes, y solo en casos excepcionales pueden distinguirse por número de lote.
  • Corrupción intencional de datos. Los especialistas en bienes raíces nos explicaron que a veces las personas quieren ocultar el piso real o la apariencia del apartamento.
  • No informativo exterior o fotografías similares de objetos.
  • Diferentes fotos del mismo objeto. A continuación se muestra uno de los ejemplos simples, sin embargo, algunas fotos tienen que mirar durante mucho tiempo como un detective, utilizando todo el poder del método deductivo con el único propósito de decidir si se trata de un apartamento o dos diferentes.


imagen

imagen

Línea base supervisada


Marcamos los datos e intentamos entrenar a Random Forest solo en los factores del primer párrafo: indicadores categóricos y continuos de precio, material de archivo, etc. Las diferencias y las relaciones de estos factores, así como los factores construidos adicionalmente en función del tiempo de colocación y actualización, la información sobre el vendedor, etc., se utilizaron como predictores. En los datos de prueba, este clasificador fue más preciso que el algoritmo de agrupamiento conservador en un 5-8%, y su integridad superó el resultado anterior en un 30-35%.

Animados por este resultado, recurrimos a otros dos factores: la descripción del texto y las imágenes. Casi no pudimos trabajar con este último: los descargamos bastante tarde. Intentaron usar hashes para filtrar fotografías exteriores comunes, hashes perceptuales para lidiar con marcas de agua y salidas de altas capas de redes convolucionales (ResNet-18) como factores adicionales, sin embargo, para nuestra sorpresa, no obtuvieron un fuerte aumento en la precisión.

En nuestra opinión, es necesario abordar el análisis de imágenes en esta área temática aún más a fondo, prestar mucha atención al preprocesamiento de imágenes, probar otras arquitecturas y funciones especiales de pérdida. Para los datos de texto lematizados y vectorizados, se aplicó el algoritmo de vectorización Tf-Idf y la representación vectorizada se utilizó como características principales. Las diferentes métricas sobre estos vectores dieron un aumento más impresionante en la calidad de las predicciones. El mejor resultado como factor fue la probabilidad predicha por la regresión logística entrenada por separado en estos vectores.

Modelo final


El modelo final, que agregó todos los signos y resultados de otros, fue CatBoost. Este es un producto Yandex entrenado con una función de pérdida especial: una medida F modificada. La tecnología CatBoost se ha establecido como una de las mejores en la tarea de clasificación y se integra fácilmente en la infraestructura. La calidad del algoritmo en la muestra de prueba es 98% de precisión y 93% de integridad.

Consideramos que este es un buen resultado, y si es el mismo desde el punto de vista comercial, los expertos del departamento de marketing decidirán :)

Source: https://habr.com/ru/post/457464/


All Articles