Application des méthodes d'apprentissage automatique aux sites Web StackExchange


37

J'ai un cours d' apprentissage machine ce semestre et le professeur nous a demandé de trouver un problème du monde réel et de le résoudre par l'une des méthodes d'apprentissage automatique introduites dans la classe, telles que:

Je suis l'un des fans de stackoverflow et stackexchange et je sais que les vidages de bases de données de ces sites Web sont fournis au public car ils sont géniaux! J'espère que je pourrai trouver un bon défi d'apprentissage automatique à propos de ces bases de données et le résoudre.

Mon idée

Une idée m'est venue à l’esprit est de prédire les étiquettes des questions en fonction des mots entrés dans le corps de la question. Je pense que le réseau bayésien est le bon outil pour apprendre les tags pour une question, mais nécessite plus de recherche. Quoi qu’il en soit, après la phase d’apprentissage lorsque l’utilisateur a fini de saisir la question, certaines balises doivent lui être suggérées.

S'il vous plaît dites-moi :

Je souhaite poser des questions à la communauté des statistiques en tant que personnes expérimentées sur ML:

  1. Pensez-vous que la suggestion de tag est au moins un problème qui a une chance de résoudre? Avez-vous des conseils à ce sujet? Je suis un peu inquiet car stackexchange n'implémente pas encore cette fonctionnalité.

  2. Avez-vous une autre idée / meilleure idée pour le projet ML basé sur la base de données stackexchange? Je trouve vraiment difficile de trouver quelque chose à apprendre des bases de données stackexchange.


Considérations sur les erreurs de base de données: je voudrais souligner que, bien que les bases de données soient énormes et comportent de nombreuses instances, elles ne sont pas parfaites et sont à l’abri des erreurs. La plus évidente est l’âge des utilisateurs qui n’est pas fiable. Même les étiquettes sélectionnées pour la question ne sont pas correctes à 100%. Quoi qu'il en soit, nous devrions prendre en compte le pourcentage d'exactitude des données lors de la sélection d'un problème.

Considération sur le problème lui-même: Mon projet ne devrait pas être sur data-miningou quelque chose comme ça. Cela devrait juste être une application des méthodes de ML dans le monde réel.

Réponses:


28

Oui , je pense que la prédiction de tags est intéressante et pour laquelle vous avez une bonne chance de "succès".

Vous trouverez ci-dessous quelques idées susceptibles d’aider au brainstorming et à l’exploration de ce sujet. Je pense qu’un tel projet pourrait prendre de nombreuses directions potentiellement intéressantes. J'imagine qu'une tentative sérieuse de seulement un ou deux des objectifs décrits ci-dessous constituerait un projet plus que adéquat et que vous poserez probablement des questions plus intéressantes que celles que j'ai déjà posées.

