Views
No views yet
Input graph (nodes + edges)
|
Layer 1: GAT [19 -> 32]
|
Layer 2: GAT [32 -> 16]
|
Attention pool (weighted by risk_entropy)
|
patient_embedding [16] + risk_score [0,1]| Group | Dims | Content |
|---|---|---|
| Modality one-hot | 8 | text, asr, image_proxy, waveform_proxy, audio_proxy, image_link, audio_link, unknown |
| PHI type one-hot | 8 | NAME_DATE_MRN_FACILITY, NAME_DATE_MRN, FACE_IMAGE, WAVEFORM_HEADER, VOICE, FACE_LINK, VOICE_LINK, unknown |
| Scalars | 3 | risk_entropy, context_confidence, pseudonym_version_norm |
w = 0.30*f_temporal + 0.30*f_semantic + 0.25*f_modality + 0.15*f_trust1from dcpg_encoder import encode_patient
2
3result = encode_patient(graph_summary)
4
5result["patient_embedding"] # List[float], dim=16, L2-normalized
6result["node_embeddings"] # Dict[node_id, List[float]]
7result["risk_score"] # float in [0, 1]
8result["embed_dim"] # 16result = encode_patient(crdt_summary, source="crdt")1from inference import predict_batch
2results = predict_batch([summary_a, summary_b])1{
2 "nodes": [
3 {
4 "node_id": "patient_1::text::NAME_DATE_MRN_FACILITY",
5 "modality": "text",
6 "phi_type": "NAME_DATE_MRN_FACILITY",
7 "risk_entropy": 0.72,
8 "context_confidence": 0.9,
9 "pseudonym_version": 1
10 },
11 {
12 "node_id": "patient_1::asr::NAME_DATE_MRN",
13 "modality": "asr",
14 "phi_type": "NAME_DATE_MRN",
15 "risk_entropy": 0.61,
16 "context_confidence": 0.7,
17 "pseudonym_version": 1
18 }
19 ],
20 "edges": [
21 {
22 "source": "patient_1::text::NAME_DATE_MRN_FACILITY",
23 "target": "patient_1::asr::NAME_DATE_MRN",
24 "type": "co_occurrence",
25 "weight": 0.71
26 }
27 ]
28}1{
2 "patient_embedding": [0.0, 0.189, 0.0, 0.095, ...],
3 "node_embeddings": {
4 "patient_1::text::NAME_DATE_MRN_FACILITY": [0.0, 0.188, ...]
5 },
6 "risk_score": 0.429,
7 "embed_dim": 16
8}DCPGAdapter.graph_summary()
|
DCPGEncoder.encode()
|
+---+----------------------+
| |
patient_embedding risk_score
| |
PolicyNet FedCRDT-Distill
(masking policy) (federated merge)DCPGAdapter.graph_summary() in the main system or from CRDTGraph.summary() when operating in a federated deployment where two edge devices have merged their graphs.1@software{exposureguard_dcpg_encoder,
2 title = {ExposureGuard-DCPG-Encoder: Graph Attention Encoder for Cross-Modal PHI Exposure Graphs},
3 author = {Ganti, Venkata Krishna Azith Teja},
4 doi = {10.5281/zenodo.18865882},
5 url = {https://huggingface.co/vkatg/exposureguard-dcpg-encoder},
6 note = {US Provisional Patent filed 2025-07-05}
7}