¿Cómo utiliza Quora el aprendizaje automático en 2015?

Utiliza una combinación de aprendizaje automático y procesamiento del lenguaje natural para garantizar contenido de alta calidad en el sitio.

  • Algoritmo de clasificación (aprendizaje automático) para agrupar preguntas en categorías.
  • Algoritmo de análisis para la corrección gramatical.
  • Análisis de clúster y algoritmo de cálculo de similitud SMD para encontrar preguntas duplicadas.
  • Algoritmo similar a AGV que proporciona la relevancia de las preguntas devueltas como resultados de búsqueda instantánea y la relevancia de los temas sugeridos para las preguntas que se hacen. Encuentra un tipo de homogeneidad en un conjunto de datos y luego se divide.
  • Modelado de temas utilizando la asignación de Dirichlet latente, cuando hace una pregunta, automáticamente le asigna algunos temas.
  • También usa Thrift.
  • Aparte de eso, cose se basa principalmente en Python (lenguaje de programación), Tornado (marco web), PyPy.

Aparte de eso, estoy seguro de que sus proyectos de Machine Learning incluyen la palabra “Deep”

D Adam D’Angelo en Twitter

Una de las razones por las que me entusiasmó unirme a Quora como vicepresidente de ingeniería fue la importancia del aprendizaje automático para el éxito de la empresa. A partir de 2015, los enfoques de aprendizaje automático se utilizan ampliamente en muchas partes diferentes del producto Quora. La mayoría de estas aplicaciones estaban en su lugar antes de unirme. Sin embargo, constantemente estamos planteando nuevos enfoques y haciendo grandes mejoras a los existentes. Es importante tener en cuenta que todas estas mejoras primero se optimizan y prueban sin conexión mediante el uso de muchos tipos diferentes de métricas sin conexión, pero siempre se prueban finalmente en línea a través de pruebas A / B.

En los siguientes párrafos, describiré algunas de las aplicaciones y técnicas más importantes de ML en Quora a partir de 2015.

Clasificación

La clasificación es posiblemente una de las aplicaciones más importantes del aprendizaje automático en la Web. Las empresas, desde muy grandes hasta pequeñas, han creado modelos de negocio en torno a la capacidad de clasificar, por ejemplo, los resultados en una cadena de consulta. En Quora usamos algoritmos de clasificación en diferentes contextos y con diferentes propósitos.

Un ejemplo interesante es la clasificación de respuestas . Dada una pregunta y varias respuestas a esta pregunta, estamos interesados ​​en clasificarlas en orden decreciente para mantener la “mejor” respuesta en la parte superior y la peor en la parte inferior (vea la captura de pantalla a continuación).

Hay muchas características diferentes que podrían entrar para determinar el orden correcto de las respuestas a una pregunta. Para determinar eso, primero necesitamos determinar qué definimos en Quora como una respuesta “buena”. Una buena manera de llegar a esa definición es mirar lo que Quora considera una “respuesta útil”. Leerá acerca de las respuestas como “sinceras”, “reutilizables”, “proporcionar explicaciones” o “bien formateadas”, entre otras. Nuestro algoritmo de aprendizaje automático, que implementa un enfoque particular de aprendizaje para clasificar, tiene muchas características diferentes que intentan codificar muchas dimensiones que finalmente se relacionan con todos esos conceptos abstractos. Por ejemplo, tenemos características que codifican información sobre la calidad de la escritura, pero también utilizamos características que informan sobre el tipo de interacciones que recibió la respuesta (por ejemplo, votos positivos, votos negativos o se expande). También tenemos características relacionadas con el usuario que escribió la respuesta, incluyendo, por ejemplo, la experiencia del usuario en el tema de la pregunta.

Tenemos muchas otras aplicaciones de clasificación en Quora, algunas de las cuales incluso podrían pasar desapercibidas. Por ejemplo, los nombres que parecen haber votado a favor de una respuesta dada también se clasifican de manera que presentamos en la parte superior los que consideramos más informativos para esa pregunta / respuesta dada. Lo mismo es cierto para los nombres que se sugieren cuando se presentan posibles respuestas a una pregunta en particular.

