NLP 实战(12): AI小组2022半年小结

AI小组半年研发分析,思考,回顾。

改进:CSDN 统一标签

标签体系是数据分类的基础之一。我们持续在统一标签上进行改进

  • 重构领域标签体系
    • 我们对标签体系应该体现技术的潮流,云原生标签体系就是一个例子。
  • 对分组标签的持续改进
    • 例如Python/Java分组的子标签正在重构中
      • 干掉老的过时的标签
      • 增加新的,重要的标签
  • 解决标签分类的内在矛盾
    • 例如某个标签t1属于A分组,也属于B分组,B分组是大类,A分组是小类,改进的策略是
      • t1精细初a-t1, t1,这样 a-t1 一定属于t1,但是t1比a-t1大
      • 此时 A分组里看到的是 a-t1,B分组里看到的是t1
      • 这样的分类更精细和准确
  • 将标签分类进一步推动到全站数据
    • 同一套内部算法和服务,但是不同领域的标签体系可以根据数据特征的不同有所区分
    • 针对文库/PUDN做了这方面的迭代
  • 好的AI系统需要大量的标注数据,没有标注怎么办?
    • 基于弱标注数据做,也行!
  • 我们也做了一些小数据的标签工作
    • 对动态(blink)的非技术/技术标签的识别
    • 对社区和帖子的命名实体识别
    • 但是这两部分的数据还缺乏产品上的有效迭代

构建:CSDN 质量分

需求:Web发展到今天,一个特征是内容爆炸,已经出现”worse is better“的逆淘汰现象,也就是劣币驱逐良币。对于用户来说就是内容很多,但是找到的内容质量整体在下降。

解决:我们从衡量博文质量的角度出发,设计并实现了一套有效的博文质量评分机制。

基本原理是很简洁的,两个部分的公式就可以概括:

  • 累加优质博文特征分=权重1*优质博文特征1得分+权重2*优质博文特征2得分+…+权重N*优质博文特征N得分
  • 累乘低质博文特征因子=低质特征因子1低质特征因子2…*低质特征因子M
  • 博文质量分=累加优质博文特征分*累乘低质博文特征因子

难的地方在于实现细节和工程细节,包含:

  • 精确识别/计算某个特征的各种cornercase
  • 全量对所有数据计算
  • 算法变动后的更新机制
  • 全站数据管道对质量分的正确使用

这是一个良币趋势劣币的过程:

  • 各种榜单(极客日报-CSDN每天值得看,综合热榜,领域榜)全部使用质量分做基准过滤
  • 搜索/推荐 的数据也全量的把质量低的去掉
  • 博客创作的时候,如果质量分低,就会提醒用户质量分低会减少它曝光的几率,给用户明确的导向

很多人忙于制造各种低质量的数据,我们在重视内容数据的质量,内容数据质量的治理是一个长期的工作,这只是起了一个头。近期我们会在 CSDN指数 页面提供独立的质量分查询入口。

打造:CSDN 每天值得看(极客日报)

需求:我们希望将CSDN每天值得看的数据筛选出来,同时能和用户便利而直接的讨论、交流、打赏互动等,快速地迭代。

解决: 我们构建了极客日报社区 通过快速迭代实验了一系列的数据策略。

  • 博文推荐数据类榜单:
    • 每天值得看频道
    • 每天最佳新人
    • 一周精选
    • 月度精选
  • 支持运营类榜单
    • 每天分享能手
    • 铁粉增长
    • 原力计划V4
    • 一周学习榜
    • 每天学习榜
    • 一周精品笔记

有一个需要和BI区分的是

  • 企业内的BI平台可以在数据仓库里跑各种各样的内部分析数据。但是它只是内部的数据,没有推到前台,和用户直接发生交互,或者需要为数据定制前台页面。但是实际上,将数据直接推送到社区,直接使用社区的基本功能(发帖、红包、打赏、交流讨论),可以低成本快速的获得数据驱动实验和迭代。
  • BI部分大部分主要是结构化数据的分析和处理,可以完成1/3部分,但是数据智能还需要和AI结合处理,完成
    2/3,把数据直接推到能完成目标功能是最后1/3。把这3个部分结合起来做到轻量,快速迭代,就是数据智能的一个MVP。

