non-negative matrix factorization
Megjelenés
Főnév
non-negative matrix factorization (tsz. non-negative matrix factorizations)
- (informatika) Non-negative Matrix Factorization (NMF) – magyarul: nemnegatív mátrixfelbontás – egy dimenziócsökkentő és adatreprezentációs módszer, amely egy nemnegatív mátrixot két másik, szintén nemnegatív mátrix szorzataként közelít. Célja, hogy a bemeneti adatot értelmezhetőbb, sűrített, „alkotórészekre bontott” formában ábrázolja. Gyakran alkalmazzák képfeldolgozásban, dokumentumelemzésben, ajánlórendszerekben és bioinformatikában.
🧠 1. Alapötlet
Egy nemnegatív mátrixot úgy közelítünk, hogy az elemeit pozitív „építőelemek összegeként” fejezzük ki.
Formálisan:
Ahol:
- , az eredeti nemnegatív adatmátrix
- , a bázismátrix (jellemzők, témák, arckomponensek stb.)
- , a koefficiensmátrix (súlyok vagy hozzájárulások)
- : a faktorszám (rejtett dimenziók száma)
📊 2. Példa – Dokumentumok témákra bontása
- : dokumentum–szó mátrix (minden cella: adott szó gyakorisága egy dokumentumban)
- : „témák” a szavak alapján (pl. „sport”, „politika”)
- : dokumentumok reprezentációja a témák szerint
📷 3. Példa – Arcfelismerés
- : arcok pixeleinek mátrixa (képek)
- : „arcrészletek” (pl. szem, száj, orr mint bázisok)
- : minden arc súlyozott összege a részekből
⚙️ 4. Algoritmus (általános séma)
Inicializáljuk és -t véletlenszerűen, pozitív értékekkel
Iteratív módon frissítjük őket úgy, hogy csökkenjen a rekonstrukciós hiba:
A frissítések tipikusan multiplikatív szabályokon alapulnak (Lee–Seung, 2001)
🛠️ 5. Python példa (scikit-learn)
from sklearn.decomposition import NMF
from sklearn.datasets import fetch_olivetti_faces
faces = fetch_olivetti_faces()
X = faces.data
model = NMF(n_components=16, init='random', random_state=0)
W = model.fit_transform(X)
H = model.components_
# W: arcok komponensei, H: hozzájárulások
🧩 6. NMF vs. PCA vs. SVD
| Módszer | Negatív értékek | Értelmezhetőség | Lineáris | Komponensek típusa |
|---|---|---|---|---|
| NMF | ❌ csak ≥ 0 | ✅ jó | ✅ | Additív, nemnegatív |
| PCA | ✅ lehetnek | ❌ nehéz | ✅ | Ortogonális |
| SVD | ✅ lehetnek | ❌ nehéz | ✅ | Mat. optimális |
📌 NMF az egyetlen, amely csak additív (pozitív) kombinációkat használ → jobban értelmezhető komponensek (pl. alkotórészek).
📈 7. Alkalmazások
- 📰 Szövegelemzés, topic modeling (dokumentumok témákra bontása)
- 🖼️ Képtömörítés és arcfeldolgozás
- 🔬 Genomikai mintázatkeresés
- 🎵 Hangforrás-szétválasztás
- 💳 Ajánlórendszerek (pl. Netflix, Amazon – termék/személy profilozás)
⚖️ 8. Előnyök és hátrányok
✅ Előnyök:
- Az eredmény értelmezhetőbb (csak pozitív hozzájárulások)
- Jó dimenziócsökkentés vizualizációhoz, klaszterezéshez
❌ Hátrányok:
- Nem konvex → csak lokális minimumot garantál
- Érzékeny az inicializálásra
- A komponensek száma (r) előre kell választani
🧾 9. Összefoglalás
A non-negative matrix factorization (NMF):
- Egy dimenziócsökkentő és komponenskereső technika, amely nemnegatív elemekkel dolgozik
- Különösen jól működik olyan problémákban, ahol a komponensek értelmezhető alkotórészekként jelennek meg
- Alkalmazható szövegfeldolgozástól képelemzésig, ajánlórendszerektől bioinformatikáig
- non-negative matrix factorization - Szótár.net (en-hu)
- non-negative matrix factorization - Sztaki (en-hu)
- non-negative matrix factorization - Merriam–Webster
- non-negative matrix factorization - Cambridge
- non-negative matrix factorization - WordNet
- non-negative matrix factorization - Яндекс (en-ru)
- non-negative matrix factorization - Google (en-hu)
- non-negative matrix factorization - Wikidata
- non-negative matrix factorization - Wikipédia (angol)