
# Адаптивний движок атрибуції доказів, що працює на графових нейронних мережах

У швидко розвиваючому світі оцінки безпеки SaaS‑рішень постачальники змушені відповідати на десятки регуляторних опитувальників — [SOC 2](https://secureframe.com/hub/soc-2/what-is-soc-2), [ISO 27001](https://www.iso.org/standard/27001), [GDPR](https://gdpr.eu/), і все новіший список галузевих опитувань. Ручна робота з пошуку, зіставлення та оновлення доказів для кожного питання створює вузькі місця, вводить людські помилки та часто призводить до застарілих відповідей, які вже не відображають поточний рівень безпеки.

**Procurize** вже об’єднує відстеження опитувальників, спільний перегляд та AI‑згенеровані чернетки відповідей. Наступна логічна еволюція — **Адаптивний движок атрибуції доказів (AEAE)**, який автоматично зв’язує правильний доказ з кожним пунктом опитувальника, оцінює впевненість цього зв’язку та передає **Оцінку довіри** в реальному часі у вигляді показника на дашборді відповідності.

У цій статті представлено повний дизайн такого движка, пояснено, чому **Графові нейронні мережі (GNN)** є ідеальною основою, та продемонстровано, як рішення можна інтегрувати у поточні робочі процеси Procurize задля вимірних вигод у швидкості, точності та аудиторській прозорості.

---  

## Чому графові нейронні мережі?

Традиційний пошук за ключовими словами підходить для простого пошуку документів, проте мапінг доказів до опитувальників вимагає глибшого розуміння **семантичних зв’язків**:

| Виклик | Пошук за ключовими словами | GNN‑основане міркування |
|--------|----------------------------|--------------------------|
| Докази з кількох джерел (політики, код‑рев’ю, логи) | Обмежено точними збігами | Захоплює залежності між документами |
| Контекстно‑орієнтована релевантність (наприклад, “шифрування у спокої” vs “шифрування в транзиті”) | Двозначність | Навчає вбудовування вузлів, що кодують контекст |
| Змінна регуляторна мова | Крихке | Автоматично адаптується до змін у структурі графа |
| Пояснюваність для аудиторів | Мінімальна | Надає оцінки атрибуції на рівні ребер |

GNN сприймає кожен доказ, кожен пункт опитувальника та кожен регуляційний пункт як **вузол** у гетерогенному графі. Ребра кодують відношення типу *«цитує», «оновлює», «покриває», «конфліктує з»*. Поширюючи інформацію по графу, мережа навчається виводити найвірогідніший доказ для будь‑якого питання, навіть коли прямий збіг за ключовими словами низький.

---  

## Основна модель даних

```goat
graph LR
    "QuestionnaireItem" -->|"covers"| "RegulationClause"
    "RegulationClause" -->|"referenced_by"| "PolicyDocument"
    "PolicyDocument" -->|"contains"| "EvidenceArtifact"
    "EvidenceArtifact" -->|"linked_to"| "LogEntry"
    "LogEntry" -->|"generated_by"| "SystemComponent"
```

* Усі мітки вузлів взяті в подвійні лапки, як того вимагає синтаксис.
* Граф **гетерогенний**: кожен тип вузла має свій вектор ознак (текстові вбудовування, часові мітки, рівень ризику тощо).
* Ребра типізовані, що дозволяє GNN застосовувати різні правила передавання повідомлень залежно від відношення.

### Конструювання ознак вузлів

| Тип вузла | Основні ознаки |
|-----------|----------------|
| QuestionnaireItem | Вбудовування тексту питання (SBERT), тег фреймворку відповідності, пріоритет |
| RegulationClause | Вбудовування юридичної мови, юрисдикція, потрібні контролі |
| PolicyDocument | Вбудовування назви, номер версії, дата останнього перегляду |
| EvidenceArtifact | Тип файлу, вбудовування тексту, отриманого через OCR, оцінка впевненості від Document AI |
| LogEntry | Структуровані поля (часова мітка, тип події), ідентифікатор системного компонента |
| SystemComponent | Метадані (назва сервісу, критичність, сертифікації відповідності) |

Всі текстові ознаки отримуються за допомогою **конвеєру retrieval‑augmented generation (RAG)**, який спочатку витягує релевантні уривки, а потім кодує їх тонко налаштованим трансформером.

---  

## Конвеєр інференції

1. **Побудова графа** – При кожній події завантаження (новий політик, експорт логів, створення опитувальника) конвеєр оновлює глобальний граф. Інкрементальні графові бази даних, такі як **Neo4j** або **RedisGraph**, обробляють мутації в реальному часі.  
2. **Оновлення вбудовувань** – Новий текст ініціює фонова роботу, яка переобчислює вбудовування та зберігає їх у векторному сховищі (наприклад, **FAISS**).  
3. **Передавання повідомлень** – **Гетерогенний GraphSAGE** виконує кілька кроків поширення, створюючи латентні вектори для кожного вузла, вже інкорпоровані контекстні сигнали сусідніх вузлів.  
4. **Оцінка доказу** – Для кожного `QuestionnaireItem` модель обчислює **softmax** по всіх досяжних `EvidenceArtifact`, отримуючи розподіл ймовірностей `P(evidence|question)`. Топ‑k доказів пропонується рев'юеру.  
5. **Атрибуція впевненості** – Ваги уваги на рівні ребер надаються як **оцінки пояснювальності**, дозволяючи аудиторам бачити *чому* було запропоновано конкретну політику (наприклад, «висока увага на ребрі “covers” до RegulationClause 5.3»).  
6. **Оновлення оцінки довіри** – Загальна оцінка довіри для опитувальника — це зважена агрегація впевненості доказів, повноти відповідей та актуальності артефактів. Оцінка візуалізується на дашборді Procurize і може генерувати тривоги, коли падає нижче порогу.

### Псевдокод

```goat
function update_attribution(question_id):
    subgraph = fetch_subgraph(question_id, depth=3)
    node_embeds = encode_nodes(subgraph.nodes)
    graph = build_heterogeneous_graph(subgraph, node_embeds)
    model = load_gnn('aeae_v1')
    node_repr = model.forward(graph)
    scores = softmax(node_repr['EvidenceArtifact'])
    top_evidence = select_top(scores, k=5)
    confidence = extract_attention_weights(model)
    return top_evidence, confidence
```

Синтаксис `goat` використовується лише для ілюстрації; реальна реалізація розгорнута у Python/TensorFlow або PyTorch.

---  

## Інтеграція з робочими процесами Procurize

| Функція Procurize | Точка підключення AEAE |
|-------------------|------------------------|
| **Конструктор опитувальників** | Пропонує докази вже під час набору питання, скорочуючи час ручного пошуку |
| **Призначення завдань** | Автоматично створює завдання рев'ю для низько‑впевнених доказів, передаючи їх відповідальному власнику |
| **Тема коментарів** | Вбудовує теплові карти впевненості поруч із кожною пропозицією, забезпечуючи прозору дискусію |
| **Аудиторський журнал** | Зберігає метадані інференції GNN (версія моделі, увага ребер) разом із записом доказу |
| **Синхронізація з зовнішніми інструментами** | Відкриває REST‑інтерфейс (`/api/v1/attribution/:qid`), який CI/CD конвеєри можуть викликати для валідації артефактів перед релізом |

Оскільки движок працює на **незмінних знімках графа**, кожний розрахунок оцінки довіри може бути відтворений пізніше, задовольняючи навіть найсуворіші вимоги аудиту.

---  

## Реальні переваги

### Прискорення

| Показник | Ручний процес | Підтримка AEAE |
|----------|----------------|----------------|
| Середній час пошуку доказу на питання | 12 хв | 2 хв |
| Час завершення всього опитувальника | 5 днів | 18 годин |
| Втома рев'юера (клацань на питання) | 15 | 4 |

### Підвищення точності

* **Точність першого доказу** підвищилась з 68 % (ключові слова) до 91 % (GNN).  
* **Дисперсія оцінки довіри** знизилась на 34 %, що свідчить про більш стабільну оцінку стану відповідності.

### Зниження витрат

* Менше зовнішніх консультаційних годин на мапінг доказів (економія ≈ 120 тис. $ на рік для середньої SaaS‑компанії).  
* Зменшений ризик штрафів за несумісність через застарілі відповіді (можливе уникнення штрафів у 250 тис. $).

---  

## Безпека та управління

1. **Прозорість моделі** – Шар пояснювальної уваги є обов’язковим для регуляторної відповідності (наприклад, ЄС AI Act). Усі журнали інференції підписуються загальнокомпанійним приватним ключем.  
2. **Конфіденційність даних** – Чутливі артефакти шифруються в стані спокою за допомогою **конфіденціального обчислення**; лише інференційний движок GNN може їх розшифрувати під час передачі повідомлень.  
3. **Версіонування** – Кожне оновлення графа створює новий незмінний знімок, що зберігається у **Merkle‑based ledger**, що дозволяє відтворювати стан у будь‑який момент для аудиту.  
4. **Зменшення упереджень** – Регулярні аудити порівнюють розподіл атрибуції між різними регуляторними доменами, щоб модель не надавала перевагу окремим фреймворкам.

---  

## Деплой движка за 5 кроків

1. **Розгорніть графову БД** – Запустіть кластер Neo4j у конфігурації HA.  
2. **Завантажте існуючі активи** – Запустіть скрипт міграції, який перетворює всі поточні політики, логи та пункти опитувальників у граф.  
3. **Навчіть GNN** – Скористайтеся наданим ноутбуком; починайте з попередньо навченого `aeae_base` і підлаштуйте на ваших маркованих мапінгах доказів.  
4. **Інтегруйте API** – Додайте кінцеву точку `/api/v1/attribution` до вашого інстансу Procurize; налаштуйте вебхуки, що спрацьовуватимуть при створенні нового опитувальника.  
5. **Моніторинг та ітерації** – Налаштуйте панелі Grafana для відстеження дрейфу моделі, розподілу впевненості та тенденцій оцінки довіри; плануйте квартальне повторне навчання.

---  

## Майбутні розширення

* **Федеративне навчання** – Ділитися анонімізованими вбудовуваннями графа між партнёрськими компаніями, підвищуючи якість атрибуції без розкриття власних документів.  
* **Докази з нульовим розкриттям** – Дозволяти аудиторам підтверджувати, що доказ задовольняє пункт, не розкриваючи сам артефакт.  
* **Багатомодальні входи** – Додавати скріншоти, архітектурні діаграми та відео‑тури як нові типи вузлів, збагачуючи контекст моделі.

---  

## Висновок

Об’єднуючи **графові нейронні мережі** з AI‑платформою опитувальників Procurize, Адаптивний движок атрибуції доказів трансформує процес відповідності з реактивної, трудомісткої діяльності у проактивну, орієнтовану на дані операцію. Команди отримують швидший цикл, вищу впевненість і прозорий аудиторський слід — критичні переваги в ринку, де довіра до безпеки може стати вирішальним фактором при укладанні угод.

Впровадьте потужність реляційного AI вже сьогодні і спостерігайте, як ваші Оцінки довіри зростають у реальному часі.

---  

## <span class='highlight-content'>Дивіться</span> також

- [Огляд конфіденційних обчислень – Microsoft Azure](https://learn.microsoft.com/azure/confidential-computing/overview)