¿Cómo usa Quora el aprendizaje automático en 2017?

En 2015, Xavier Amatriain, nuestro vicepresidente de ingeniería, escribió una excelente respuesta sobre cómo usamos Machine Learning en Quora: ¿Cómo utiliza Quora el aprendizaje automático en 2015? Desde entonces, el uso de Machine Learning en Quora ha crecido mucho. No solo hemos profundizado con modelos más grandes y mejores para las aplicaciones existentes de Machine Learning, sino que también hemos ampliado el conjunto de áreas donde usamos Machine Learning. En esta respuesta, intentaré pintar una imagen desde cero sobre cómo Quora está usando Machine Learning en 2017.

Casos de uso de Machine Learning

Recorreré diferentes partes del producto y hablaré sobre cómo usamos Machine Learning en todas estas partes.

1. Buscando información

El formato principal de intercambio de conocimientos en Quora son las preguntas y respuestas. Esto comienza con un usuario que tiene una pregunta, o una “necesidad de información”, que quiere satisfacer. Después de que un usuario hace una nueva pregunta sobre Quora, tenemos un conjunto de sistemas de Machine Learning que comprenden la pregunta , es decir, extraen información de la pregunta de una manera que nos ayuda a facilitar el resto del flujo. Describiré algunos de estos sistemas de comprensión de preguntas.

Nos preocupamos mucho por la calidad del contenido, y todo comienza con la calidad de las preguntas. Tenemos un sistema de ML que responde preguntas, clasifica la calidad de las preguntas y nos ayuda a distinguir entre preguntas de alta calidad y de baja calidad. Junto con la calidad de la pregunta, también determinamos algunos tipos de preguntas diferentes , que nos ayudan a determinar cómo debemos tratar la pregunta más adelante en el flujo.

Finalmente, también hacemos el etiquetado de preguntas y temas , donde determinamos de qué temas se trata la pregunta. Si bien la mayoría de las aplicaciones de modelado de temas tratan con un texto de documento grande y una ontología de tema más pequeña, trabajamos con un texto de pregunta breve y más de un millón de posibles temas para etiquetar en la pregunta, lo que hace que sea un problema mucho más difícil de resolver.

En todos los modelos de comprensión de preguntas, utilizamos características derivadas de la pregunta y su contexto, por ejemplo, el usuario que hizo la pregunta, el lugar donde se hizo la pregunta, etc.

Otra forma de satisfacer la necesidad de información del usuario es permitiéndole buscar preguntas existentes que respondan a lo que está buscando. Tenemos dos sistemas de búsqueda principales: la búsqueda de la barra de preguntas , que activa la barra de búsqueda de la parte superior de la página en la página de inicio de Quora, y la búsqueda de texto completo , que es una búsqueda más profunda a la que puede acceder haciendo clic en “Buscar” opción en los resultados de la barra de preguntas. Estos sistemas de búsqueda utilizan diferentes algoritmos de clasificación que difieren en términos de velocidad de búsqueda, relevancia y la amplitud y profundidad de los resultados que devuelven.

2. Obtener respuestas a preguntas

El resultado de los sistemas de comprensión de preguntas constituye una entrada importante para el siguiente paso en el ciclo de vida de una pregunta: obtener respuestas de expertos. Aquí también, tenemos sistemas de Machine Learning que nos ayudan a resolver este problema mejor.

Solicitar respuestas (anteriormente conocido como Preguntar para responder) es una característica de Quora que permite a los usuarios enviar solicitudes a otros usuarios pidiéndoles que escriban una respuesta a una pregunta en particular. Enmarcamos las respuestas de solicitud como un problema de aprendizaje automático. Cubrimos los detalles del sistema en esta publicación de blog: Preguntar para responder como un problema de aprendizaje automático.

Fuera de A2A, la forma principal de relacionar las preguntas sin respuesta con los escritores de respuestas expertos es a través del feed de la página de inicio de Quora. Clasificar las preguntas en el feed es un problema muy importante para nosotros. Tomamos en cuenta las propiedades de la pregunta como se describió anteriormente, las propiedades del usuario (más sobre eso a continuación) y un conjunto completo de otras características sin procesar y derivadas como entradas para el modelo de clasificación, para generar un feed que sea tópico, relevante y personalizado para usted . Por ejemplo, aquí hay una captura de pantalla de mi feed de hace unos días.

3. Lectura de contenido

