Initial release: code for WCL2026-1544 (context-aware embedding masking via DRL)

This commit is contained in:
Ki-Ho Lee
2026-06-22 17:31:32 +09:00
commit 8b7f70d650
26 changed files with 3445 additions and 0 deletions
+70
View File
@@ -0,0 +1,70 @@
# Context-Aware Embedding Masking for Shared-Embedding Semantic Multiplexing
Source code for the IEEE Wireless Communications Letters paper
> **Context-Aware Embedding Masking Based on Reinforcement Learning for
> Semantic Multiplexing** (WCL2026-1544)
> K.-H. Lee, H.-H. Choi, and J.-R. Lee.
A proximal policy optimization (PPO) actor, conditioned on the wireless
context `(SNR, U)`, emits the user mask matrix of the shared-embedding (SE)
transceiver through a low-rank generator, under a reward that maximizes
per-user cosine similarity and penalizes mask non-orthogonality.
## Requirements
```
pip install -r requirements.txt
```
Python 3.8+ with `torch`, `transformers`, `numpy`, `matplotlib`.
## Files
| File | Role |
|------|------|
| `drl_mask_policy.py` | Main trainer. Modes: `drl` (proposed), `joint` (static masking, MSE+CosSim), `joint_ce` (cross-entropy), `fixed_orth` (fixed-orthogonal scheme). Implements the PPO actor/critic, low-rank generator, and SE transceiver. |
| `extract_bert_embeddings.py` | Produces the frozen `bert-base-uncased` embeddings of 8,000 AG News headlines (`bert_agnews_8000.pt`). |
| `eval_task_oriented.py` | Top-1 semantic retrieval accuracy / semantic SER (single run) — Table II. |
| `eval_multiseed.py` | Six-seed aggregation (mean ± std) of the retrieval metric — Table II. |
| `fixed_orth_byU.py` | Fixed-orthogonal-mask scheme swept over the user count `U`. |
| `plot_drl_wcl.py` | Regenerates all figures (Figs. 23) from the result CSVs. |
| `run_*.sh` | Experiment drivers (multi-seed training, SNR sweeps, ablations). |
## Mapping to the paper
| Paper artifact | How to reproduce |
|----------------|------------------|
| Fig. 2(a) training-time `O(M)` | `run_multiseed_all.sh` then `plot_drl_wcl.py` |
| Fig. 2(b) ablation (`beta`, rank `r`) | `run_beta02_U4.sh`, `run_ablation_U26.sh` |
| Fig. 3(a) per-user CosSim vs. SNR | `run_multiseed_100ep.sh` |
| Fig. 3(b) throughput vs. `U` | `run_ablation_U26.sh` |
| Table II top-1 retrieval (6 seeds) | `eval_multiseed.py` |
| Fixed-orthogonal reference | `fixed_orth_byU.py` |
## Quick start
```bash
pip install -r requirements.txt
python extract_bert_embeddings.py # -> bert_agnews_8000.pt
bash run_multiseed_all.sh # train all methods over six seeds
python eval_multiseed.py # -> Table II (retrieval accuracy)
python plot_drl_wcl.py # -> figures in fig/
```
Hyperparameters match Table I of the paper (PPO clip 0.2, four optimizer
epochs per buffer, buffer size 64, rank `r = 64`, `beta = 0.5`, 100 epochs
of 200 iterations, six seeds `{0, 42, 123, 7, 2025, 2026}`).
## Citation
```bibtex
@article{lee2026contextaware,
author = {Lee, Ki-Ho and Choi, Hyun-Ho and Lee, Jung-Ryun},
title = {Context-Aware Embedding Masking Based on Reinforcement
Learning for Semantic Multiplexing},
journal = {IEEE Wireless Communications Letters},
year = {2026},
note = {WCL2026-1544}
}
```