La Truncated Singular Value Decomposition (Truncated SVD) es una técnica de reducción de la dimensionalidad basada en la Descomposición en Valores Singulares (Singular Value Decomposition, SVD). Su objetivo consiste en representar un conjunto de datos mediante un número reducido de componentes, conservando la mayor parte de la información original.
A diferencia de otras técnicas como Principal Component Analysis (PCA), Truncated SVD puede trabajar directamente con matrices dispersas (Sparse Matrices), lo que la convierte en una de las herramientas más utilizadas en Procesamiento del Lenguaje Natural (NLP), recuperación de información, análisis de documentos y minería de texto.
Gracias a su eficiencia computacional y a su capacidad para reducir grandes espacios de características, Truncated SVD constituye una técnica fundamental en proyectos donde los datos contienen miles o incluso millones de variables.
En este artículo se estudian sus fundamentos, funcionamiento, ventajas, limitaciones e implementación práctica en Python.
¿Qué es Truncated SVD?
Truncated SVD es una técnica de reducción de la dimensionalidad que aproxima una matriz original mediante un número reducido de componentes obtenidos a partir de su descomposición en valores singulares.
En lugar de conservar todos los componentes generados por la descomposición SVD, únicamente mantiene los k componentes más importantes, descartando aquellos cuya contribución a la información del conjunto de datos es menor.
De esta forma se consigue:
- Reducir el número de dimensiones.
- Disminuir el coste computacional.
- Reducir el ruido.
- Mantener la mayor parte de la información relevante.
¿Qué es la descomposición en valores singulares (SVD)?
Es una técnica matemática que factoriza una matriz en tres matrices.
SS
A = U \Sigma V^T
SS
donde:
- \(U\) contiene los vectores singulares izquierdos.
- \(Σ\) contiene los valores singulares ordenados de mayor a menor.
- \(Vᵀ\) contiene los vectores singulares derechos.
Los valores singulares indican cuánta información aporta cada componente. Truncated SVD conserva únicamente los componentes asociados a los mayores valores singulares.