Como puede ver en mi feed anterior, el feed no solo consta de preguntas a las que puede escribir respuestas, sino que también consta de respuestas que vale la pena leer. Clasificar las respuestas en el feed es otro problema de ML que es muy importante para nosotros. La clasificación de preguntas y la clasificación de respuestas en el feed usan sistemas subyacentes similares pero tienen objetivos muy diferentes y, como resultado, usan un conjunto diferente de características en sus modelos subyacentes. Otro lugar donde usamos Machine Learning para clasificar las respuestas que vale la pena leer son los resúmenes de correo electrónico que enviamos a nuestros usuarios . Todos estos problemas de clasificación están impulsados ​​por sistemas ML bastante avanzados que utilizan múltiples modelos y muchas características diferentes para llegar a la clasificación final.

Una vez que un usuario encuentra una pregunta que le interesa, queremos asegurarnos de que tenga una excelente experiencia de lectura en Quora. La clasificación de las respuestas a las preguntas es una aplicación de ML importante para nosotros que garantiza que las respuestas más relevantes se clasifiquen en la parte superior de una pregunta determinada. Aquí hablamos sobre el ML detrás de la clasificación de respuestas en detalle: un enfoque de aprendizaje automático para clasificar las respuestas en Quora. Manteniéndonos en las respuestas, también hacemos una clasificación de comentarios para asegurarnos de que vea los comentarios de respuestas más relevantes en la parte superior. Todos estos sistemas de clasificación van más allá de simples votos a favor y en contra, y utilizan características derivadas de los usuarios que votaron o rechazaron el contenido, la calidad del contenido, la actividad de participación, etc. para llegar a la clasificación final.

También queremos asegurarnos de que después de leer las respuestas a una pregunta en particular, tenga buenas vías para encontrar contenido relacionado y continuar con su experiencia de lectura. Una de estas características del producto impulsada por Machine Learning son las preguntas relacionadas . Mostramos preguntas relacionadas en la página de preguntas y ayudan a los usuarios a navegar por el espacio de preguntas de Quora más fácilmente. También le ayuda a navegar por Quora como lector los sistemas de clasificación como Temas relacionados (que se muestran en la página de temas como este) y Temas de tendencias (que se muestran en la página de inicio). En la página de inicio, también mostramos paneles de temas a seguir y usuarios a seguir , los cuales son sistemas de recomendación personalizados basados ​​en lo que sabemos sobre usted.

Un elemento muy importante de los sistemas ML anteriores es la personalización . La personalización implica hacer que el producto y los sistemas subyacentes sean relevantes para cada usuario individual de Quora. Un gran componente para hacer que los sistemas ML sean personalizados es la señal de comprensión del usuario . Como parte de la comprensión del usuario, observamos y derivamos varios rasgos de los usuarios, como los temas que les gustan / no les gusta, su experiencia en diferentes áreas y sus propiedades de redes sociales. También tenemos varios sistemas de afinidad de “entidad de usuario , por ejemplo, afinidad de tema de usuario , afinidad de usuario-usuario, etc. Todas estas señales de personalización forman entradas importantes no solo para las aplicaciones de “Lectura” en esta sección, sino también para hacer coincidir preguntas con escritores de respuestas expertos y otros casos de uso.

4. Mantener una alta calidad de contenido.

Una de las cosas críticas para una gran experiencia de usuario en Quora es la calidad del contenido. Queremos asegurarnos de que nuestras preguntas, respuestas, temas y otro contenido comiencen con alta calidad y sigan siendo de alta calidad durante toda su vida. Para hacer esto, tenemos un conjunto de sistemas de Machine Learning que trabajan duro para mantener la calidad del contenido. Éstos son algunos de ellos:

  • Detección de preguntas duplicadas: esto implica detectar diferentes preguntas que tienen la misma intención y fusionarlas en una sola pregunta canónica. Hemos hablado en detalle sobre nuestras exploraciones sobre el problema de las preguntas duplicadas aquí, e incluso lanzamos un conjunto de datos de preguntas duplicadas y comenzamos una competencia de Kaggle para que juegues con él.
  • Detección de contenido abusivo: tenemos una política en Quora, “Sé amable, sé respetuoso”, pero siempre es un desafío mantenerlo en las comunidades en línea. Utilizamos Machine Learning en combinación con revisores humanos para ayudar a identificar contenido ofensivo o perjudicial para que podamos proteger mejor a nuestros usuarios y asegurarnos de que tengan una excelente experiencia Quora.
  • Detección de spam: la detección de spam es un problema importante para las aplicaciones de contenido generadas por los usuarios más populares, y no somos diferentes. Tenemos algunos sistemas ML diferentes que trabajan en combinación para abordar el contenido de spam y los usuarios que los publican.

