03|智能推荐:在对话中为用户推荐内容
王吕
本门课程为精品小课,不标配音频
你好,我是王吕。上节课我们讨论了极客时间小助手的功能和设计,这节课我想跟你聊聊如何在对话过程中给用户推荐优质内容,这里以极客时间课程推荐为具体案例。
我们知道,在极客时间的课程中,对话消息中的上下文包含了文章片段,有了文章片段,我们就可以得到文章 ID 和课程 ID,之后我们就可以把引用的课程推荐给用户,整个过程如下图:
这是最直接的方案,实现起来也非常简单,把引用文章所属的课程直接推荐给用户,听起来也很合理。
我们假设这样一个场景:我是一名后端工程师,我问了一个 Nginx 相关的问题,恰好有一门前端课程,整个课程只有一个小节的一小部分用上了 Nginx,其余部分都是前端知识,这个时候,很有可能这个课程也被推荐给了我,但这并不是我想要的。
为什么会出现这个问题呢?其实根本原因还是在于我们想要推荐的课程是一个整体,它有自己的主题,而课程下的文章被分割成段落之后,每个段落也有了自己的主题,这两者很多时候并不是完全一致的,如果按照段落去找课程,很容易就会以偏概全,导致推荐出不合适的课程。那么,极客时间是怎么解决这个问题的呢?
我们给课程也增加了 Embedding。在向量数据库,我们增加了一个课程集合,每当有课程上新,我们就在课程集合里增加一条记录,根据课程的介绍生成向量。用户提问的时候,还是按照上下文的规则,拿到引用课程,同时使用问题向量去课程集合检索,找到最接近的 2 门课程,和引用的课程做一下合并去重,重新排序之后,取前 3 条作为推荐课程推荐给用户。我画了一个流程图供你参考。
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
- 深入了解
- 翻译
- 解释
- 总结
1. 在对话中给用户推荐优质内容,以极客时间课程推荐为案例 2. 问题:段落推荐可能导致不合适的课程被推荐,解决方法:给课程增加Embedding,使用问题向量去课程集合检索 3. 数据准备阶段的问题:课程介绍中包含图片素材,导致课程向量不准确,解决方法:使用OCR并用LLM总结提炼课程介绍的要点 4. 对话阶段的改进:优化用户提问,重写用户问题并判断用户需求,优化推荐课程的排序 5. 数据优化阶段:使用用户画像和传统的推荐系统结合,进行系统干预推荐 6. 推荐内容质量提升的几处优化 7. 推荐内容放置位置的讨论:基于对话接口的实现方式考虑 8. 对于没有采用流式输出的接口,推荐课程可以直接放到响应结构体里 9. 对于使用了流式输出对话,可以在SSE中塞入任何的内容格式,制定自己的数据协议 10. 核心原则:通过LLM精准描述内容特点,尽力识别用户意图
仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《LLM & RAG 快速应用小册》
《LLM & RAG 快速应用小册》
立即购买
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
登录 后留言
精选留言
由作者筛选后的优质留言将会公开显示,欢迎踊跃留言。
收起评论