Echemos un vistazo más de cerca a dos instancias particulares de algoritmos de clasificación ML: Búsqueda y Clasificación personalizada.

Algoritmos de búsqueda

Para una aplicación como Quora, los algoritmos de búsqueda pueden considerarse simplemente como otra aplicación de clasificación. De hecho, la búsqueda se puede descomponer en dos pasos diferentes: coincidencia textual + clasificación. En el primer paso, se devuelven los documentos (preguntas) que coinciden con la consulta ingresada en el cuadro de búsqueda de alguna manera. Esos documentos se tratan como candidatos del segundo paso, que clasifica esos resultados para optimizar algo como la probabilidad de clic.

Este segundo paso es, de hecho, otro ejemplo de aplicación para aprender a clasificar, donde se pueden usar muchas características diferentes. Estas características pueden ir desde características textuales simples que ya se utilizaron en el paso de coincidencia textual original a otras que se relacionan con acciones del usuario o propiedades de objetos como su popularidad.

Ranking personalizado

En algunas situaciones como la descrita anteriormente, podríamos lograr una clasificación global óptima para todos los usuarios. En otras palabras, podemos suponer que el orden para la mayoría de las respuestas “útiles” a una pregunta dada es independiente del usuario que está leyendo la respuesta. Sin embargo, esa suposición claramente falla en muchos casos importantes. Uno de estos casos muy importantes es el Quora Feed. Quora Feed es básicamente la página de inicio que cualquier usuario ve al iniciar sesión en el producto. En esa página, estamos tratando de seleccionar y clasificar las historias más “interesantes” para ese usuario en un momento dado (ver el ejemplo a continuación). Este es un ejemplo prototípico de aprendizaje personalizado para clasificar, similar a lo que hace la página de inicio de Netflix con películas y programas de televisión.

Sin embargo, el caso de uso de Quora es un poco más desafiante que el de clasificar películas y programas de televisión en Netflix. De hecho, uno podría ver nuestro caso de uso como una combinación de lo que Netflix, Facebook y Google News deben hacer para optimizar su clasificación personalizada. Por un lado, queremos asegurarnos de que las historias que estén mejor clasificadas sean relevantes para el usuario. Por otro lado, Quora también tiene conexiones explícitas entre usuarios. Las acciones en su “red social” también deberían influir en la clasificación. Finalmente, las historias en Quora a veces pueden relacionarse con eventos en curso. La puntualidad es otro elemento que debería afectar la decisión del modelo de promover o degradar una historia.

Debido a esto, hay muchos tipos diferentes de características que intervienen en la creación de un rango tan personalizado en Quora. Hagamos una lista de algunos de ellos:

  • Calidad de las preguntas / respuestas
  • Temas que interesan al usuario
  • Otros usuarios que el usuario sigue
  • ¿Qué es tendencia / popular?

De hecho, es importante tener en cuenta que en Quora estamos interesados ​​tanto en involucrar a los usuarios para que lean contenido interesante como en presentar preguntas para las que los usuarios puedan escribir contenido interesante. Por lo tanto, tenemos que incluir características que se refieren tanto al interés de las respuestas como a las preguntas. Para derivar esas características, utilizamos información derivada de las acciones realizadas por el usuario, el autor y el objeto (es decir, respuesta / pregunta). Esas acciones se consideran y agregan en diferentes ventanas temporales y se incorporan al algoritmo de clasificación. En realidad, hay muchas características derivadas diferentes que se incluyen en nuestro modelo de feed personalizado, y estamos constantemente experimentando para agregar más.

Otra consideración importante acerca de nuestra aplicación de clasificación de feeds es que debemos ser capaces de responder a las acciones, impresiones e incluso tendencias de los usuarios. Tenemos una colección cada vez mayor de millones de preguntas y respuestas que no pudimos tratar de clasificar en tiempo real para cada usuario. Para optimizar la experiencia, hemos implementado una solución de clasificación en varias etapas en la que se seleccionan y clasifican a los diferentes candidatos por adelantado antes de que se realice la clasificación final.

Recomendaciones

