相关阅读


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. 总结

经过我们不断地迭代,推荐流数据在质量、正确性、实效性等方面得到了一定提升,但数据治理从来都不是一劳永逸的工作,随着时间的推移需要不断迭代与优化。此外,后续会进一步优化用户画像的效果,做到推荐用户真正感兴趣的高质量数据。

Logo

长江两岸老火锅,共聚山城开发者!We Want You!

更多推荐