跳转到内容

智能推荐

Glean 的智能推荐系统基于向量嵌入技术,通过学习你的阅读偏好,为文章计算偏好分数,帮助你优先看到感兴趣的内容。

每篇文章入库时,系统会自动生成内容的向量表示(Embedding):

  1. 提取文章标题和摘要
  2. 使用 Embedding 模型生成向量
  3. 存储到 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
  • 按时间排序显示
  • 随着反馈增加逐步个性化

在智能推荐视图模式下,文章按偏好分数分层显示:

分层分数范围显示方式排序
📌 推荐≥ 70置顶展示按分数降序
📰 普通40-70正常展示按时间降序
🔽 可能不感兴趣< 40默认折叠按时间降序

你可以在设置中调整分层阈值:

设置项默认值说明
推荐分数阈值70高于此分数显示在推荐层
不感兴趣分数阈值40低于此分数显示在折叠层

当你浏览文章列表时,系统会:

  1. 获取文章的向量表示
  2. 与你的偏好向量计算相似度
  3. 实时计算偏好分数
  4. 按分数进行分层展示

每次反馈后,偏好向量使用增量移动平均更新:

# 简化示例
新向量 = (旧向量 × 旧权重 + 文章向量 × 信号权重) / (旧权重 + 信号权重)

这种方式:

  • 避免重新计算全部历史
  • 新反馈影响较大
  • 旧偏好逐渐衰减

偏好更新通过后台任务异步执行,不影响主要操作的响应速度。

系统支持多种 Embedding 提供商:

本地运行,无需 API 密钥:

Terminal window
EMBEDDING_PROVIDER=sentence-transformers
EMBEDDING_MODEL=all-MiniLM-L6-v2
EMBEDDING_DIMENSION=384

使用 OpenAI Embedding API:

Terminal window
EMBEDDING_PROVIDER=openai
EMBEDDING_MODEL=text-embedding-3-small
EMBEDDING_DIMENSION=1536
EMBEDDING_API_KEY=sk-xxx

使用字节跳动的 Embedding 服务:

Terminal window
EMBEDDING_PROVIDER=volc-engine
EMBEDDING_MODEL=doubao-embedding
EMBEDDING_DIMENSION=1024
EMBEDDING_API_KEY=your-api-key
  1. 浏览文章时积极给出喜欢/不喜欢反馈
  2. 前 10-20 次反馈对模型影响最大
  3. 收藏也会作为正向信号
  • 定期反馈保持模型更新
  • 不喜欢的内容也要标记,帮助过滤噪音
  • 如果推荐不准确,检查是否给了足够反馈