La clasificación personalizada descrita anteriormente ya es una forma de recomendación. Un enfoque similar se utiliza en diferentes casos de uso. Por ejemplo, el popular resumen de correo electrónico de Quora incluye una colección de historias que han sido seleccionadas y recomendadas para usted. Este es un modelo diferente de aprendizaje para clasificar que está optimizado para una función objetivo diferente.

Además de los algoritmos de clasificación, tenemos otras recomendaciones personalizadas que aparecen en diferentes partes del producto. Por ejemplo, en diferentes lugares, verá recomendaciones de personas o temas que debe seguir (ver más abajo).

preguntas relacionadas

Otra fuente de recomendaciones es dar a los usuarios preguntas que están algo relacionadas con la actual.

Las preguntas relacionadas se determinan utilizando otro modelo de aprendizaje automático que tiene en cuenta diferentes características que incluyen, por ejemplo, similitud textual, datos de visitas conjuntas u otras características compartidas, como temas. También se tienen en cuenta otras características relacionadas con la popularidad o la calidad de la pregunta. Es importante tener en cuenta que lo que hace una buena recomendación “similar” no es solo cuán similar es ese elemento a la fuente, sino la “interés” del objetivo. De hecho, uno de los problemas más complicados para cualquier modelo de máquina de “artículos relacionados” es cómo compensar la similitud frente a otros elementos relevantes.

Las preguntas relacionadas es un modelo que es particularmente efectivo para crear la participación de los usuarios desconectados cuando visitan la página de preguntas desde una búsqueda externa. Esa es una de las razones por las cuales, por ahora, este modelo de recomendación no está personalizado.

Duplicados

Las preguntas duplicadas son un caso extremo del caso de preguntas relacionadas descrito anteriormente. Este es un problema para Quora porque queremos asegurarnos de que todas las energías de los usuarios que responden a una pregunta en particular se compartan y se centren en el lugar correcto. También es importante señalar a los usuarios que tienen una pregunta y desean agregarla al sitio a respuestas preexistentes. Debido a esto, se realizan muchos esfuerzos para detectar preguntas duplicadas, especialmente en el momento de la creación.

Nuestra solución actual se basa en la capacitación de un clasificador binario entrenado con etiquetas duplicadas / no duplicadas. Utilizamos diferentes tipos de señales que van desde modelos textuales de espacio vectorial a características basadas en el uso.

Confianza del usuario / Inferencia de experiencia

En una aplicación como Quora, es importante entender qué tan confiable es un usuario. De hecho, no solo estamos interesados ​​en responder esta pregunta de manera absoluta, sino en relación con un tema dado. Un usuario puede estar muy bien informado en algunos temas, pero no tanto en otros. En Quora utilizamos técnicas de ML para inferir la experiencia del usuario. Para entrenar esos modelos tenemos varias características importantes. No solo conocemos las respuestas que un usuario ha escrito en un tema determinado, sino que también conocemos los votos a favor, en contra o las opiniones que el usuario ha recibido sobre ellos. También sabemos cuántos “avales” tiene el usuario sobre el tema dado. Los avales son un reconocimiento explícito de la experiencia de alguien proveniente de otros usuarios.

La otra cosa importante a tener en cuenta es que la confianza / experiencia se propaga a través de la red y eso debe ser tenido en cuenta por los algoritmos. Por ejemplo, si recibo un voto positivo de un experto en Aprendizaje automático a una respuesta sobre Aprendizaje automático, esto debería contar más que un voto positivo de un usuario aleatorio sin experiencia en ese tema. Lo mismo ocurre con los avales y otras funciones de usuario a usuario.

Detección de spam y moderación

Un sitio como Quora que se enorgullece de mantener un umbral de alta calidad en el contenido tiene que estar muy atento a los intentos de jugar con el sistema mediante la introducción de spam, contenido malicioso o simplemente de muy baja calidad. Un modelo manual puro para revisar el contenido no se escala. La forma de abordar el problema, lo adivinó, es usar modelos ML para detectar estos problemas.

En Quora tenemos varios modelos que detectan diferentes problemas relacionados con la calidad del contenido. En la mayoría de los casos, el resultado de esos clasificadores no se usa directamente para tomar una decisión sobre el contenido, sino que se usa como una forma de alimentar esas preguntas / respuestas en colas de moderación que luego se revisan manualmente.

