会议室推荐与排序算法逻辑 (v2.0)
1. 算法背景
在“空间运营官 (SA)”的会议预约场景中,系统需要根据用户输入的模糊需求(如:“定个10人的会议室”、“明天下午两点开会”)或明确需求(如:“定一下 A-101”),从海量空间资源中通过两段式筛选(向量召回+忙闲精排)得出最优推荐。
2. 评分逻辑体系
推荐总分
2.1 基础权重定义
| 权重项 | 缩写 | 定义 |
|---|---|---|
| 向量相似度 | 用户输入的 room_entity 与空间别名在向量库中的 Cosine Similarity。 | |
| 基础房间权重 | 映射后台配置的房间优先级(如:VIP室=1.0, 常用室=0.8, 备用室=0.4)。 | |
| 容量适配度 | 衡量房间容量与用户人数需求的契合度。 |
2.2 容量适配度 ( ) 计算公式
逻辑原则:优先推荐能坐满、且不浪费大空间的房间。
3. 排序策略分发
策略 A:明确指定地点 (Has Semantic)
- 适用场景:用户提到具体房间名或别名。
- 公式:
- 逻辑说明:既然用户明确想去某地,语义匹配度占绝对主导,房间客观质量作为辅助修正。
策略 B:无指定地点 (No Semantic)
- 适用场景:用户没有提到具体房间名或别名。
- 公式:
- 逻辑说明:优先满足人数适配,避免 2 人占用 20 人会议室,同时倾向于推荐高权重的优质空间。
4. 冲突推荐 (Conflict Recommendation)
当目标时段全忙时,启动降级推荐引擎。根据用户是否指定了特定会议室,划分为两个 Case:
4.1 Case 1:有指定会议室 (User Specified Room)
- 场景:用户指定了具体房间(如“订一下305”),但该房间冲突。
- 操作:
- 空间平替 (Space Shift):去除会议室限定条件,在同时间段搜索其他会议室。
- 硬性约束:备选会议室的
必须 原向量检索 Top 10 中相似度最高(Top 1)会议室的 。
- 降级逻辑:若在此条件下仍找不到可用房间,则自动降级到 Case 2。
4.2 Case 2:未指定会议室 (User Did NOT Specify Room)
- 场景:用户仅提模糊需求(如“订个10人的”),或 Case 1 降级而来,且当前时段全忙。
- MVP 策略:本期不进行自动时间顺延 (Time Shift),直接向用户返回“无可用会议室”提示。
5. 开发实现建议
- 冷启动:若房间未配置
,默认统一设定为 0.5。 - 相似度阈值策略:
- 阈值设定:向量检索结果中,相似度评分
的房间直接保留推荐 - 低分处理:相似度
的房间不进入候选列表,避免低质量推荐
- 阈值设定:向量检索结果中,相似度评分
- 召回精度:向量检索时应利用 Payload 中的
entity_type和cap_tags标签进行 前置过滤 (Pre-filtering)。例如在预约流程中,仅检索具备meet能力的空间实体,以规避同名设备的干扰。
