Saltar al contenido principal
Publicado
Etiquetas investigacion machine-learning oss

Prediciendo el Abandono de Proyectos OSS Con BiLSTM: Notas de Mi Tesis

Notas iniciales sobre el uso de redes Bidirectional LSTM para predecir cuándo un repositorio open-source está en riesgo de abandono, a partir de series temporales de commits e issues.

El problema

Los repositorios open-source mueren en silencio. Un proyecto que se veía saludable hace un año puede terminar sin mantenedor, sin PRs mergeados, y con una pila creciente de issues de seguridad sin atender — y para cuando eso es evidente, otros proyectos ya construyeron dependencias sobre él. Mi tesis plantea una pregunta más acotada: ¿podemos predecir el riesgo de abandono de forma temprana, directamente desde la serie temporal de actividad de un repositorio?

Por qué BiLSTM

La frecuencia de commits, la tasa de resolución de issues y la rotación de contribuidores son señales secuenciales — lo que pasó en el mes t depende de lo que pasó en los meses anteriores, y el abandono rara vez ocurre en un solo paso. Una Bidirectional LSTM lee esa secuencia en ambas direcciones, lo cual importa aquí: las señales de alerta temprana (un mantenedor que deja de responder, PRs acumulándose sin revisión) se ponderan mejor cuando el modelo tiene contexto tanto de antes como de después de un punto dado en los datos de entrenamiento.

Datos y features

Usando GH Archive como fuente, extraigo series temporales mensuales por repositorio:

  • Cantidad de commits y committers únicos
  • Tasas de apertura/cierre de issues
  • Latencia de merge de PRs
  • Un proxy aproximado de “bus factor” a partir de la concentración de contribuidores

Los repositorios se etiquetan como abandonados/activos usando heurísticas de umbral de actividad sobre la fecha del último commit y la antigüedad de issues abiertos — el mismo tipo de señal que los mantenedores ya usan informalmente, solo que hecha explícita.

Comparación con baselines

La BiLSTM se compara contra Regresión Logística y Random Forest sobre las mismas features, evaluando con F1 en la clase de abandono (desbalanceada) y AUC-ROC para ranking de riesgo. El objetivo no es solo “si el deep learning gana” — es si la estructura secuencial que puede explotar la BiLSTM realmente aporta señal sobre modelos que solo ven snapshots agregados.

La metodología completa y los resultados actuales están en la página de investigación — este post tendrá una continuación cuando el entrenamiento converja sobre el dataset completo.