# IV. EXPERIMENTAL EVALUATION(实验评估 — 论文可直接引用) 本节与仓库实验实现一致:`run_experiment.py` / `src/experiment/runner.py` 三路对比,配置文件分别为 `config/config_baseline.yaml`、`config/config_contrastive.yaml`、`config/config_preference_weighted.yaml`。 --- ## A.1 Dataset(数据集) - **来源**:北京 POI 数据集(由 GeoJSON 经 `src/download/convert_geojson.py` 等工具转为统一 JSON)。 - **字段**:每条记录包含 `id`、`type`、`x`、`y`。 - **规模**(主实验文件 `data/beijing_poi.json`):**4592** 个 POI,**16** 类业态类型。 (可选子集:`data/beijing_haidian.json`,802 条、14 类。) --- ## A.2 Baseline and Compared Methods(基线与对比方法说明) 本实验在**相同数据、相同挖掘参数、相同交互轮次与采样协议**下,对比以下三种方法。三者均共享 **LLM 意图理解(Stage0)**、**共现模式挖掘**与**多轮交互框架**;差异在于 **Stage3 偏好打分与是否训练对比模型**。 ### (1)Baseline(语义相似度基线) - **配置**:`config/config_baseline.yaml`;`stage3.use_contrastive: false`;不启用 `use_preference_weighted`。 - **算法要点**: - 将模式编码为嵌入向量,与用户向量(由 LLM 意图向量与反馈向量按衰减权重融合得到)计算**余弦相似度**作为偏好分; - 与模式挖掘得到的 **confidence** 按 \(\alpha\) 线性融合: \(\text{score} = \alpha \cdot s_{\text{pref}} + (1-\alpha) \cdot \text{confidence}\)(默认 \(\alpha=0.7\),见 `stage3.alpha`)。 - **定位**:**无**可学习的 `PreferenceEncoder`,**无**显式 liked/disliked 特征乘权;代表「传统向量相似度 + 统计置信度」的强基线,用于衡量仅依赖语义对齐时的排序上限。 ### (2)Contrastive(对比学习偏好表示) - **配置**:`config/config_contrastive.yaml`;`stage3.use_contrastive: true`。 - **算法要点**: - 在 Baseline 同一融合用户向量框架下,引入可训练 **`PreferenceEncoder`**; - 利用用户反馈构造 **Triplet**(anchor / positive / negative),以 **Cosine Triplet Loss**(或欧式 Triplet,由 `use_cosine_loss` 控制)优化,使偏好空间内正负样本更可分; - 推断时对模式向量与用户向量经 \(f_\theta(\cdot)\) 投影后再算余弦相似度,并与 confidence 按同一 \(\alpha\) 融合。 - **定位**:代表**参数化偏好学习**路径;预期在多轮反馈后较 Baseline 有更强判别力。训练权重默认保存路径见配置项 `stage3.model_save_path`(如 `models/preference_encoder_contrastive.pth`)。 ### (3)Preference-Weighted(2025 风格特征级偏好融合) - **配置**:`config/config_preference_weighted.yaml`;`stage3.use_preference_weighted: true`;`stage3.use_contrastive: false`。 - **算法要点**: - 在 **learner 打分路径**上,对相似度分数乘以特征级权重: \(w = 1 + \frac{n_{\text{liked}}-n_{\text{disliked}}}{|P|}\cdot 0.5\),并截断至 \([0.5,1.5]\); 其中 \(n_{\text{liked}}\)、\(n_{\text{disliked}}\) 分别为模式 \(P\) 中命中用户显式喜欢/不喜欢 POI 类型的个数(实验里由 `UserSimulator` 写入 `memory.save_preference_features`)。 - **定位**:**不训练**对比网络,通过**规则化多维偏好(类别喜欢/不喜欢)**与语义相似度相乘,对应文献中「自适应融合多维用户偏好」的简化实现,便于与 Baseline、Contrastive 做三路对照。参考文献叙事见 `document/对比算法说明.md`。 ### 与「传统方法 / 2025 ROI 推荐」的关系(论文表述建议) - **Baseline** 可对应论文中的**非学习式、仅统计+向量相似**的对照; - **Contrastive** 体现本文 **iCoLoc** 的核心:**LLM 冷启动 + 对比学习闭环**; - **Preference-Weighted** 可作为 **2025 年个性化 ROI/多维偏好融合类方法**在本任务上的**可复现对照实现**(实现为相似度 × 特征权重,而非原文完整网络)。 --- ## A.3 Evaluation Metrics(评价指标) - **指标**:Accuracy、Precision、Recall、F1(实现见 `src/experiment/metrics.py`)。 - **二值化**:对每条模式的连续得分,用阈值 \(\tau\) 得到预测标签;当前实现中 **`compute_threshold` 固定返回 \(\tau=0.7\)**(与代码一致,论文中应如实写明)。 - **Accuracy**: \(\mathrm{Accuracy}=\frac{1}{N}\sum_{i=1}^{N}\mathbf{1}(\hat{y}_i=y_i)\), 其中 \(N\) 为参与评估的模式数,\(y_i\) 为模拟用户真值(`UserSimulator`:含 liked 且不含 disliked 为 1,否则为 0)。 --- ## B. Experimental Results(结果呈现建议) - 报告**交互最后一轮**(如第 10 轮)三组方法的 Accuracy / Precision / Recall / F1,并辅以学习曲线图(`results/*.json` + `run_plotter.py`)。 - 原始结果文件:`results/metrics_baseline.json`、`metrics_contrastive.json`、`metrics_preference_weighted.json`。 --- ## 英文段落(可直接贴论文 A.2) **A.2 Baselines.** We compare three configurations under identical data, mining settings, and interaction protocols. **Baseline** disables contrastive training and feature-level weighting; it ranks patterns by cosine similarity between pattern embeddings and a fused user vector (LLM intent plus feedback with exponential decay), combined with pattern confidence. **Contrastive** enables a trainable `PreferenceEncoder` optimized with triplet supervision from user feedback, and scores patterns using projected embeddings before the same confidence fusion. **Preference-Weighted** keeps contrastive training off but multiplies similarity scores by a feature-level weight derived from explicit liked/disliked POI types, serving as a lightweight counterpart to recent adaptive multi-preference fusion ideas. These three methods isolate (i) semantic similarity only, (ii) learned preference geometry, and (iii) explicit category-aware reweighting.