目录
- 1. 背景
- 2. 数据治理
- 2.1 从内容层面提升数据质量
- 2.2 从用户层面提升数据质量
- 2.3 增加特定数据的曝光
- 2.4 保证数据的正确性与实效性
- 3. 总结
相关阅读
- CSDN 个性化推荐系统的设计和演进
- 如何支持研发对CSDN个性化推荐系统重构
1. 背景
CSDN 的个性化推荐流在主站中是一个很重要的模块,在过去半年多的时间里,AI 小组通过人工智能等相关技术,在原有数据召回源的基础上,根据用户的反馈以及内部的讨论和分析,不断优化个性化推荐流的数据质量,以达到推荐用户更感兴趣内容,提升用户阅读体验的目的。
个性化推荐流的数据源类型主要包括以下五类:博客、社区云帖子、问答提问、Blink 动态、直播,其中博客的占比最高。
数据源的召回在包含全站数据的数据仓库中使用 SQL 语句实现,并将召回的数据保存到业务库中进行混排与各种逻辑处理。以下是所有涉及到的数据源:
数据源召回 | 数据源类型 |
---|---|
热门blink召回 | Blink 动态 |
新用户冷启动白名单推荐池 | Blink 动态 |
用户关注推荐池内容召回 | Blink 动态 |
原力计划博客召回 | 博客 |
协同过滤召回 | 博客 |
用户个性化标签召回 | 博客 |
新用户冷启动白名单推荐池 | 博客 |
热数据 | 博客 |
历史上的今天召回池 | 博客 |
用户关注推荐池内容召回 | 博客 |
用户搜索历史召回源 | 博客 |
用户关注的社区云帖子 | 社区云帖子 |
等你来答 | 问答提问 |
正在直播的白名单召回源 | 直播 |
用户关注直播召回 | 直播 |
2. 数据治理
基于以上提到的召回源,我们进一步加入了一系列的限制,并且调整了召回逻辑,实现数据的治理,具体如下:
2.1 从内容层面提升数据质量
- 过滤掉质量分小于等于 20 的博客 (质量分查询请点这里)。
- 过滤掉标题党文章。例如:
阿里程序员写了一个新手都写不出的低级bug,被骂惨了。
见过仙女蹦迪吗?一起用python做个小仙女代码蹦迪视频
mybatis 缓存的使用,看这篇就够了
鬼知道我看了几遍!Java常用集合类总结
为了帮粉丝完成毕业设计,我发现了一款私活神器!!
该买哪家二手手机呢?程序员爬取京东告诉你!
家长叫我别天天我在房间没事多看看新闻,我说我马上写个爬虫爬新闻看!!!
华为员工离职心声:菊厂15年退休,感恩,让我实现了财务自由!
java扫雷游戏,触雷时学姐哭着扑向了你!
我要偷偷的学Python,然后惊呆所有人(第二天)
-
过滤掉封面图违规的文章。
-
去掉长度较短的 Blink 动态,去掉「已注销」用户的 Blink 动态。
-
过滤掉软文,即去掉包含广告的文章,例如:
-
原力计划 的博客质量分要大于等于 80 分。原力计划作为官方活动,须保证其文章的高质量。
-
过滤掉 毕业设计 相关的文章。毕业设计之类的文章,对于用户的参考性不大,大多是挂羊头卖狗肉。对于即将毕业正在写毕业设计的用户,建议去权威学术知识库检索已发表的论文进行参考。
-
对 课程设计 相关的博客进行降权。理由同上,并且更希望学生用户更好利用 CSDN 平台,自主完成课程设计,提升自身的硬实力。
2.2 从用户层面提升数据质量
- 引入用户黑名单机制,过滤掉 培训个人/机构账号 的文章,过滤掉 测试账号 发布的测试数据。
- 引入用户灰名单机制,让运营对某些不合规用户对应的博客进行降权。
- 过滤掉博客发布频率过高的用户对应的文章,此处假设高质量的博客需要花时间打磨。
- 过滤禁言用户对应的数据。
2.3 增加特定数据的曝光
- 提升带有红包的社区云帖子、博客、Blink 动态的权重,增加该类数据的曝光量。
2.4 保证数据的正确性与实效性
- 确保个性化推荐召回源数据样本得分为升序,以保证后端混排的正确性。
- 召回的所有博客数据都包含 统一标签+标题标签,并且能正确提取出时下最新的技术标签,保证负反馈机制的正确性。以前的数据只有部分博客包含标签,且无法提取最新的技术标签 (例如:ChatGPT)。
- 保证数据的实效性,以前的召回源中包含冷启动数据,而这些冷启动数据是运营精选的,并且再也没有更新过,在现在看来就是旧数据。在当前其他召回源数据充足的情况下,暂时先去掉这类冷启动数据的召回源,后续考虑使用自动化的方式来挑选冷启动数据。
- 过滤掉直播类型的社区云帖子,保证实效性。直播具有很强的实效性,而推荐流的更新频率大多以小时为单位,无法保证实效性,会导致推荐流中的直播已经结束的情况。
3. 总结
经过不断地迭代,推荐流数据在质量、正确性、实效性等方面得到了一定提升,但数据治理从来都不是一劳永逸的工作,随着时间的推移需要不断迭代与优化。此外,后续会进一步优化用户画像的效果,做到推荐用户真正感兴趣的高质量数据。