在持续的快速迭代中,我们也从中提取了有效的算法和策略用在了其他地方。

  • 为了提取每天值得看的的分领域数据,我们分析出了以往的领域分类,对数据机器标签的得分没有充分使用,在我们充分使用后,领域分类就比较准确,在CSDN全站的领域榜上也同步了该策略。
  • 我们看到,每个领域平均推荐的结果是,初阶的,老的领域的数据太多,这些数据用户并不想看,不觉的这些博文有什么“值得读”的价值。那么,我们使用了“初阶的/老的领域降低数据量,中高阶/新的数据增加数据量”。这个策略进一步演变成了分层标签体系,用在了全站综合热榜的数据比例调控上,解决了综合热榜存在的初阶/老的方向数据太多的老大难问题,这是一个有效的策略,有效的策略能建立好的“良币驱逐劣币”的导向机制。最终,我们要和用户建立起 win-win 的双赢结果。这点也说明了,统一标签是数据分类的一种有效的底层机制,包括体系性、准确性、策略性三种相关的机制。

一些实验性尝试则还需要进一步的迭代。

  • 我们尝试了数据的初/中/高机器难度分类,目前还在进一步迭代中,难度等级的可计算性先对来说比较好难,因为难度是带有一定主观性的概念,在可计算性上有一定的模糊性,真正要比较好地解决,需要有覆盖度很全的知识图谱。简单来说,要有“体系性的先验知识”,这点我们在统一标签上也可以看到,如果只是单一的多标签分类,是不能解决问题的,但是一个覆盖度相对来说比较全的,新的标签体系,再配合精确的多标签分类,有层次性的策略规则,可以发挥很好的效果。
  • 新/老技术分类,是另一个尝试的分类器。同样的问题,单一分类器容易,要解决长尾问题,也还是需要结合分层体系来做。实际上这两个实验本质上都应该是决策树机制起作用,面对长尾的数据,决策树就变成了一个多层分类体系。

数据智能不单是算法,更是一个系统,一个带有反馈循环的自动化系统,从数据出发,需要的是一整套完整的反馈循环。

  1. 通过算法,分析结构化/非结构化数据,获得了topN的结构化数据
  2. 通过社区(终端)发帖,将数据分发出去。
  3. 通过社区的基本功能:评论、交流、红包、评论区打赏建立互动区。
    • 评论区,建立起社区的技术讨论氛围,引导有质量的技术创作。
    • 提问,无论是谁,发出博文获得对内容的讨论都是受欢迎的,形成正向反馈。
    • 打赏,鼓励高质量技术写作。
    • 红包,可以适当的建立一些热点社区内活动。
  4. 通过私信,让触达到位。
    • 现代Web,内容非常之多,茫茫信息量,有价值的信息要触达,但是要控制量,不能滥用。
    • 核心还是建立正向反馈:
      • 评论/回复尽量提供有价值的问题和讨论,这样配合触达才是正向反馈:Win-Win
      • 打赏当然要配合触达。
  5. 改进移动端交互体验。
    • 移动的流量事实上是远大于PC的,如果一个应用不重视移动/H5的体验,基本上活在Web1的时代,连Web2都够不上。
    • 如果用户好不容易克服了障碍,来到了页面,结果交互体验很差,那么就没有获得好的体验,用户获得的价值变低,用户和平台之间的价值交换没有发生。
  6. 运营也需要能自动化的获得很多信息来做数据分析。
    • 要形成有效的循环,也要能尽量把运营操作机械化,自动化
    • 人做什么?基本的动作交给机器之后,人来做那些机器做不了的事情,例如策略调整,分析缺失的链条,把链条补上,但是尽量不要做一次性的工作,尽量让工作能有可复用,聚焦到一个模型上。这样才会有沉淀。

总的来说,基于极客社区,我们逐渐在理解一些重要的问题:

  • 什么是数据智能系统?
  • 什么是数据驱动的循环?
  • 为什么触达是重要的?
  • 又是什么会让用户沉淀下来,形成用户粘性?
  • 为什么一个能快速迭代实验的系统,是重要的?
  • 如何面对“小”的数据?
  • 把“小”的数据公开给用户意味着什么?

