智能推荐
Glean 的智能推荐系统基于向量嵌入技术,通过学习你的阅读偏好,为文章计算偏好分数,帮助你优先看到感兴趣的内容。
每篇文章入库时,系统会自动生成内容的向量表示(Embedding):
- 提取文章标题和摘要
- 使用 Embedding 模型生成向量
- 存储到 Milvus 向量数据库
系统根据你的反馈学习偏好:
| 行为 | 信号权重 | 说明 |
|---|---|---|
| 👍 喜欢 | +1.0 | 显式正向反馈 |
| ⭐ 收藏 | +0.7 | 隐式正向反馈 |
| 👎 不喜欢 | -1.0 | 显式负向反馈 |
系统为每个用户维护偏好模型:
用户偏好├── 正向向量 (positive_embedding) # 喜欢内容的聚合向量├── 正向权重 (positive_count) # 正向信号累计├── 负向向量 (negative_embedding) # 不喜欢内容的聚合向量├── 负向权重 (negative_count) # 负向信号累计├── 来源偏好 (source_affinity) # 各订阅源的正负反馈统计└── 作者偏好 (author_affinity) # 各作者的正负反馈统计偏好分数范围为 0-100:
分数 = (正向相似度 - 负向相似度 + 1) / 2 × 100 × 信心度 + 50 × (1 - 信心度)- 正向相似度:文章与正向偏好向量的余弦相似度
- 负向相似度:文章与负向偏好向量的余弦相似度
- 信心度:基于反馈数量,反馈越多信心度越高
新用户没有反馈数据时:
- 所有文章分数默认为 50
- 按时间排序显示
- 随着反馈增加逐步个性化
智能推荐视图
Section titled “智能推荐视图”在智能推荐视图模式下,文章按偏好分数分层显示:
| 分层 | 分数范围 | 显示方式 | 排序 |
|---|---|---|---|
| 📌 推荐 | ≥ 70 | 置顶展示 | 按分数降序 |
| 📰 普通 | 40-70 | 正常展示 | 按时间降序 |
| 🔽 可能不感兴趣 | < 40 | 默认折叠 | 按时间降序 |
你可以在设置中调整分层阈值:
| 设置项 | 默认值 | 说明 |
|---|---|---|
| 推荐分数阈值 | 70 | 高于此分数显示在推荐层 |
| 不感兴趣分数阈值 | 40 | 低于此分数显示在折叠层 |
当你浏览文章列表时,系统会:
- 获取文章的向量表示
- 与你的偏好向量计算相似度
- 实时计算偏好分数
- 按分数进行分层展示
每次反馈后,偏好向量使用增量移动平均更新:
# 简化示例新向量 = (旧向量 × 旧权重 + 文章向量 × 信号权重) / (旧权重 + 信号权重)这种方式:
- 避免重新计算全部历史
- 新反馈影响较大
- 旧偏好逐渐衰减
偏好更新通过后台任务异步执行,不影响主要操作的响应速度。
Embedding 提供商
Section titled “Embedding 提供商”系统支持多种 Embedding 提供商:
sentence-transformers(默认)
Section titled “sentence-transformers(默认)”本地运行,无需 API 密钥:
EMBEDDING_PROVIDER=sentence-transformersEMBEDDING_MODEL=all-MiniLM-L6-v2EMBEDDING_DIMENSION=384OpenAI
Section titled “OpenAI”使用 OpenAI Embedding API:
EMBEDDING_PROVIDER=openaiEMBEDDING_MODEL=text-embedding-3-smallEMBEDDING_DIMENSION=1536EMBEDDING_API_KEY=sk-xxxVolcengine(火山引擎)
Section titled “Volcengine(火山引擎)”使用字节跳动的 Embedding 服务:
EMBEDDING_PROVIDER=volc-engineEMBEDDING_MODEL=doubao-embeddingEMBEDDING_DIMENSION=1024EMBEDDING_API_KEY=your-api-key- 浏览文章时积极给出喜欢/不喜欢反馈
- 前 10-20 次反馈对模型影响最大
- 收藏也会作为正向信号
- 定期反馈保持模型更新
- 不喜欢的内容也要标记,帮助过滤噪音
- 如果推荐不准确,检查是否给了足够反馈