38 votos

Aplicación de los métodos de aprendizaje de la máquina en los sitios web de StackExchange

Tengo un Aprendizaje automático este semestre y el profesor nos pidió que encontráramos un problema del mundo real y resolverlo mediante uno de los métodos de aprendizaje de máquinas introducidos en la clase, como:

Soy uno de los fans de stackoverflow y stackexchange y saber volcados de la base de datos de estos sitios web se proporcionan al público porque son increíbles! Espero poder encontrar un buen reto de aprendizaje de la máquina sobre estas bases de datos y resolverlo.

Mi idea

Una idea que se me ocurrió es predecir las etiquetas de las preguntas en base a las palabras introducidas en el cuerpo de la pregunta. Creo que la red bayesiana es la herramienta adecuada para aprender las etiquetas de una pregunta, pero necesito más investigación. De todos modos, después de la fase de aprendizaje, cuando el usuario termina de introducir la pregunta, se le deben sugerir algunas etiquetas.

Por favor, dígame :

Quiero preguntarle a la comunidad de estadísticas como gente experimentada sobre el ML dos preguntas:

  1. ¿Crees que la sugerencia de la etiqueta es al menos un problema que tiene alguna posibilidad de resolverse? ¿Tienes algún consejo al respecto? Estoy un poco preocupada porque Stackexchange no implementa esa característica todavía.

  2. ¿Tienes alguna otra/mejor idea para el proyecto ML que se basa en la base de datos de Stackexchange? Me resulta muy difícil encontrar algo que aprende de las bases de datos de Stackexchange.


Consideración sobre los errores de la base de datos: Me gustaría señalar que aunque las bases de datos son enormes y tienen muchas instancias, no son perfectas y se pueden corregir los errores. La obvia es la edad de los usuarios que no es fiable. Incluso las etiquetas seleccionadas para la pregunta no son 100% correctas. De todos modos, debemos considerar el porcentaje de corrección de los datos al seleccionar un problema.

Consideración sobre el problema en sí mismo: Mi proyecto no debería ser sobre data-mining o algo así. Sólo debería ser una aplicación de los métodos de ML en el mundo real.

28voto

giulio Puntos 166

Creo que la predicción de la etiqueta es interesante y tiene una buena oportunidad de "éxito".

A continuación se exponen algunas reflexiones que pretenden contribuir a una lluvia de ideas y a una mayor exploración de este tema. Creo que hay muchas direcciones potencialmente interesantes que podría tomar un proyecto de este tipo. Supongo que un intento serio de estudiar sólo uno o dos de los puntos siguientes sería un proyecto más que adecuado y es probable que se le ocurran preguntas más interesantes que las que he planteado.

