写点什么

Twitter 采用 BotMaker 技术对抗垃圾推文

  • 2014-09-02
  • 本文字数:1571 字

    阅读完需:约 5 分钟

作为新兴媒体网站,Twitter 有着和传统媒体截然不同的使用方式,比如与传统媒体多重防止爬虫爬取网站内容相比,Twitter 对开发者开放了非常多的 API,以方便他们通过各种方式与 Twitter 后台交互。又比如 Twitter 对实时性的要求很高,比起纸媒、门户网站、博客、邮件来讲,快速响应的用户体验要求很高。在暴露大量接口和高实时性这两个产品设计的驱动下,Twitter 成为了人们非常青睐的社交网站。然而,接踵而来的就是那个永恒的话题:如何对抗垃圾信息。在这个问题上,Twitter 的两个设计上的优点反而成为了对抗中的挑战,垃圾信息可以从各种接口以各种形式接入,并且以近乎瞬间的速度直接推送到用户。以往成熟应用于电子邮件、博客等内容的垃圾信息对抗技术,在这两个挑战面前显得力不从心。这便是 BotMaker 诞生的契机。据博文提供的数据,在采用了 BotMaker 技术以后,该系统每天处理多达数十亿条推文,并成功的将垃圾信息的数目缩减了 40%。

Twitter 于 8 月 20 日在其官方博客发表了一篇博文(需科学上网),介绍了 BotMaker 的设计理念、挑战以及架构。

从设计目标来讲,Twitter 希望垃圾信息能够通过一种层层过滤的方式拦截:最理想的第一层,就是在垃圾信息制造者撰写垃圾推文的时候判断出结果,并阻止该垃圾推文的发布;没有被拦截住的垃圾推文,则采用第二层,即不断扫描现有的推文,从中尽快找出垃圾推文并清除,从而降低垃圾推文被用户阅读的可能性;最后一层则是对整个系统的更新速度进行了设想,因为垃圾推文品种千奇百怪,随时随地都在发生变化,系统需要在尽量少修改代码的情况下,尽可能快的更新,以应对层出不穷的垃圾推文。

在这种设计理念的驱动下,系统能够很好的过滤垃圾推文,但是随之而来的是三个挑战,BotMaker 对易用性、普适性以及实时性方面的要求很高。因此 Twitter 将其设计成了一种基于规则的系统,系统维护人员通过撰写简单的规则而不是修改代码来对抗垃圾推文,从而达到上述指标的要求。通俗来讲,BotMaker 的规则由两部分组成,一是触发条件;二是动作。如博文中所提到的简单例子:

复制代码
Condition:
HasSpamUrl(GetUrls(tweetText))
Action:
Deny()

所表达的意思就是:如果当前推文中包含了垃圾网址,那么这条推文就会被拒绝发布。这种规则系统的设计,一般需要遵循维护人员看得懂,简单规则可拼接成复杂规则,新规则的添加不需要改动代码以及规则起作用的时间只需要几秒钟等等原则。

然而,看似简单的规则系统背后,需要大量的计算来给出类似是否包含垃圾网址这样的判断,这些支撑数据都是要通过不断对推文、转发、收藏、粉丝和私信等等数据计算出来,而且还要支持一定的机器学习相关规则如分类规则。在 Twitter Storm 分布式系统的支持下,博文给出了 BotMaker 系统的设计架构:

图中以用户发表推文整个流程来解释了 BotMaker 的组成。首先,在用户撰写推文的过程中,Scarecrow 模块就开始根据推文内容来判断其是否是垃圾推文了,这个阶段主要的技术指标是高实时性,规则相对简单,如关键字以及一些统计规律;其次,在推文发表之后,Sniper 会根据发表日志来扫描推文,通过机器学习中分类器等方法构成的规则,不那么实时的来异步判断是否是垃圾推文;再次,系统会对用户一个阶段的行为建模,来提取辨别垃圾推文的特征,这部分工作可以离线完成。

博文最后称,Botmaker 开辟了 Twitter 对抗垃圾博文的新技术,有了这个系统,Twitter 的工程师们以前数以天计的编写垃圾推文过滤代码的日子已经成为过去,开发效率得到了极大的提升,并且效果也非常的明显。在未来,工程师们还会根据易用性、普适性和实时性等原则来对 Twitter 其他的系统进行修改和完善。