¿Cómo funciona?
El proceso general puede resumirse en los siguientes pasos.
- Construir la matriz de datos.
- Calcular la Descomposición en Valores Singulares.
- Ordenar los componentes según su importancia.
- Seleccionar únicamente los primeros k componentes.
- Reconstruir una representación reducida del conjunto de datos.
El resultado es una nueva matriz con muchas menos dimensiones.
¿Por qué se llama “Truncated”?
El término Truncated significa truncado o recortado. En lugar de conservar todos los componentes de la descomposición SVD, únicamente se mantienen los más relevantes.
Por ejemplo:
Una matriz puede generar:
- 5.000 componentes.
Sin embargo, tras aplicar Truncated SVD podrían conservarse únicamente:
- 100 componentes.
Los restantes se eliminan porque contienen poca información o representan ruido.
Diferencias entre Truncated SVD y PCA
Aunque ambas técnicas reducen la dimensionalidad, presentan diferencias importantes.
| Característica | Truncated SVD | PCA |
|---|---|---|
| Centra los datos | No | Sí |
| Funciona con matrices dispersas | Sí | No (directamente) |
| Utilizado en NLP | Muy frecuente | Poco habitual |
| Requiere calcular la matriz de covarianza | No | Sí |
| Escalabilidad | Muy alta | Alta |
Por este motivo, Truncated SVD suele ser la técnica preferida para trabajar con grandes matrices dispersas.
Ejemplo conceptual
Supongamos un conjunto de documentos representados mediante TF-IDF. Cada documento contiene:
- 50.000 términos.
La matriz posee:
- Miles de filas.
- 50.000 columnas.
Muchas palabras aparecen muy pocas veces. Aplicando Truncated SVD es posible representar cada documento mediante únicamente:
- 300 componentes.
Con ello se conserva gran parte de la información semántica mientras se reduce enormemente el tamaño del problema.
¿Por qué es importante en Data Science?
Muchos conjuntos de datos modernos presentan una dimensionalidad extremadamente alta.
Algunos ejemplos son:
- TF-IDF.
- Bag of Words.
- One-Hot Encoding.
- Datos genómicos.
- Matrices documento-término.
Truncated SVD permite reducir dichas dimensiones sin eliminar completamente la información más importante.
Relación con Latent Semantic Analysis (LSA)
Una de las aplicaciones más conocidas de Truncated SVD es Latent Semantic Analysis (LSA).
En este enfoque:
- Se construye una matriz documento-término mediante TF-IDF.
- Se aplica Truncated SVD.
- Los documentos pasan a representarse mediante un número reducido de factores latentes.
Estos factores capturan relaciones semánticas entre palabras y documentos que no son evidentes en la representación original.
LSA fue una de las primeras técnicas ampliamente utilizadas para descubrir temas latentes en colecciones de documentos.
Beneficios
Truncated SVD ofrece numerosas ventajas.
- Reduce la dimensionalidad.
- Funciona directamente con matrices dispersas.
- Reduce el ruido.
- Disminuye el coste computacional.
- Facilita el entrenamiento de modelos.
- Mejora la escalabilidad.
- Muy utilizada en NLP.
- Conserva gran parte de la información original.
¿Cuándo utilizar Truncated SVD?
Es recomendable utilizar esta técnica cuando:
- Se trabaja con matrices dispersas.
- Se utilizan representaciones TF-IDF.
- Se emplea Bag of Words.
- Existen miles de características.
- Se desarrollan motores de búsqueda.
- Se trabaja con recuperación de información.
- Se desea acelerar el entrenamiento de modelos.
- Se pretende reducir la memoria utilizada.
No suele ser la mejor opción para conjuntos de datos pequeños con pocas variables.
Ventajas y desventajas
| Ventajas | Desventajas |
|---|---|
| Excelente para matrices dispersas | Reduce la interpretabilidad de las variables |
| Muy eficiente computacionalmente | Es necesario elegir el número adecuado de componentes |
| Compatible con TF-IDF | Puede perder información |
| Reduce el ruido | Los componentes no tienen un significado directo |
| Escalable a grandes conjuntos de datos | No siempre mejora el rendimiento del modelo |
Limitaciones
Aunque es una técnica muy potente, presenta ciertas limitaciones.
- Los nuevos componentes resultan difíciles de interpretar.
- La elección del número de componentes influye en los resultados.
- Puede eliminar información relevante.
- No siempre mejora la precisión del modelo.
- Funciona mejor con datos numéricos o representaciones vectoriales.
- No captura relaciones no lineales entre variables.
Cuando existen relaciones altamente no lineales pueden resultar más adecuadas técnicas como UMAP o Autoencoders.
Truncated SVD vs otras técnicas
| Técnica | Supervisada | Matrices dispersas | Uso principal |
|---|---|---|---|
| Truncated SVD | No | Sí | NLP y reducción de dimensionalidad |
| PCA | No | No (directamente) | Variables numéricas continuas |
| ICA | No | No | Separación de señales |
| LDA | Sí | No | Clasificación |
| t-SNE | No | Sí | Visualización |
| UMAP | No | Sí | Visualización y reducción |
Cada técnica optimiza un objetivo diferente.
Truncated SVD vs SVD
Es habitual confundir ambos conceptos.
| Truncated SVD | Singular Value Decomposition (SVD) |
|---|---|
| Técnica de reducción de dimensionalidad | Descomposición matemática completa |
| Conserva solo los componentes más importantes | Calcula todos los componentes |
| Orientada al preprocesamiento de datos | Base matemática utilizada en numerosos algoritmos |
| Muy utilizada en NLP | Utilizada también en sistemas de recomendación, álgebra lineal y procesamiento de señales |
Truncated SVD es una aplicación práctica de la Descomposición en Valores Singulares adaptada a la reducción de dimensionalidad.
Aplicaciones en Data Science y Machine Learning
Truncated SVD aparece en numerosos problemas reales.
Entre los más habituales destacan:
- Procesamiento del Lenguaje Natural (NLP).
- Latent Semantic Analysis (LSA).
- Recuperación de información.
- Motores de búsqueda.
- Clasificación de documentos.
- Minería de texto.
- Sistemas de recomendación basados en contenido.
- Análisis de texto.
- Detección de temas.
- Compresión de datos.
Es especialmente útil cuando las matrices contienen un gran número de variables y son muy dispersas.
Implementación en Python
Scikit-Learn proporciona una implementación muy eficiente de Truncated SVD.
Reducir la dimensionalidad
from sklearn.decomposition import TruncatedSVD
svd = TruncatedSVD(
n_components=100,
random_state=42
)
X_reducido = svd.fit_transform(X)
Aplicación sobre una matriz TF-IDF
from sklearn.feature_extraction.text import TfidfVectorizer
from sklearn.decomposition import TruncatedSVD
documentos = [
"Machine Learning con Python",
"Introducción al Deep Learning",
"Minería de datos y NLP"
]
vectorizador = TfidfVectorizer()
X = vectorizador.fit_transform(documentos)
svd = TruncatedSVD(
n_components=2,
random_state=42
)
X_reducido = svd.fit_transform(X)
Este flujo de trabajo constituye la base de numerosos sistemas de análisis documental.
Varianza explicada
Al igual que PCA, Truncated SVD permite conocer la cantidad de información conservada.
print(svd.explained_variance_ratio_)También puede calcularse la varianza acumulada.
print(svd.explained_variance_ratio_.sum())Esto ayuda a seleccionar un número adecuado de componentes.
Buenas prácticas
Para utilizar correctamente Truncated SVD se recomienda:
- Aplicarlo sobre matrices de alta dimensionalidad.
- Utilizarlo preferentemente con datos dispersos.
- Evaluar distintos valores de
n_components. - Analizar la varianza explicada antes de seleccionar el número de componentes.
- Comparar el rendimiento frente a PCA cuando se trabaja con datos densos.
- Validar experimentalmente el impacto sobre el modelo final.
- Documentar el número de componentes seleccionados y el criterio utilizado.
Conclusión
Truncated SVD es una de las técnicas de reducción de la dimensionalidad más importantes cuando se trabaja con matrices dispersas y conjuntos de datos de alta dimensión. Al conservar únicamente los componentes asociados a los mayores valores singulares, permite representar los datos mediante un número mucho menor de variables, reduciendo el coste computacional y eliminando parte del ruido sin perder gran parte de la información relevante.
Su capacidad para trabajar directamente con representaciones como TF-IDF y Bag of Words la ha convertido en una herramienta fundamental en Procesamiento del Lenguaje Natural, recuperación de información y minería de texto. Aunque comparte su base matemática con la Descomposición en Valores Singulares utilizada en otros ámbitos, como los sistemas de recomendación, su objetivo en este contexto es la compresión eficiente de datos y la reducción de dimensionalidad, lo que la convierte en una técnica esencial dentro del flujo de preparación y transformación de datos en proyectos de Ciencia de Datos y Machine Learning.