Je vais avoir une vision très large de ce qui est considéré comme un apprentissage automatique . Certaines de mes suggestions seraient sans doute mieux classées en analyse exploratoire de données et en analyse statistique plus traditionnelle . Mais, peut-être, cela vous aidera-t-il quelque peu lorsque vous formulerez vos propres questions intéressantes. Vous remarquerez que j'essaie de répondre à des questions qui, à mon avis, seraient intéressantes pour améliorer les fonctionnalités du site. Bien sûr, il existe de nombreuses autres questions intéressantes qui ne sont peut-être pas liées à la convivialité des sites.

  1. Analyse descriptive de base du comportement des utilisateurs : je suppose qu’il existe un schéma hebdomadaire très clair de participation des utilisateurs à ce site. Quand le site reçoit-il le plus de trafic? À quoi ressemble le graphique de la participation des utilisateurs sur le site, par exemple, stratifié par heure sur la semaine? Vous souhaitez vous adapter aux changements potentiels de la popularité globale du site au fil du temps. Cela conduit à la question, comment la popularité du site a-t-elle changé depuis sa création? Comment la participation d'un utilisateur "typique" varie-t-elle avec le temps depuis son adhésion? Je suppose que ça monte assez vite au début, puis sur les plateaux, et probablement vers le sud après quelques semaines ou plus.
  2. Soumission optimale des questions et des réponses : avoir un aperçu de la première question semble naturellement conduire à des questions plus intéressantes (au sens du ML). Supposons que j'ai une question pour laquelle j'ai besoin d'une réponse. Si je veux maximiser ma probabilité d'obtenir une réponse, quand devrais-je la soumettre? Si je réponds à une question et que je souhaite maximiser le nombre de votes, quand dois-je soumettre ma réponse? Peut-être que les réponses à ces deux questions sont très différentes. Comment cela varie-t-il en fonction du sujet de la question (par exemple, tel que défini par les balises associées)?
  3. Bicluster des utilisateurs et des sujets : quels sont les utilisateurs qui se ressemblent le plus, encore une fois, peut-être mesurés par des balises? Quels sont les sujets les plus similaires selon les utilisateurs? Pouvez-vous proposer une belle visualisation de ces relations? Il en découle d'essayer de prédire quel utilisateur est le plus susceptible de soumettre une réponse à une question particulière. (Imaginez que vous fournissiez cette technologie à SE afin que les utilisateurs puissent être informés des questions potentiellement intéressantes, et pas simplement basées sur des balises.)
  4. Regroupement des répondants en fonction de leur comportement : il semble y avoir quelques modèles de comportement de base différents concernant la manière dont les répondants utilisent ce site. Pouvez-vous proposer des fonctionnalités et un algorithme de classification pour regrouper les répondants en fonction de leur comportement? Les clusters sont-ils interprétables?
  5. Suggérer de nouvelles balises : Pouvez-vous suggérer de nouvelles balises basées sur des sujets déduits à partir des questions et réponses actuellement dans la base de données. Par exemple, je pense que la balise [mélange-modèle] a été ajoutée récemment parce que quelqu'un a remarqué que nous avions de nombreuses questions connexes. Mais, il semble qu'une approche de récupération d'informations devrait pouvoir extraire directement ces sujets et potentiellement les suggérer aux modérateurs.
  6. Apprentissage semi-supervisé des emplacements géographiques : ( Celui-ci peut être un peu délicat du point de vue de la confidentialité. ) Certains utilisateurs indiquent où ils se trouvent. D'autres ne le font pas. En utilisant des modèles d'utilisation et potentiellement du vocabulaire, etc., pouvez-vous mettre une région de confiance géographique sur l'emplacement de chaque utilisateur? Intuitivement, il semblerait que cela serait (beaucoup) plus précis en termes de longitude que de latitude.
  7. Marquage automatique des doublons possibles et des questions très liées : le site propose déjà un type de fonctionnalité similaire, avec la barre Associé dans la marge de droite. Trouver des doublons presque exacts et les suggérer pourrait être utile aux modérateurs. Faire cela sur plusieurs sites de la communauté SE semble être nouveau.
  8. Prévision du roulement et rétention des utilisateurs : à l'aide des fonctionnalités de l'historique de chaque utilisateur, pouvez-vous prédire la prochaine fois que vous comptez les voir? Pouvez-vous prédire la probabilité qu'ils reviennent sur le site en fonction de leur absence et des caractéristiques de leur comportement antérieur? Cela pourrait être utilisé, par exemple, pour essayer de remarquer lorsque les utilisateurs risquent de "perdre" et de les engager (par exemple, par courrier électronique) dans le but de les fidéliser. Une approche typique consiste à envoyer un courrier électronique après une période d'inactivité déterminée. Mais chaque utilisateur est très différent et il y a beaucoup d'informations sur beaucoup d'utilisateurs, donc une approche plus personnalisée pourrait être développée.

1
@ cardinal. C’est une réponse merveilleuse et, étant donné la disponibilité de toutes ces données, ce serait un projet fascinant.
richiemorrisroe

1
La plupart de vos suggestions me semblent pratiques et liées au ML. Quoi qu’il en soit, certains d’entre eux devraient traiter des données erronées et incomplètes. Malheureusement, je n'ai pas une connaissance approfondie de l'extraction et du nettoyage de données, ni assez de temps pour l'apprendre. J'espère que d'autres membres de stats travailleront sur ces idées et apporteront leur contribution à la communauté SE et les impressionneront :)
Isaac

2
@ Isaac, la liste que j'ai fournie n'était pas destinée à submerger. Il s'agissait simplement d'aider potentiellement à la réflexion. Selon la nature du projet, je penserais que traiter 1 à 2 d'entre eux serait le plus que l'on puisse attendre. À votre santé.
cardinal

1
toutes les idées sont bonnes ou bonnes, mais j'aime mieux "mettre en parallèle des utilisateurs et des sujets" ... un système de recommandation pour des questions potentiellement intéressantes serait génial.
Stefan