Predicción de creación de contenido

Una cosa muy importante a tener en cuenta acerca de Quora es el hecho de que estamos optimizando muchas partes del sistema no solo para crear una experiencia atractiva para los lectores, sino también para maximizar la buena calidad y el contenido en demanda que se está creando. Por esta razón, tenemos un modelo ML que predice la probabilidad de que un usuario escriba una respuesta a una pregunta dada. Esto permite que nuestro sistema priorice esas preguntas de diferentes maneras. Uno de ellos es el sistema automático A2A (Preguntar para responder) que envía estas preguntas a los escritores potenciales a través de notificaciones. Otros sistemas de clasificación explicados anteriormente también utilizarán esta probabilidad predicha.

Modelos

Quora ha probado muchos modelos diferentes para abordar los diferentes casos de uso descritos anteriormente. A veces usamos implementaciones de código abierto, pero muchas otras terminamos implementando versiones internas más eficientes o flexibles.

No entraré en detalles sobre qué modelo se usa y dónde, pero aquí hay una lista de modelos que se usan en diferentes lugares de nuestro sistema:

  • Regresión logística
  • Redes elásticas
  • Árboles de decisión impulsados ​​por gradiente
  • Bosques al azar
  • Redes neuronales
  • LambdaMART
  • Factorización matricial
  • Modelos vectoriales y otras técnicas de PNL

Conclusión

Como se describió anteriormente, Quora usa Machine Learning de muchas maneras diferentes. Si bien ya hemos podido obtener ganancias muy importantes mediante el uso de estos enfoques de LD, confiamos en que hay muchas más ganancias y seguimos invirtiendo en nuevas técnicas. Además, hay nuevas y emocionantes aplicaciones de ML en el futuro cercano en las que ya estamos empezando a pensar. Estas incluyen áreas como la clasificación de anuncios, la traducción automática y otras aplicaciones de PNL que se incorporarán directamente a las nuevas características del producto que planeamos agregar pronto.

Quora utiliza el aprendizaje automático de varias formas.

1) Recomendar preguntas en la barra lateral. (Agrupación y clasificación)
2) Cuando hace una pregunta, busca una pregunta similar no solo en función de las palabras sino también del contexto (coincidencia de similitudes)
3) Cuando hace una pregunta, automáticamente le asigna algunos temas (Modelado de temas utilizando la asignación de Dirichlet latente, etc.)
4) Filtrado de noticias, quién votó sobre una pregunta en particular, quién sigue a alguien. Todos estos están personalizados para su perfil.

Sí, Quora usa Machine Learning.