直面这些问题,不放过细节,寻找逻辑上的链条,如果我们在小数据上验证成功了,那么它又可伸缩性么?放大后的变化曲线是线性还是其他的呢?有时候,我们需要大量一手的“人工智能”,花苦功夫理解数据:NLP 实战(11): CSDN Daily,兼谈技术写作的问题。

实验:基于意图识别的1-2轮回复

我们悄悄做了一组机器人实验。本着朴素的思考,我们认为做通用的多轮回答机器人没戏。于是我们从最简单的意图识别开始,意图识别后,不是给用户推送广告,而是给引导用户真正获得学个知识或者问个问题。目前大概有10%左右的进入2轮对话。

基于学习用户画像,该项目还在持续迭代优化中。我们认为一个自然人用户,是不同场景的不同用户。例如针对学习场景来说,一个人是否是学习目标用户。在学习的场景中,每个人都在学习状态机的某一个状态,这个是动态变化的。如果我们建立起有效的学习状态机,根据情景的上下文就能动态的刻画学习者的状态。那么,我们就能有效的帮助用户获得真正需要的学习知识。

问答:减少重复问题和辅助回答

技术开发中的长尾问题是很多的,如何有效减少重复问题是我们的努力之一。采用基于语义匹配的模型,在问答里,当识别到用户提出的问题和以往的问题有高度相似性时,如果已解决的问题直接就解决了用户的提问,那么就减少了一次重复提问。目前能做到8%左右的采纳率。

有一类问题,它提出的问题事实上在博文里是有相关的博文能解决用户的问题的,或者某一些文档的参考资料能解决问题。我们构建高质量博文+知识图谱库,基于这些数据驱动来做1轮回答。目前还在迭代。

学习:技能树数据和管道的持续构建

海量的长尾数据,用户只能通过搜索和碎片方式来学习。逐渐地有很多各种各样的课程,但是如果课程本身又很多,又会变成大海捞针,回归到通过搜索和碎片式的方式学习。构建开放的技能树,聚集确定性的知识,让同主题学习发生。其中技能树的构建也是一种先验知识的构建,我们陆续和开放社区一起在原来的基础上,持续构建了 网络技能树、CUDA技能树、云原生技能树、Vue技能树,即将到来的还有 面向对象入门技能树、游戏开发入门技能树、MySQL技能树…如果你有对某一个领域的系统的知识,有希望帮助到更多的开发者构建知识体系的热情,欢迎一起来技能森林参与构建:https://gitcode.net/csdn/skill_tree

而管道工具上,将多种异构的外部和内部数据源系统统一在数据层,提供一致的接口和服务。

热榜:有效的策略

我们对热榜和领域榜的实现进行了深入的分析和验证。将在极客社区里 CSDN每天值得看 实验获得的经验用在了热榜的改进上。

核心的改进是

  • 完整实现细节的review,能快速定位到具体的问题
  • 通过分层标签体系有效的调控数据的重要性,具有潮流技术导向的能力
  • 具有热点问题的编辑推荐能力
  • 经过标题党、软文识别、违规图片、质量分、等一系列低质量因子抑制,能有效抑制低质量文章

我们解决了卫生问题后,往下走就可以逐渐构建创新的功能点,想象和创建让用户眼前一亮的数据智能。

小结

数据要体现出智能,事实上是一个系统构建的工作。我们要理解数据、理解算法、理解自动化系统、理解产品和运营。最后你会发现它事实上还是要理解程序:什么是有效的正向反馈系统。在这里面,算法是精确定位的基础,数据体系是效解决长尾问题的根本,自动化系统是泵,终端和触达则是智能系统的硬件。不是为了堆砌名词,而是当我们说数据智能的时候,要想清楚智能在哪里。我们会持续在CSDN学习和全站数据上都做好每一个数据智能。

–end–

你可能感兴趣的:(NLP,In,Action,人工智能,自然语言处理,nlp)