前言
申请软著相关资料
https://blog.csdn.net/qq_60387902/article/details/133690252
Co-location挖掘的核心目标:
在空间数据中发现不同类型对象在地理位置上频繁邻近或共同出现的模式,从而揭示空间实体之间潜在的关联关系与相互影响。其重点不是单个对象的频率,而是多类空间特征在一定距离约束下的共现规律,用于理解空间相关性、辅助决策与知识发现。
co-location的作用实例
1. 商业选址规划
co-location可以分析{餐厅、咖啡店、地铁站、商场、写字楼},通过co-location可以挖掘出一个模式{咖啡店, 写字楼, 地铁站}模式,就说明这些东西经常一起出现。那么投资者就可以根据这个模式进行商业选址规划
2. 公共卫生 / 流行病学
为了挖掘某地的污染物与传染病之间的联系,我们可以构建一个{污染源、工厂、医院、呼吸疾病病例}的数据集,对这个数据集进行co-location挖掘,比如挖掘出{{工厂, 高PM2.5区域, 呼吸疾病}}这样的模式。这么一来,就可以根据这一模式进行评估和进行决策,比如将居民楼远离这些地方。
3. b站用户视频推荐
每个用户都是一个个体,假设a用户经常刷荣誉无畏契约视频,同时也特别喜欢在看完荣誉无畏契约视频之后,看看叶某来了的直播或者视频,久而久之,co-location系统就会挖掘出{荣誉无畏契约,叶某来了}模式,表示当a用户看完荣誉无畏契约之后就会去看叶某来了,那么b站就会在视频下方放上叶某来了的视频链接,让用户直接点击观看。
一句话总结:co-location挖掘就是挖掘模式,然后根据这个模式进行操作
引入我们的项目
在空间数据挖掘中,并不是所有模式都是用户所喜欢的,比如a用户更关心选址规划,b用户更关心物种分析。但是传统的co-location并不会进行筛选,只会将所有的东西都放上去,让用户在海量的信息下面进行选择。因此,我们的(基于 LLM 引导意图建模与对比偏好学习的交互式空间同位模式挖掘系统)横空出世。这个系统主要解决的问题就是让推送给用户的模式更加的符合用户的偏好,同时让用户能进行无痛空间数据挖掘,让他们不需要掌握相关的知识也能享受到空间数据挖掘的成果。
项目流程图
用户表达意图,进行模糊查询(我想开个早餐店,给点推荐)
↓
AI 把“模糊的人类意图”提取出相关的特征,初始化用户向量
↓
运行 co-location 挖掘(join_based算法)
↓
挖掘模式之后将模式与用户向量进行相似度计算,排序
↓
用户对前20的模式进行点赞或者点踩
↓
模型通过对比学习学习这次的模式,然后进行自我迭代,更新用户向量
↓
如果迭代完,al对结果进行解释,如果没有,就继续进行步骤3的循环
软件著作权说明文档
一、软件基本信息
| 项目 | 内容 |
|---|
| 软件全称 | 基于大语言模型的交互式空间共现模式挖掘系统 |
| 软件简称 | Co-location MVP / 共现模式挖掘系统 |
| 版本号 | V1.0 |
| 软件分类 | 应用软件 / 数据挖掘与智能决策 |
| 开发语言 | Python |
| 运行平台 | 跨平台(Windows / Linux / macOS) |
二、软件简介
本软件是一套基于大语言模型(LLM)的交互式空间共现模式挖掘系统,面向空间数据挖掘与选址决策场景。系统能够理解用户的自然语言查询(包括模糊业务意图),自动执行空间共现(Co-location)模式挖掘,并结合用户反馈进行个性化排序与偏好学习,支持多轮迭代精炼与 Web 交互,适用于商业选址、城市规划、地理信息分析等领域的科研与教学。
系统采用模块化架构,整合了本地大语言模型推理、参与指数驱动的 Co-location 挖掘算法、意图理解与偏好初始化(Stage0)、用户偏好学习与对比学习(Stage3)、多轮迭代交互引擎(Stage4) 以及 Web 服务与实验评估 等完整功能链路,形成从“自然语言查询 → 参数提取 → 模式挖掘 → 偏好排序 → 反馈学习 → 迭代精炼”的端到端流水线。
三、主要功能
3.1 自然语言查询与参数提取
- 支持用户以自然语言描述挖掘需求(如“我更关注高置信度的三阶模式”“参与率大于 0.7 的模式”等)。
- 通过大语言模型从查询中自动提取结构化挖掘参数(最小参与率、最大模式阶数、排序优先级等)。
- 支持模糊意图查询(如“我想开一家早餐店”“适合开咖啡店的位置”),由意图理解模块解析为业务类型、偏好模式与风险因素。
3.2 意图理解与冷启动
- 对模糊查询进行意图解析,输出目标业务类型、偏好空间模式、重要因素与风险因素。
- 将结构化意图映射为初始用户偏好向量,解决冷启动阶段无历史反馈时的排序问题。
- 意图向量与后续用户反馈向量动态融合(指数衰减权重),实现从“意图先验”到“反馈主导”的平滑过渡。
3.3 空间共现模式挖掘(核心算法)
- 基于参与指数(Participation Index) 的空间 Co-location 模式挖掘。
- 支持 2 阶至 k 阶模式的生成与过滤,可配置距离阈值、最小参与率、最大模式规模。
- 支持按置信度、参与率、模式大小等维度排序;采用批量距离计算与可选 GPU 加速,提高大规模空间数据的挖掘效率。
3.4 用户偏好学习与排序优化
- 记录用户对推荐模式的“喜欢/不喜欢”反馈,构建用户偏好向量(正反馈向量与负反馈向量)。
- 使用模式嵌入(Sentence Transformers)与用户向量的相似度对挖掘结果进行个性化重排序。
- 可选对比学习:基于 Triplet Loss / Cosine Triplet Loss 训练偏好编码器,提升偏好表示的区分度;支持模型保存与加载。
3.5 多轮迭代交互
- 支持设定迭代轮数,在多轮内重复“挖掘 → 排序 → 展示 → 收集反馈 → 更新用户向量”的流程。
- 每轮根据反馈更新融合向量,实现渐进式偏好精炼。
- 支持通过命令行或 Web API 启动迭代、推进下一轮、结束迭代并获取最终排序结果。
3.6 Web 服务与前端
- 提供基于 FastAPI 的 REST API,支持查询、反馈提交、模型训练、迭代会话管理、自定义参数重算等接口。
- 提供 Web 前端界面:输入查询、查看意图理解结果、查看挖掘结果与相似度、进行点赞/点踩反馈、触发训练、查看训练历史与迭代历史。
3.7 实验与评估
- 提供实验模块:用户模拟器、多样性采样策略(top / mixed / stratified / uncertainty)、评估循环。
- 支持基线偏好学习与对比学习偏好学习的对比实验,输出准确率、精确率、召回率、F1 及预交互(仅 LLM 向量)指标,并可绘制学习曲线与多指标对比图。
3.8 记忆与持久化
- 用户反馈历史、用户偏好向量、意图理解结果分别持久化存储(如 history.json、user_memory.json、intent_memory.json)。
- 支持按轮次查询历史,便于迭代流程与审计。
四、技术特点
4.1 算法与模型
- 参与指数 Co-location 挖掘:基于邻接关系与参与率的经典空间模式度量,支持 2 阶表实例的批量/向量化距离计算及 GPU 加速,k 阶生成采用前缀索引与流式批处理以控制内存与耗时。
- 意图到向量映射:利用 Sentence Transformers 将意图中的偏好模式编码为向量,生成可融合的初始用户表示。
- 动态向量融合:用户当前向量为“意图向量”与“反馈向量”的加权和,权重可随轮次指数衰减(Stage3)或固定(Stage4),兼顾冷启动与长期学习。
- 对比学习:Triplet(anchor, positive, negative)构造与 Cosine Triplet Loss,训练 PreferenceEncoder 将模式嵌入投影到与用户偏好一致的空间,提升排序质量。
4.2 架构与工程
- 模块化设计:LLM、偏好解析、核心挖掘、控制器、记忆、学习、编码器、Web、实验等模块职责清晰,便于扩展与维护。
- 配置驱动:通过 YAML 配置模型路径、推理参数、挖掘默认值、Stage0/3/4 开关及超参数,无需改代码即可切换运行模式。
- 容错与回退:LLM 加载优先使用 LlamaFactory,不可用时自动回退至 transformers;GPU 不可用时自动使用 CPU 计算。
- 日志与可观测性:统一日志接口,记录挖掘、排序、训练、迭代等关键步骤,便于调试与行为分析。
4.3 接口与部署
- 双模式运行:支持命令行交互/单次查询/多轮迭代/仅训练,以及 Web 服务模式(uvicorn + FastAPI)。
- RESTful API:查询、反馈、训练、迭代启动/下一轮/结束、重算等均提供标准化 API,便于二次集成与自动化评估。
- 类型与校验:使用 Pydantic 定义请求/响应模型,保证接口数据合法性与可维护性。
4.4 数据与性能
- 输入数据格式:JSON 点集,每点包含 id、type、x、y 等字段,适配常见 POI 与空间点数据。
- 大规模优化:2 阶表实例构建采用整型坐标数组与矩阵运算;k 阶生成采用实例采样与批处理邻接检查,在保证正确性的前提下控制内存与时间。
- 多样性采样:评估与迭代中支持多种策略选择待反馈模式,避免训练样本过度偏向高分段,提升对比学习效果。
五、运行环境
- 操作系统:Windows 10/11、Linux(如 Ubuntu 20.04+)、macOS 10.15+。
- 运行环境:Python 3.9 及以上。
- 硬件建议:CPU 多核;内存建议 8GB 及以上,大规模数据建议 16GB 及以上;可选 NVIDIA GPU(支持 CUDA),用于 LLM 推理与挖掘/对比学习加速。
- 主要依赖:PyTorch、transformers、sentence-transformers、FastAPI、uvicorn、PyYAML、numpy、pydantic 等(见项目 requirements.txt)。
- 可选:LlamaFactory(用于统一模型加载与 LoRA),未安装时自动回退至 transformers。
六、应用领域
- 商业选址与业态分析:根据“目标业态 + 偏好/规避的周边业态”进行模糊查询与模式挖掘,辅助开店选址。
- 城市规划与空间分析:发现不同类型设施的空间共现规律,支撑规划与政策评估。
- 地理信息与 POI 研究:面向 POI、兴趣点等点状空间数据的模式发现与可视化分析。
- 教学与科研:作为“自然语言 + 空间挖掘 + 偏好学习”的综合实验平台,用于算法对比、人机交互与评估方法研究。
七、项目结构概览
- llm/:大语言模型模块(推理、提示词、意图编码与映射)
- preference/:偏好解析(参数解析、打分器)
- core/:核心挖掘(Co-location 算法实现)
- controller/:控制器(流水线协调、迭代管理)
- memory/:记忆存储(反馈、用户向量、意图持久化)
- learning/:学习模块(嵌入、偏好学习器、数据集、训练器)
- embedding/:编码器(模式编码器、偏好编码器)
- web/:Web 服务(FastAPI、路由、服务层、数据模型)
- experiment/:实验评估(模拟器、指标、评估器、运行器、绘图)
- frontend/、static/:前端页面与静态资源
- config/、data/、models/、logs/、document/:配置、数据、模型、日志与文档目录
- main.py:主程序入口;requirements.txt:依赖列表
八、创新点摘要
- 自然语言 + 空间挖掘 + 偏好学习一体化:将 LLM 意图理解、参与指数 Co-location 挖掘与用户反馈下的偏好学习(含对比学习)整合为统一流水线,支持从模糊意图到个性化排序的完整闭环。
- 冷启动与多轮精炼:通过 Stage0 意图向量初始化与 Stage4 多轮迭代,在无/少反馈时仍能给出合理排序,并在多轮中持续精炼用户偏好。
- 对比学习与多样性采样:在偏好学习中引入 Triplet 对比学习与多种采样策略,提升模型区分度与评估可靠性。
- 工程可用性:提供 CLI、Web、REST API 与实验评估工具,便于实际部署与算法对比研究。
九、文档与版权说明
- 本说明文档与系统配套使用,用于软件著作权登记及技术说明。
- 文档中涉及的“Stage0”“Stage3”“Stage4”等为系统内部阶段编号,便于与项目说明、执行流程等文档对应。
- 更多实现细节可参见同目录下《项目说明》《执行流程文档》及各模块说明文档。
适用版本:V1.0