感谢郭蕾对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ )或者腾讯微博( @InfoQ )关注我们,并与我们的编辑和其他读者朋友交流。

2014-09-02 09:322190
用户头像

发布了 268 篇内容, 共 127.2 次阅读, 收获喜欢 24 次。

关注

评论

发布
暂无评论
发现更多内容

ABAQUS软件包括哪些模块?ABAQUS介绍

思茂信息

功能 abaqus 有限元

构建行业应用生态:云原生应用市场简化企业软件安装

北京好雨科技有限公司

云原生 企业级应用 行业生态 应用市场

TiDB 新版本:更稳、更快、更好的数据库体验

TiDB 社区干货传送门

版本升级 新版本/特性解读

解锁电商决策新视角:淘宝天猫商品评论数据API接口的深度探索

代码忍者

pinduoduo API API 性能测试

ODC24 AI服务生态分论坛:全新智慧服务引擎 带动服务分发增长

科技热闻

深圳计算科学研究院YashanDB数据库系统斩获“鼎新杯”二等奖

极客天地

高效项目管理:利用低代码平台简化项目实施流程的策略与实践

天津汇柏科技有限公司

项目管理 低代码平台

内容出海新浪潮:AI工具迅猛发展,剑指视频翻译

阿里云CloudImagine

云计算 音视频 视频云 AI视频翻译 短剧出海

【CEO访谈】从愿景到领导力:7thonline 的崛起之路

第七在线

琼海市等保测评机构有哪些?在哪里?

行云管家

等保 等保测评 琼海

云管理平台公司大家都选哪家?选择时候需要考虑哪些因素?

行云管家

云计算 云管理

Milvus 到 TiDB 向量迁移实践

TiDB 社区干货传送门

迁移 实践案例 TiDB Cloud TiDB Vector

构建工作流自动化的 5 个最佳工具

NocoBase

自动化 工作流 业务流程自动化 流程自动化 开发流程自动化工具

gpt-4o-audio-preview 发布,支持 STT/TTS 不含实时音频;Ministral 3B/8B 端侧模型发布

声网

TiDB 关联子查询优化实践

TiDB 社区干货传送门

实践案例

TiDB 社区第四届 1024 程序员心愿节来啦!没有 Bug ,只有 Luck!参与留言活动,许愿你想要的 TiDB 产品功能、周边、TiDB 课程 & 考证优惠,一起庆祝 1024 吧!

TiDB 社区干货传送门

TiDB SEMI JION(半连接)优化实践

TiDB 社区干货传送门

实践案例

TiDB 关联子查询及半连接的优化实践

TiDB 社区干货传送门

性能调优 实践案例

【一文读懂LangGraph、AutoGen、Swarm】大模型时代AI智能体框架核心技术原理

小奇同学

智能体 多智能体 LangGraph AutoGen Swarm

TDengine 3.3.3.0 版本上线:优化监控、增强 MongoDB 支持

TDengine

数据库 tdengine

格睿科技完成数百万美元融资,助力可观测和物联网领域高效数据价值挖掘

Greptime 格睿科技

数据库 融资

洋葱学园联合火山引擎打造AI智能学伴,聚焦精准学、陪伴学

新消费日报

利用代理ip爬取Alibaba海外版数据

Yan-英杰

Python 后端

分布式数据库安全可靠测评名录之平凯数据库(TiDB企业版)

TiDB 社区干货传送门

数据库架构设计

OPPO应用分发的燎原之火,照亮开发者的增长之路

脑极体

AI 应用

TDengine 与北微传感达成合作,解决传统数据库性能瓶颈

TDengine

数据库 tdengine 时序数据库

我的豆包MarsCode 体验官之旅

豆包MarsCode

AI 人工智能、

地平线与英伟达工具链 PTQ 工具功能参数对比与实操

地平线开发者

自动驾驶 算法

Cloudera Impala与Hive:架构对比及协同工作机制

敏捷调度TASKCTL

hadoop cloudera 大数据平台 impala 大数据运维

时序数据库 TDengine 支持集成开源的物联网平台 ThingsBoard

TDengine

时序数据库 #TDengine 数据库、

Twitter采用BotMaker技术对抗垃圾推文_语言 & 开发_张天雷_InfoQ精选文章