Hay muchos otros sistemas de ML para mantener la calidad, pero no los abordaré en aras del espacio.

5. Optimización de anuncios

En 2016, también iniciamos nuestros esfuerzos de monetización. Actualmente, mostramos anuncios que son relevantes para la intención de la pregunta en la página de preguntas. Utilizamos Machine Learning para hacer predicciones de CTR de anuncios , lo que garantiza que los anuncios que mostramos sean relevantes para los usuarios y de alto valor para los anunciantes. Nuestros esfuerzos de Machine Learning en el espacio de monetización aún son jóvenes, y en los próximos meses y años, ampliaremos mucho nuestro uso de ML aquí.

También tenemos otros sistemas de Machine Learning que los enumerados anteriormente, pero no voy a entrar en ellos para evitar hacer esta respuesta demasiado tiempo.

Modelos y Bibliotecas

Capacitamos a nuestros equipos para que utilicen los mejores modelos y herramientas para el trabajo, pero también nos aseguramos de mantener la estandarización y la reutilización de estas herramientas. Estos son algunos de los modelos que utilizamos (sin ningún orden en particular):

  • Regresión logística
  • Redes elásticas
  • Árboles de decisión impulsados ​​por gradiente
  • Bosques al azar
  • Redes neuronales (profundas)
  • LambdaMART
  • Factorización matricial (SVD, BPR, ALS ponderada, etc.)
  • Modelos vectoriales y otras técnicas de PNL
  • k-means y otros enfoques de agrupamiento
  • y otros

También admitimos un amplio conjunto de bibliotecas internas y de código abierto para realizar el trabajo, como Tensorflow, sklearn, xgboost, lightgbm, RankLib, nltk, QMF (la propia biblioteca de factorización de matriz de Quora), junto con algunas otras internas.

Plataforma ML

Otro desarrollo emocionante para nosotros desde 2015 es la formación de un nuevo equipo de ML Platform. El objetivo del equipo de ML Platform es hacer que el trabajo en Machine Learning sea más fácil para los ingenieros de ML en el resto de la empresa, tanto en el lado de las cosas fuera de línea (capacitación de modelos) como en línea (servicio de modelos). En el lado en línea, la Plataforma ML posee los sistemas que ayudan a los ingenieros de ML a construir e implementar sistemas de aprendizaje automático de alto rendimiento, rentables y en tiempo real con alta confiabilidad y disponibilidad. En el lado fuera de línea, el equipo de ML Platform permite a los ingenieros de ML construir canalizaciones de datos, generar funciones y entrenar modelos de manera rápida, estandarizada y reutilizable.

Tener un equipo de plataforma dedicado que apoye Machine Learning en Quora nos ha ayudado a acelerar nuestra velocidad de desarrollo de ML para que sea mucho más rápida que antes. También nos prepara bien a medida que escalamos nuestros sistemas para manejar datos cada vez más grandes cada día. Compartiremos más detalles sobre el equipo de ML Platform y su hoja de ruta en una respuesta futura.

Espero que esta respuesta te haya dado una buena idea de cómo Quora está usando Machine Learning en 2017. Si algo de lo anterior te emociona, ¡debes saber que estamos contratando para diferentes tipos de roles de Machine Learning! Por favor, consulte nuestra página de carreras para puestos vacantes.

Como no trabajo en Quora, no sé todo acerca de cómo se usa la IA en Quora, pero no me sorprendería si la IA estuviera acostumbrada a …

(1) Enviar Quora Digests para que podamos disfrutar

(2) Muéstranos respuestas que podamos disfrutar

(3) Muéstrenos preguntas a las que podríamos tener respuestas

(4) Filtro inteligente para notificaciones


Si le gustó esta respuesta, puede que le guste mi blog de tecnología en Quora, Edition Tech, donde nuestros increíbles autores publican contenido relacionado con la tecnología desde teléfonos inteligentes hasta naves espaciales. Por favor considere seguir el blog si le gusta nuestro contenido; nuestros autores están trabajando muy duro para implementar al menos una publicación todos los días. 🙂

Saludos, George.

~ Piensa diferente, sé diferente ~