已将 emoji 纳入推荐权重计算。总结如下:
实现内容
1. Emoji 权重映射
定义了 7 种 emoji 的权重,反映不同含义:
- ❤️ (爱心):5.0 - 非常喜欢
- 🚀 (火箭):4.0 - 支持/推荐
- 👍 (点赞):3.0 - 喜欢
- ✅ (对勾):2.0 - 认可
- 👀 (眼睛):0.5 - 浏览/关注
- 👎 (点踩):-2.0 - 不喜欢(负权重)
- ❌ (叉):-3.0 - 反对(负权重)
2. 核心方法
getEmojiWeights():返回 emoji 权重映射getTopicEmojiWeight():获取单个话题的 emoji 权重总和getTopicsEmojiWeights():批量获取多个话题的 emoji 权重getUserEmojiWeightsForTopics():获取特定用户对特定话题的 emoji 权重
3. 集成到推荐流程
- 用户推荐:在
collectUserInteractionsForRecommendations()中,获取用户对所有话题的 emoji 权重,归一化后累加到交互权重 - 全局交互:在
collectGlobalInteractionsForRecommendations()中,为每个用户获取其对话题的 emoji 权重,同样进行归一化处理
4. 权重计算方式
- 归一化:emoji 权重除以 10,使其与基础权重(1.0-3.0)在同一量级
- 累加公式:
final_weight = base_weight + (emoji_weight_sum / 10.0) - 负权重处理:👎 和 ❌ 会降低话题的推荐得分,避免推荐用户不喜欢的内容
5. 文档更新
- 在“推荐算法”部分添加了 emoji 权重说明
- 新增“Emoji 权重系统”章节,详细说明设计理念、权重映射、计算方式和效果
效果预期
1. 更准确反映用户偏好:❤️ 和 🚀 比 👍 更能体现强烈兴趣 2. 避免推荐不喜欢内容:负权重会降低不感兴趣话题的得分 3. 提升推荐质量:结合 emoji 的推荐更符合用户真实意图 4. 性能优化:使用批量查询,减少数据库访问次数
系统已集成 emoji 权重计算,每次推荐都会考虑用户的 emoji 表态。