Voy a tener una visión muy amplia en cuanto a lo que se considera aprendizaje automático . Sin duda, algunas de mis sugerencias estarían mejor clasificadas como análisis exploratorio de datos y más tradicionales análisis estadístico . Pero, tal vez, le ayude de alguna manera a formular sus propias e interesantes preguntas. Como verás, intento abordar las preguntas que considero interesantes para mejorar la funcionalidad del sitio. Por supuesto, también hay muchas otras preguntas interesantes que pueden no estar tan relacionadas con la facilidad de uso del sitio.

  1. Análisis descriptivo básico del comportamiento de los usuarios : Supongo que hay un patrón semanal cíclico muy claro en la participación de los usuarios en este sitio. ¿Cuándo tiene el sitio más tráfico? ¿Qué aspecto tiene el gráfico de la participación de los usuarios en el sitio, por ejemplo, estratificado por horas a lo largo de la semana? Es conveniente ajustar los posibles cambios en la popularidad general del sitio a lo largo del tiempo. Esto nos lleva a preguntarnos cómo ha cambiado la popularidad del sitio desde su creación. ¿Cómo varía la participación de un usuario "típico" con el tiempo transcurrido desde su incorporación? Supongo que la popularidad aumenta rápidamente al principio, luego se estabiliza y probablemente se reduce después de unas pocas semanas de participación.
  2. Presentación óptima de las preguntas y respuestas : Conseguir una visión de la primera pregunta parece llevar de forma natural a otras preguntas más interesantes (en el sentido de ML). Digamos que tengo una pregunta para la que necesito una respuesta. Si quiero maximizar mi probabilidad de obtener una respuesta, ¿cuándo debo enviarla? Si estoy respondiendo a una pregunta y quiero maximizar mi número de votos, ¿cuándo debo enviar mi respuesta? Quizá las respuestas a estas dos preguntas sean muy diferentes. ¿Cómo varía esto según el tema de la pregunta (digamos, por ejemplo, según lo definido por las etiquetas asociadas)?
  3. Biclustering de usuarios y temas : ¿Qué usuarios se parecen más en cuanto a sus intereses, tal vez medidos por las etiquetas? ¿Qué temas son más parecidos según los usuarios que participan? ¿Se puede hacer una buena visualización de estas relaciones? Una derivación de esto sería intentar predecir qué usuario(s) tiene(n) más probabilidades de enviar una respuesta a una pregunta concreta. (Imagínese que se proporciona esta tecnología a SE para que los usuarios puedan ser notificados de las preguntas potencialmente interesantes, y no simplemente basándose en las etiquetas).
  4. Agrupación de los encuestados por comportamiento : Parece que hay algunos patrones de comportamiento básicos diferentes en cuanto a la forma en que los encuestadores utilizan este sitio. ¿Puede presentar características y un algoritmo de agrupación para agrupar a los encuestados según su comportamiento? ¿Son los clusters interpretables?
  5. Sugerir nuevas etiquetas : ¿Puedes proponer sugerencias para nuevo etiquetas basadas en la inferencia de temas a partir de las preguntas y respuestas existentes en la base de datos. Por ejemplo, creo que la etiqueta [mixture-model] se añadió recientemente porque alguien se dio cuenta de que estábamos recibiendo un montón de preguntas relacionadas. Pero, parece que un enfoque de recuperación de información debería ser capaz de extraer esos temas directamente y potencialmente sugerirlos a los moderadores.
  6. Aprendizaje semisupervisado de ubicaciones geográficas : ( Esta puede ser un poco delicada desde el punto de vista de la privacidad. ) Algunos usuarios indican dónde se encuentran. Otros no lo hacen. Utilizando los patrones de uso y potencialmente el vocabulario, etc., ¿se puede poner una región geográfica de confianza en la ubicación de cada usuario? Intuitivamente, parece que esto sería (mucho) más preciso en términos de longitud que de latitud.
  7. Marcación automática de posibles duplicados y preguntas muy relacionadas : El sitio ya tiene un tipo de función similar con el Relacionado barra en el margen derecho. Encontrar duplicados casi exactos y sugerirlos podría ser útil para los moderadores. Haciendo esto a través de sitios en la comunidad SE parece ser nuevo.
  8. Predicción de abandono y retención de usuarios : Utilizando las características del historial de cada usuario, ¿puedes predecir la próxima vez que esperas verlos? ¿Puedes predecir la probabilidad de que vuelvan al sitio en función del tiempo que hayan estado ausentes y de las características de su comportamiento anterior? Esto podría utilizarse, por ejemplo, para tratar de advertir cuándo los usuarios corren el riesgo de "cambiar" y atraerlos (por ejemplo, a través del correo electrónico) en un esfuerzo por retenerlos. Un enfoque típico consistiría en enviar un correo electrónico después de un periodo fijo de inactividad. Pero cada usuario es muy diferente y hay mucha información sobre muchos usuarios, por lo que podría desarrollarse un enfoque más personalizado.

9voto

pirho Puntos 1387

Yo también estaba pensando en la predicción de etiquetas, me gusta la idea. Tengo la sensación de que es posible, pero es posible que tenga que superar muchos problemas antes de llegar a su conjunto de datos final. Así que especulo que la predicción de etiquetas puede necesitar mucho tiempo. Además de las etiquetas incorrectas, el límite de un máximo de 5 etiquetas puede jugar un papel importante. También que algunas etiquetas son subcategorías de otras (por ejemplo, "comparaciones múltiples" puede verse como una subcategoría de "pruebas de significación").

No he comprobado si los tiempos de las votaciones están incluidos en la base de datos descargable, pero un proyecto más sencillo y todavía interesante podría ser predecir el número "final" de votos (tal vez después de 5 meses) en una pregunta en función de los votos iniciales, y el momento de aceptar una respuesta.

3voto

Nick Klauer Puntos 2837

Esta es una buena pregunta. Yo también he pensado que los conjuntos de datos de StackExchange disponibles públicamente serían un buen tema de análisis. Son lo suficientemente inusuales como para ser un buen banco de pruebas para nuevos métodos estadísticos. Disponer de una cantidad tan grande de datos bien estructurados es inusual, en cualquier caso.

cardenal sugirió un montón de cosas que serían realmente útiles para StackExchange. No me limitaré a esto.

Aquí hay un candidato obvio para el análisis, aunque no tiene ningún uso obvio que se me ocurra. Es un efecto notable que los usuarios con alta reputación son más propensos a obtener upvotes, en igualdad de condiciones. Sin embargo, este efecto es probablemente no trivial para modelar. Dado que no podemos comparar la utilidad de los usuarios muy fácilmente, un enfoque obvio sería asumir que las respuestas de un usuario son siempre igual de útiles (no es cierto en general, pero hay que empezar por algún sitio) y luego añadir un término inflacionario para tener en cuenta su creciente reputación. A continuación (supongo) se podrían añadir algunos términos que explicaran que sus respuestas mejoran con el aumento de la experiencia. Tal vez esto podría ser manejado por algún tipo de serie de tiempo. No estoy seguro de cómo afectaría a esto el intervalo de datos. Podría ser un ejercicio interesante.

Añadiré más ejemplos si/cuando se me ocurran.

¿Conoce alguien los trabajos de investigación estadística basados en los datos de la SE? También, Isaac mencionó que los datos tienen errores. ¿Alguien sabe algo más sobre esto?

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X