
# Dinamikus bizonyíték‑atribuíciós motor gráf neurális hálózatokkal

*Egy olyan korszakban, amikor a biztonsági kérdőívek gyorsabban halmozódnak fel, mint egy fejlesztési sprint, a szervezeteknek okosabb módra van szükségük, hogy a megfelelő bizonyítékot a megfelelő pillanatban megtalálják. A gráf neurális hálózatok (GNN‑ek) pontosan ezt nyújtják – egy módszert a megfelelőségi tudásgráfban rejlő rejtett kapcsolatok megértésére és a legrelevánsabb eszközök azonnali előhívására.*

---  

## 1. Probléma: Kézi bizonyítékkeresés  

A biztonsági kérdőívek, például a [SOC 2](https://secureframe.com/hub/soc-2/what-is-soc-2), az [ISO 27001](https://www.iso.org/standard/27001), és a [GDPR](https://gdpr.eu/) a kontrollok tucatjaira kérnek bizonyítékot. A hagyományos megközelítések a következőkre támaszkodnak:

* Kulcsszavas keresés a dokumentumtárakban  
* Emberi kézzel létrehozott leképezések a kontrollok és a bizonyítékok között  
* Statikus szabályalapú címkézés  

Ezek a módszerek **lassúak**, **hibára hajlamosak**, és **nehézkönnyű** követni, ha a szabályzatok vagy a szabályozások változnak. Egyetlen kimaradt bizonyíték késleltetheti az üzletet, megfelelőségi hibákat idézhet elő, vagy alááshatja a vásárlói bizalmat.

---  

## 2. Miért gráf neurális hálózatok?  

A megfelelőségi tudásbázis természetes módon egy **gráf**:

* **Node-ok** – szabályzatok, kontrollok, bizonyítékdokumentumok, szabályozási rendelkezések, szállító eszközök.  
* **Edge-ek** – „lefedi”, „származik‑valamiből”, „frissíti”, „kapcsolódik‑hozzá”.  

A GNN‑ek kiválóan tanulnak **node beágyazásokat** (node embeddings), amelyek egyszerre tartalmazzák az attribútuminformációt (pl. dokumentum szöveg) és a **struktúrakörnyezetet** (hogyan kapcsolódik egy node a gráf többi részéhez). Amikor egy kontrollra keresünk, a GNN képes rangsorolni a bizonyíték‑node‑okat, amelyek *leginkább szemantikus és topológiai szempontból* illeszkednek, még ha a kulcsszavak nem is egyeznek pontosan.

Kulcsfontosságú előnyök:

| Előny | Mit hoznak a GNN‑ek |
|--------|-----------------|
| Kontekstusérzékeny relevancia | Az embeddek az egész gráfot tükrözik, nem csak az elkülönített szöveget |
| Alkalmazkodó a változásokhoz | Az új élek alapján történő újratanítás automatikusan frissíti a rangsorolást |
| Magyarázhatóság | Figyelem‑pontszámok feltárják, mely kapcsolatok befolyásolták az ajánlást |

---  

## 3. Magas szintű architektúra  

Az alábbi Mermaid diagram azt mutatja, hogyan illeszkedik a Dinamikus Bizonyíték‑Atrribúíciós Motor a meglévő Procurize munkafolyamatba.

```mermaid
graph LR
    A["Policy Repository"] -->|Parse & Index| B["Knowledge Graph Builder"]
    B --> C["Graph Database (Neo4j)"]
    C --> D["GNN Training Service"]
    D --> E["Node Embedding Store"]
    subgraph Procurize Core
        F["Questionnaire Manager"]
        G["Task Assignment Engine"]
        H["AI Answer Generator"]
    end
    I["User Query: Control ID"] --> H
    H --> J["Embedding Lookup (E)"]
    J --> K["Similarity Search (FAISS)"]
    K --> L["Top‑N Evidence Candidates"]
    L --> G
    G --> F
    style D fill:#f9f,stroke:#333,stroke-width:2px
    style E fill:#ff9,stroke:#333,stroke-width:2px
```

*All node labels are wrapped in double quotes as required by Mermaid syntax.*

---  

## 4. Adatfolyam részletesen  

1. **Feltöltés**  
   - A szabályzatok, a kontrollkönyvtárak és a bizonyíték‑PDF‑ek a Procurize‑kapcsoló keretrendszerén keresztül kerülnek be.  
   - Minden eszközt egy **dokumentum bucket‑ben** tárolunk, és a metaadatait (cím, verzió, címkék) kinyerjük.  

2. **Gráfépítés**  
   - A **knowledge‑graph builder** node‑okat hoz létre minden eszközhöz és edge‑eket a következő alapján:  
     - Kontroll ↔️ Szabályozási leképezések (pl. ISO 27001 A.12.1 → GDPR Article 32)  
     - Bizonyíték ↔️ Kontroll idézetek (PDF‑ekből a Document AI‑val kinyerve)  
     - Verzió‑történeti élek (bizonyíték v2 „frissíti” bizonyíték v1)  

3. **Jellemzők generálása**  
   - A node‑ok szöveges tartalmát egy elő‑tréningezett LLM‑mel (pl. **mistral‑7B‑instruct**) 768‑dimenziós vektorrá alakítjuk.  
   - Strukturális jellemzők, mint a **degree centrality**, **betweenness**, és az **edge típusok**, csatolásra kerülnek.  

4. **GNN‑tréning**  
   - A **GraphSAGE** algoritmus 3‑hop szomszédságokat propagál, és olyan node embeddeket tanul, amelyek tiszteletben tartják a szemantikai és topológiai információt.  
   - A felügyelés a **historikus attribúciós naplók**ból származik: amikor egy biztonsági elemző manuálisan összekapcsol bizonyítékot és kontrollt, az a pozitív mintapár.  

5. **Valós‑idő pontszámolás**  
   - Amikor egy kérdőív elem megnyílik, az **AI Answer Generator** lekéri a cél‑kontroll embeddeket a GNN‑szolgáltatásból.  
   - Egy **FAISS** hasonlósági keresés visszaadja a legközelebbi bizonyíték embeddeket, rangsorolt listát generálva.  

6. **Ember‑a‑ciklusban**  
   - Az elemzők **elfogadhatják**, **elutasíthatják**, vagy **újrarrendezhetik** a javaslatokat. Műveleteik visszakerülnek a tréning‑pipeline‑ba, folyamatos tanulási hurkot létrehozva.  

---  

## 5. Integrációs érintkezési pontok a Procurize‑szal  

| Procurize komponens | Interakció |
|---------------------|------------|
| **Document AI Connector** | Kinyeri a PDF‑ek strukturált szövegét, amelyet a gráfépítő felhasznál. |
| **Task Assignment Engine** | Automatikusan feladatot hoz létre a top‑N bizonyíték‑candidátoknak. |
| **Commenting & Versioning** | Az elemzői visszajelzéseket „review‑score” attribútumként tárolja az éleken. |
| **API Layer** | Exponálja a `/evidence/attribution?control_id=XYZ` végpontot a UI‑nek. |
| **Audit Log Service** | Minden attribúciós döntést naplóz a megfelelőségi nyomvonalakhoz. |

---  

## 6. Biztonság, adatvédelem és irányítás  

* **Zero‑Knowledge Proofs (ZKP) a bizonyíték‑lekérdezéshez** – Az érzékeny bizonyítékok nem hagyják el a titkosított tárolást; a GNN csak a hash‑elt embeddeket kapja.  
* **Differenciális adatvédelem** – A modelltréning során zajt adunk a gradient‑frissítésekhez, biztosítva, hogy egyetlen bizonyíték‑hozzájárulás sem visszafejthető.  
* **Szerep‑alapú hozzáférés-vezérlés (RBAC)** – Csak a **Bizonyíték‑elemző** szereppel rendelkezők láthatják a nyers dokumentumokat; a UI‑ben csak a GNN‑kiválasztott kivonat jelenik meg.  
* **Magyarázhatósági műszerfal** – Egy hőtérkép megmutatja, mely edge‑ek („lefedi”, „frissíti”, stb.) járultak hozzá leginkább az ajánláshoz, ezzel megfelelve az audit követelményeknek.  

---  

## 7. Lépésről‑lépésre megvalósítási útmutató  

1. **Állítsd be a gráfadatbázist**  
   ```bash
   docker run -d -p 7474:7474 -p 7687:7687 \
     --name neo4j \
     -e NEO4J_AUTH=neo4j/securepwd \
     neo4j:5.15
   ```  

2. **Telepítsd a Knowledge‑Graph Builder‑t** (Python csomag `procurize-kg`)  
   ```bash
   pip install procurize-kg[neo4j,docai]
   ```  

3. **Futtasd a beolvasó pipeline‑t**  
   ```bash
   kg_builder --source ./policy_repo \
              --docai-token $DOCAI_TOKEN \
              --neo4j-uri bolt://localhost:7474 \
              --neo4j-auth neo4j/securepwd
   ```  

4. **Indítsd el a GNN tréning szolgáltatást** (Docker‑compose)  
   ```yaml
   version: "3.8"
   services:
     gnn-trainer:
       image: procurize/gnn-trainer:latest
       environment:
         - NE04J_URI=bolt://neo4j:7687
         - NE04J_AUTH=neo4j/securepwd
         - TRAIN_EPOCHS=30
       ports:
         - "5000:5000"
   ```  

5. **Tedd elérhetővé az attribúciós API‑t**  
   ```python
   from fastapi import FastAPI, Query
   from gnns import EmbeddingService, SimilaritySearch

   app = FastAPI()
   emb_service = EmbeddingService()
   sim_search = SimilaritySearch()

   @app.get("/evidence/attribution")
   async def attribute(control_id: str = Query(...)):
       control_emb = await emb_service.get_embedding(control_id)
       candidates = await sim_search.top_k(control_emb, k=5)
       return {"candidates": candidates}
   ```  

6. **Kösd össze a Procurize UI‑val**  
   - Adj hozzá egy új panel widgetet, amely a `/evidence/attribution` végpontra hív, amikor egy kontroll kártya megnyílik.  
   - Jelenítsd meg a találatokat elfogadás gombokkal, amelyek a `POST /tasks/create`‑t indítják a kiválasztott bizonyítékra.  

---  

## 8. Mérhető előnyök  

| Mérőszám | GNN előtt | GNN után (30‑napos pilot) |
|----------|-----------|---------------------------|
| Átlagos bizonyíték‑keresési idő | 4,2 perc | 18 másodperc |
| Manuális attribúciós erőforrás (ember‑óra) | 120 h / hónap | 32 h / hónap |
| Javasolt bizonyíték pontossága (elemzők értékelése) | 68 % | 92 % |
| Üzletkötés sebességének javulása | – | +14 nap átlagosan |

A pilot adatok **>75 %‑os csökkenést** mutatnak a manuális munkában, és jelentős növekedést a megfelelőségi ellenőrzések megbízhatóságában.

---  

## 9. Jövőbeni útiterv  

1. **Kereszt‑tenant tudásgráfok** – Federált tanulás több szervezet között, adatvédelmet megőrizve.  
2. **Multimodális bizonyíték** – Szöveges PDF‑ek kombinálása kódrészletekkel és konfigurációs fájlokkal **multimodális transzformátorok** segítségével.  
3. **Adaptív prompt piac** – A GNN‑alapú bizonyítékok alapján automatikus LLM prompt generálás, zárt‑ciklusú válaszgenerálási folyamat.  
4. **Ön‑gyógyító gráf** – Elárvult bizonyíték‑node‑ok felismerése és automatikus archiválási vagy újrakapcsolási javaslatok.  

---  

## 10. Következtetés  

A **Dinamikus Bizonyíték‑Atrribúíciós Motor** átalakítja a fáradságos „keres‑és‑másolj” rituált egy adat‑vezérelt, AI‑kiegészített élménnyé. A Gráf Neurális Hálózatok felhasználásával a szervezetek:

* **Felgyorsítják** a kérdőív‑kitöltést percekről másodpercekig.  
* **Növelik** a bizonyíték‑ajánlások pontosságát, csökkentve a megfelelőségi hibákat.  
* **Megőrzik** a teljes auditálhatóságot és magyarázhatóságot, így megfelelnek a szabályozói elvárásoknak.  

Az engine integrálása a Procurize meglévő kollaborációs és munkafolyamat‑eszközeibe egy **egységes igazságforrást** teremt a megfelelőségi bizonyítékok számára, ezáltal a biztonsági, jogi és termékcsoportok számára a papírmunka helyett a stratégia kidolgozására enged teret.

---  

## Lásd még  

- [ISO 27001:2022 – Controls and Evidence Management Best Practices](https://www.iso.org/standard/73906.html)