9

Je pensais aussi à la prédiction de tags, j'aime bien l'idée. J'ai l'impression que c'est possible, mais vous devrez peut-être surmonter de nombreux problèmes avant d'arriver à votre jeu de données final. Je suppose donc que la prédiction de balises peut nécessiter beaucoup de temps. Outre les balises incorrectes, la limite de 5 balises maximum peut jouer un rôle. De plus, certaines étiquettes sont des sous-catégories d’autres (par exemple, les «comparaisons multiples» peuvent être considérées comme une sous-catégorie de «test de signification»).

Je n'ai pas vérifié si les temps de vote vers le haut étaient inclus dans la base de données téléchargeable, mais un projet plus simple et toujours intéressant pourrait être de prédire le nombre «final» de votes (peut-être au bout de 5 mois) sur une question en fonction des votes initiaux, et le moment d'accepter une réponse.


D'après ce que je me souviens, pour chaque utilisateur, vous avez son vote avec la date et l'identifiant de la question.
chl

(+1) pour la prédiction de vote. Bonne idée!
steffen

1
Ce projet semble intéressant, surtout si nous prévoyons le nombre de vpvote très bientôt pour l'utilisateur. Un travail supplémentaire peut consister à dire à l'utilisateur ce qui retient sa question et quelle amélioration peut rendre sa question populaire. Quoi qu’il en soit, comme toujours, le choix de la fonctionnalité est une tâche importante et ardue et la performance de telles prédictions dépend fortement de cette sélection. TL; DR J'aime votre idée
Isaac

2

C'est une bonne question. Moi aussi, j'ai pensé que les jeux de données StackExchange disponibles au public constitueraient de bons sujets d'analyse. Celles-ci sont suffisamment inhabituelles pour constituer de bons bancs d'essai pour les nouvelles méthodes statistiques. Avoir une telle quantité de données bien structurées est inhabituel, en tout cas.

Cardinal a suggéré un tas de choses qui seraient réellement utiles pour StackExchange. Je ne me limiterai pas à cela.

Voici un candidat évident pour l’analyse, bien qu’il n’ait pas d’utilisation évidente à l’esprit. Il est un effet notable que les utilisateurs à forte représentation sont plus susceptibles d’obtenir des votes positifs, toutes choses étant égales par ailleurs. Cependant, cet effet est probablement non trivial à modéliser. Comme nous ne pouvons pas facilement comparer l'utilité entre utilisateurs, une approche évidente consisterait à supposer que les réponses des utilisateurs sont toujours aussi utiles (ce qui n'est pas vrai en général mais il faut bien commencer quelque part), puis à ajouter un terme inflationniste pour rendre compte de sa réputation croissante. . On pourrait ensuite (je suppose) ajouter des termes expliquant que ses réponses s’amélioraient avec l’expérience. Peut-être que cela pourrait être traité par une sorte de série chronologique. Je ne suis pas sûr de savoir comment l'intervalle de données affecterait ceci. Ce pourrait être un exercice intéressant.

J'ajouterai d'autres exemples si / quand j'y pense.

Est-ce que quelqu'un a connaissance de documents de recherche statistique basés sur des données SE? En outre, Isaac a mentionné que les données contiennent des erreurs. Est-ce que quelqu'un sait quelque chose de plus à ce sujet?


C’est en effet une question intéressante et que, je crois, AndyW a commencé à analyser dans un article de blog et à poser des questions il ya quelque temps. Je trouve curieux votre déclaration selon laquelle il existe un tel effet «notable», dont je ne suis pas entièrement convaincu qu’il existe réellement. Vous proposez ensuite un moyen de modéliser cela, mais cela ne consiste-t-il pas généralement à tenter de répondre à la question précise que vous dites a déjà une réponse affirmative?
cardinal

@ cardinal: Avez-vous un lien vers l'article du blog? Je ne suis pas sûr de comprendre votre dernière phrase. Tes, je pense que l'effet est réel et perceptible, du moins si le nom de l'utilisateur est Skeet, mais pour le moment, il s'agit simplement d'une impression anecdotique, bien que forte. Donc, si vous préférez, vous pouvez remplacer "effet perceptible" par une hypothèse. Bien entendu, l’analyse tenterait de le confirmer ou de le nier, ainsi que de mesurer la force de l’effet s’il existait.
Faheem Mitha

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.