本文档概述了 Twitter 的内容过滤和安全系统,该系统负责执行平台政策并保护用户免受有害内容侵害。该系统评估推文、用户、Spaces 和其他内容,以确定其在平台不同界面的可见性。
有关该系统如何与整体推荐系统集成的信息,请参阅系统架构。
Twitter 的内容过滤和安全系统主要通过可见性库(Visibility Library)实现,该库包含一个基于规则的引擎,用于根据各种政策和安全规则评估内容。该系统根据查看上下文应用不同的过滤标准,从而在整个平台实现上下文相关的政策执行。
来源:visibilitylib/src/main/resources/config/com/twitter/visibility/decider.yml visibilitylib/src/main/scala/com/twitter/visibility/configapi/configs/DeciderKey.scala
安全级别定义了上下文相关的政策执行配置。每个 Twitter 界面(如主页时间线、搜索结果、对话等)都有自己的安全级别,用于规定在该上下文中应应用哪些规则以及如何过滤内容。
| 安全级别 | 描述 | 主要用途 |
|---|---|---|
| 主页时间线 | 应用于主时间线中的推文 | 过滤用户主页时间线中的推文 |
| 对话 | 应用于对话中的推文 | 过滤回复和对话串 |
| 搜索 | 应用于搜索结果 | 过滤搜索结果中的内容 |
| 私信 | 应用于私信 | 过滤私人通信中的内容 |
| 个人资料时间线 | 应用于个人资料页面上的推文 | 过滤用户个人资料上的内容 |
| 通知 | 应用于通知内容 | 过滤用户通知中的内容 |
| Spaces | 应用于 Twitter Spaces | 过滤音频对话和参与者 |
安全级别允许灵活的政策执行,可以根据不同的用户体验和产品界面进行调整。
来源:visibilitylib/src/main/scala/com/twitter/visibility/configapi/configs/DeciderKey.scala68-537
可见性库的规则引擎根据适用的安全级别评估内容。规则可以检查内容的各个方面,例如文本、媒体、作者、查看者、关系和元数据。
| 规则类型 | 描述 | 示例规则 |
|---|---|---|
| 删除规则 | 完全移除内容 | NSFW 内容、垃圾信息、违规内容 |
| 插页式规则 | 添加警告覆盖层 | 敏感媒体、血腥内容 |
| 限制互动规则 | 限制互动 | 对话控制、滥用预防 |
| 降权规则 | 降低可见性 | 低质量内容、垃圾回复 |
| 避免规则 | 阻止内容出现在特定上下文中 | 品牌安全、广告规避 |
来源:visibilitylib/src/main/resources/config/com/twitter/visibility/decider.yml566-852
可见性库实现了广泛的规则类别,以处理不同类型的问题内容。
针对垃圾信息、操纵和滥用内容的规则
EnableSmyteSpamTweetRule)EnableHighCryptospamScoreConvoDownrankAbusiveQualityRule)EnableCopypastaSpamDownrankConvosAbusiveQualityRule)EnableAbusiveBehaviorDropRule, EnableAbusiveBehaviorInterstitialRule)处理敏感媒体内容的规则
EnableNewSensitiveMediaSettingsInterstitialRulesHomeTimeline)EnableAvoidNsfwRules, EnableNsfwAgeBasedMediaDropRules)EnableGoreAndViolenceTopicHighRecallTweetLabelRule)管理对话质量和控制的规则
EnableTweetConversationControlRules)EnableLimitRepliesFollowersConversationRule)VisibilityLibraryEnableToxicReplyFilterConversation)处理社区和独家内容的规则
EnableCommunityTweetsControlRules)EnableDropExclusiveTweetContentRule)EnableDropAllTrustedFriendsTweetsRule)来源:visibilitylib/src/main/resources/config/com/twitter/visibility/decider.yml566-852
当规则被触发时,可见性库可以对内容采取几种类型的操作
内容将从视图中完全移除。这是最严厉的措施,用于明确违反政策的内容。
示例规则
EnableSpammyUserModelHighPrecisionDropTweetRuleEnableHighSpammyTweetContentScoreSearchLatestTweetLabelDropRuleEnableNsfwTextHighPrecisionDropRule内容会显示一个警告覆盖层,用户必须点击才能查看。用于一些用户可能希望避免的敏感内容。
示例规则
EnableReportedTweetInterstitialRuleEnableNewSensitiveMediaSettingsInterstitialRulesHomeTimelineEnableAbusiveBehaviorInterstitialRule内容会显示,但用户与其互动的方式受到限制(例如,无法回复、转发或点赞)。
示例规则
EnableWritePathLimitedActionsEnforcementSafetyLevelEnableAbusiveBehaviorLimitedEngagementsRuleEnableBackendLimitedActions内容会显示,但可见性降低,通常在信息流或对话中显示得更靠下。
示例规则
EnablePSpammyTweetDownrankConvosLowQualityEnableBlinkBadDownrankingRuleEnableDownrankSpamReplySectioningRule内容被替换为一个占位符指示器,该指示器会解释内容被移除的原因。
示例规则
EnableTombstoningSafetyLevelEnableTombstoneExclusiveQtProfileTimelineParamEnablePdnaQuotedTweetTombstoneRule来源:visibilitylib/src/main/resources/config/com/twitter/visibility/decider.yml566-852
可见性库与多个 Twitter 系统集成,以在整个平台提供内容过滤和安全功能。
可见性库将安全规则应用于主页时间线中的推文,与排名系统协同工作,确保用户看到符合安全标准的内容。
TimelineHomeSafetyLevel, TimelineHomeLatestSafetyLevel, TimelineHomeRecommendationsSafetyLevel搜索结果通过特定的安全级别进行过滤,这些安全级别可能根据搜索上下文和安全搜索设置而有所不同。
SearchTopSafetyLevel, SearchLatestSafetyLevel, SafeSearchMinimalSafetyLevel, SafeSearchStrictSafetyLevel对话串具有专门的过滤功能,以维护质量和执行对话控制。
ConversationFocalTweetSafetyLevel, ConversationReplySafetyLevel, TimelineConversationsDownrankingSafetyLevel通知使用安全过滤,以确保用户不会收到有害内容的通知。
NotificationsReadSafetyLevel, NotificationsPlatformSafetyLevel, NotificationsWriteSafetyLevel来源:visibilitylib/src/main/scala/com/twitter/visibility/configapi/configs/DeciderKey.scala68-537
可见性库使用基于决策器(decider)的配置系统来控制哪些安全级别和规则处于活动状态。这使得快速迭代以及轻松启用或禁用特定规则成为可能。
所有规则和安全级别都可以通过决策器标志进行控制,这允许进行以下操作:
来源:visibilitylib/src/main/resources/config/com/twitter/visibility/decider.yml1-909
Twitter 的内容过滤和安全系统提供了一种灵活的、基于规则的方法,可在平台内的不同上下文中执行政策。通过将政策执行划分为规则、安全级别和操作,系统可以根据查看上下文应用不同的过滤标准,同时保持一致的规则评估框架。
可见性库是该系统的核心组件,它根据政策规则评估内容并采取适当的措施,以维护平台安全和用户体验。