De la descripción de su desafío en curso Codesprint ( https://www.hackerrank.com/conte …):

Quora utiliza una combinación de algoritmos de aprendizaje automático y moderación para garantizar contenido de alta calidad en el sitio. La alta calidad de preguntas y respuestas ha ayudado a Quora a distinguirse de otros sitios de preguntas y respuestas en la web.

Parecen utilizar algoritmos de aprendizaje automático principalmente para la clasificación de respuestas y posiblemente también en la preparación de feeds para cada usuario.

Recientemente completé mi clase de Machine Learning en Coursera impartida por el profesor Andrew Ng, Stanford Univ. De cualquier conocimiento que haya adquirido a lo largo del curso, ahora puedo ver que Quora sí usa el aprendizaje automático.

1: Al mostrar una pregunta, en el lado derecho vemos Preguntas relacionadas. Ese es un problema de agrupamiento muy trivial que puede abordarse utilizando K-mean, al menos en el nivel básico. En el problema de agrupamiento intentamos encontrar algún tipo de homogeneidad en un conjunto de datos y dividirlos en un número finito de grupos.

2: Cuando seguimos una nueva pregunta, nuevamente nos recomienda algunos temas nuevos y relacionados a seguir. Dicha recomendación también se puede generar. Tuve un ejercicio de programación durante el curso sobre la creación de un sistema de recomendación básico usando filtrado colaborativo. También se puede aplicar un enfoque algo modificado en este caso.

Mi respuesta anterior se basa totalmente en el conocimiento que obtuve a través del curso. El aprendizaje automático es mi último flechazo en informática y nuestro romance todavía está comenzando. Por lo tanto, no me confundan de ser un experto en el campo si hay algo mal en los puntos que mencioné anteriormente.

Ruego diferir con las respuestas anteriores que afirman que Quora no usa Machine Learning. ¡Definitivamente lo hace! Como prueba laica de esta afirmación, verifique el siguiente video en el que un Ingeniero menciona explícitamente (0:57) el uso de Machine Learning.

Probablemente no hice justicia al responder la pregunta principal, pero mi respuesta está dirigida a las personas que pensaron que Quora no aplica las técnicas de ML.

Quora recientemente presentó los desafíos de aprendizaje automático que enfrenta, como un concurso abierto, utilizando datos reales de sus bases de datos. Eche un vistazo para ver cómo Quora podría estar usando el aprendizaje automático para resolver varios tipos de problemas para ayudar a mejorar la experiencia del usuario: –
https://www.hackerrank.com/conte

Aparentemente. Quora tiene un alto nivel de aprendizaje automático y debe usar algoritmos de análisis de datos. Esto incluye muchas características como sugerencias, preguntas relacionadas, promoción a personas aleatorias, etc.

Quora parece aplicar tanto ML como fuerzas sociales para extraer la relevancia de su contenido informativo. El usuario puede gastar créditos para promover el tema en la línea del escrutinio humano, donde queda más claro en el lado de ML a qué se refiere el contenido.

Los humanos realmente son los mejores maestros, pero en esta época las máquinas realmente pueden aprender.

Quora definitivamente usa Machine Learning. Los desafíos que enfrentan también son muy interesantes. Esto es evidente por las ML CodeSprints que realizan cada año. Los datos de entrenamiento para los desafíos (Quora Answer Classifier) ​​se muestrean a partir de los datos de producción reales de Quora. Quora también está haciendo un concurso exclusivo de ML en asociación con HackerRank – Quora ML CodeSprint 2013

Enchufe desvergonzado: un increíble amigo mío está tratando de construir algo increíble y siendo un gran amigo, estoy haciendo mi parte de ayuda – Ecos – Un breve estudio sobre aplicaciones de Alimentos

Si también eres increíble, ¡llénalo y sé increíble!

Si obviamente. Los artículos principales y las preguntas relacionadas son dos lugares obvios en los que se encuentra el Motor de recomendación en ejecución, que viene bajo ML.

Bunqsut

No.

More Interesting

En la clasificación automática de documentos, ¿cómo trato con categorías en conflicto?

Cómo reducir la dimensionalidad en la agrupación promedio global para que coincida con el tamaño de softmax

¿Cuál es el mejor lenguaje para el procesamiento del lenguaje natural?

¿Cómo se debe elegir el parámetro [math] l [/ math] en la regresión de mínimos cuadrados parciales?

¿Qué funciona mejor: Autoencoder Variacional o Redes Adversarias Generativas?

¿Cuáles son los tipos de problemas que se pueden resolver con las redes neuronales?

¿Cuál es la explicación intuitiva y práctica del algoritmo AdaBoost utilizado en el artículo de Viola-Jones sobre detección de rostros, en lenguaje moderadamente técnico?

¿Cómo determina el algoritmo de aprendizaje automático de Quora la clasificación de la calidad de la pregunta?

¿Qué es exactamente el sobreajuste y por qué preferimos modelos que no están sobreajustados incluso cuando los resultados son mejores?

¿Cómo funciona la propagación hacia atrás en la red neuronal convolucional?

¿Cómo es trabajar en problemas de aprendizaje automático en un entorno empresarial?

Tengo muchos datos de clientes. ¿Qué algoritmos de aprendizaje automático serían mejores para predecir qué productos desea comprar cada cliente?

¿Cuál es la forma correcta de encapsular la creación y capacitación del modelo Tensorflow en una clase?

¿Cuáles son las diferencias entre los modelos pre-entrenados y entrenados?

¿Cuál es la diferencia entre TensorFlow y TensorFlow lite?