Twitter推荐系统的可信和安全模块解析(Trust and Safety Models)

这篇具有很好参考价值的文章主要介绍了Twitter推荐系统的可信和安全模块解析(Trust and Safety Models)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

上一篇博文整体看了Twitter推荐的架构:

  • Twitter开源时间线推荐架构整理(Twitter‘s Recommendation Algorithm)

本篇文章解析一下可信和安全模块的具体实施细节。

Trust and Safety Models

  • 源码地址:https://github.com/twitter/the-algorithm/tree/138bb519975407d4ea0dc1478d897d451ef05dab/trust_and_safety_models

信任和安全模型(Trust and Safety Models),简称T&S,主要用于检测推特系统中不可信和不安全等违规内容。

在后续架构中的多路召回模块(包括in-network召回路和out-of-network召回路),该T&S特征都能用于过滤掉不合规的内容,从而让推送给用户的推文在社交圈内外都是“绿色”的。

信任和安全模型可以分为多个维度来评估,但推特团队考虑到竞品压力(the adversarial nature of this area),因此暂时只开源了部分模型,包括NSFW的图文、推文内容的有毒性和滥用性,具体定义如下:

  • pNSFWMedia:用于检测带有 NSFW 图像的推文的模型,包括成人和色情内容。
  • pNSFWText:用于检测带有 NSFW 文本、成人/性主题的推文的模型。
  • pToxicity:检测有毒推文的模型。毒性包括边缘内容,如侮辱和某些类型的骚扰。有毒内容并不违反 Twitter 的服务条款。
  • pAbuse:检测滥用内容的模型。滥用内容包括违反 Twitter 服务条款的行为,包括仇恨言论、有针对性的骚扰和辱骂行为。

接下来分别解析一下NSFW(Media和Text)、Toxicity和Abuse部分的训练代码。

NSFW
其中NSFW(Not Safe/Suitable For Work)是指工作场所不宜的网站超链接,多指裸露、暴力、色情或冒犯等不适宜公众场合的内容。最初这个词在博客上出现,在给出含有上述内容的超链接旁标注NSFW,用于警告观看者;后在论坛、帖子及有超链接之页面上也普遍适用NSFW。

NSFW模块包括Media和Text两部分,由于官方没有开源数据,所以不太清楚数据组织的具体形式。先直接看一下Media和Text的训练代码。

Media用于带有NSFW图像的推文,从模型命名“models/nsfw_Keras_with_CLIP_twitter_hypertuned”可以看出,特征应该是通过CLIP提取的,然后搭建如下的较为简单的MLP结构进行检测。

def build_model(hp):
  model = Sequential()
  optimizer = tf.keras.optimizers.Adam(
    learning_rate=0.001,
    beta_1=0.9,
    beta_2=0.999,
    epsilon=1e-08,
    amsgrad=False,
    name="Adam",
  ) #优化器
  
  activation=hp.Choice("activation", ["tanh", "gelu"])
  kernel_initializer=hp.Choice("kernel_initializer", ["he_uniform", "glorot_uniform"])
  for i in range(hp.Int("num_layers", 1, 2)): #此处开始搭建模型
    model.add(tf.keras.layers.BatchNormalization())
    units=hp.Int("units", min_value=128, max_value=256, step=128)
    
    if i == 0: #第一层fc的输入是特征(None, 256)
      model.add(
        Dense(
          units=units,
          activation=activation,
          kernel_initializer=kernel_initializer,
          input_shape=(None, 256)
        )
      )
    else: #后续多层的fc
      model.add(
        Dense(
          units=units,
          activation=activation,
          kernel_initializer=kernel_initializer,
        )
      )
  
  #最后加入sigmoid使网络维度变成1维,即预测是否有NSFW的概率
  model.add(Dense(1, activation='sigmoid', kernel_initializer=kernel_initializer))
  model.compile(optimizer=optimizer, loss='binary_crossentropy', metrics=metrics)

  return model

Text类似Media,从模型配置“twitter_bert_base_en_uncased_augmented_mlm”可以看出,文本特征应该是通过BERT提取的,然后也搭建较为简单的2层MLP结构进行检测。

inputs = tf.keras.layers.Input(shape=(), dtype=tf.string, name=tweet_text_feature)
encoder = TextEncoder(
    max_seq_lengths=params['max_seq_lengths'],
    model_type=params['model_type'],
    trainable=params['trainable_text_encoder'],
    local_preprocessor_path='demo-preprocessor'
)
embedding = encoder([inputs])["pooled_output"] #提取文本特征
predictions = tf.keras.layers.Dense(2, activation='softmax')(embedding) #两层fc
model = tf.keras.models.Model(inputs=inputs, outputs=predictions)

但Text会多做一些文本预处理,来去除一些符号和表情,代码如下。

REGEX_PATTERNS = [
    r'^RT @[A-Za-z0-9_]+: ', 
    r"@[A-Za-z0-9_]+",
    r'https:\/\/t\.co\/[A-Za-z0-9]{10}',
    r'@\?\?\?\?\?',
]

EMOJI_PATTERN = re.compile(
    "(["
    "\U0001F1E0-\U0001F1FF"
    "\U0001F300-\U0001F5FF"
    "\U0001F600-\U0001F64F"
    "\U0001F680-\U0001F6FF"
    "\U0001F700-\U0001F77F"
    "\U0001F780-\U0001F7FF"
    "\U0001F800-\U0001F8FF"
    "\U0001F900-\U0001F9FF"
    "\U0001FA00-\U0001FA6F"
    "\U0001FA70-\U0001FAFF"
    "\U00002702-\U000027B0"
    "])"
  )

def clean_tweet(text):
    for pattern in REGEX_PATTERNS:
        text = re.sub(pattern, '', text)

    text = re.sub(EMOJI_PATTERN, r' \1 ', text)
    
    text = re.sub(r'\n', ' ', text)
    
    return text.strip().lower()

Toxicity
Toxicity主要检测有毒推文,毒性包括边缘内容,如侮辱和某些类型的骚扰,关键词如下。

keywords = {
    "politics": [
...
    ],
    "insults": [
...    
    ],
    "race": [
...
    ],
  }

Toxicity模型主要基于BERT进行训练,有英文或多语种的BERT来支持该模块。

def load_bertweet(**kwargs):
  bert = TFAutoModelForSequenceClassification.from_pretrained(
    os.path.join(LOCAL_MODEL_DIR, "bertweet-base"),
    num_labels=1,
    classifier_dropout=0.1,
    hidden_size=768,
  )
  if "num_classes" in kwargs and kwargs["num_classes"] > 2:
    raise NotImplementedError

  return bert, True

一些训练setting设置如下。

RANDOM_SEED = ...
TRAIN_EPOCHS = 4
MINI_BATCH_SIZE = 32
TARGET_POS_PER_EPOCH = 5000
PERC_TRAINING_TOX = ...
MAX_SEQ_LENGTH = 100

WARM_UP_PERC = 0.1
OUTER_CV = 5
INNER_CV = 5
NUM_PREFETCH = 5
NUM_WORKERS = 10

Abuse
Abuse是检测滥用内容的模型。滥用内容包括违反 Twitter 服务条款的行为,包括仇恨言论、有针对性的骚扰和辱骂行为,具体的label定义如下代码。

labels = [
  "has_non_punitive_action", #没有讨伐行为
  "has_punitive_action", #有讨伐行为
  "has_punitive_action_contains_self_harm", #有自残
  "has_punitive_action_encourage_self_harm", #鼓励自残
  "has_punitive_action_episodic", #有不定期行为
  "has_punitive_action_episodic_hateful_conduct", #有不定期憎恨行为
  "has_punitive_action_other_abuse_policy", #其他滥用条款
  "has_punitive_action_without_self_harm" #有讨伐但没有自残
]

模型上也较为简单,也基于BERT进行检测。文章来源地址https://www.toymoban.com/news/detail-469586.html

fe = FeatureEncoder(train)
inputs, preprocessing_head = fe.build_model_head(model=ptos_prototype, text_encoder=text_encoder_pooled_output)

cls_dropout = tf.keras.layers.Dropout(params['cls_dropout_rate'], name="cls_dropout")
outputs = cls_dropout(preprocessing_head)
outputs = tf.keras.layers.Dense(8, name="output", dtype="float32")(outputs)

model = tf.keras.Model(
  inputs=inputs,
  outputs=outputs
)

到了这里,关于Twitter推荐系统的可信和安全模块解析(Trust and Safety Models)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 中国电子云-隐私计算-云原生安全可信计算,物理-硬件-系统-云产品-云平台,数据安全防护

    目录 联邦学习的架构思想 中国电子云-隐私计算-云原生安全

    2024年02月06日
    浏览(42)
  • 安全可信 | 天翼云自研密钥管理系统(KMS)获得《商用密码产品认证证书》!

    近日, 天翼云自研密钥管理系统( KMS ) 通过国家密码管理局安全性审查,符合 GM/T 0051 《密码设备管理 对称密钥管理技术规范》要求, 获得由国家密码管理局商用密码检测中心颁发的《商用密码产品认证证书》。 《商用密码产品认证证书》具有权威性及唯一性,该证书的

    2024年02月07日
    浏览(70)
  • 深度解析:算法推荐服务的安全评估与备案机制

    在当今数字化快速发展的时代,算法推荐服务已经成为行业内不可或缺的重要组成部分。这些服务,通常采用复杂的机器学习算法,可以有效地匹配用户需求,提供定制化的内容推荐。然而,算法推荐服务的广泛应用同时也带来了一系列的安全和隐私问题。因此,对这些服务

    2024年02月16日
    浏览(38)
  • 网络空间安全解析A模块解析

    前言 这是作者第一次写文章,可能会有一些不好的地方。 有要环境+QQ:3464531613 任务一:登录安全加固 任务环境说明: ✓ 服务器场景:LOG:(开放链接) ✓ 用户名:root密码:root ✓ 服务器场景:Web:(开放链接) ✓ 用户名:administrator密码:P@ssw0rd 1.密码策略(Web) a.最小密码长度不少于 8 个字

    2024年02月02日
    浏览(41)
  • 网络空间安全竞赛D模块解析

    好无聊呀(啊啊啊啊啊啊啊啊),看到桌面上杂乱无章的资料,整理整理就发出来。新手笔记勿喷。 通过查看服务器全部用户,发现后门用户 加固,删除后门用户 在查看服务器全部用户,无后门用户,加固成功 通过nmap探测服务器发现开启服务器开启远程桌面服务 再使用hydr

    2023年04月16日
    浏览(75)
  • 《A Credible and Fair Federated Learning FrameworkBased on Blockchain》基于区块链的可信、公平的联邦学习框架

    期刊 :IEEE Transactions on Artificial Intelligence 作者 :Leiming Chen;Dehai Zhao;Liping Tao;Kai Wang;Sibo Qiao;Xingjie Zeng;Chee Wei Tan 时间 :2024.1.17 1)提出了一个可信且公平的联邦学习计算框架,通过区块链技术和智能合约机制保证整个联邦任务过程的安全。 2)提出了一种基于模型特征融合的恶

    2024年04月17日
    浏览(38)
  • 机器学习中高维组合特征的处理方法+推荐系统使用矩阵分解为用户推荐的原理解析,《百面机器学习》学习笔记

    为了提高复杂关系的拟合能力,在特征工程中经常会把一阶离散特征进行组合,构成高阶组合特征。 假设有A B两组特征,C为受到A B两种特征影响的因素,且对特征A来说,其有 A i , i ∈ [ 0 , 1 ] {A^i,iin [0,1]} A i , i ∈ [ 0 , 1 ] 两种特征取值。同时,对于特征B来说,其有 B j , j ∈

    2024年02月05日
    浏览(44)
  • 网络5.0内生安全可信体系

    目录 0 引言 1 网络安全现状 2 传统网络安全防护机制的不足 3 网络5.0内生安全可信需求 4 网络5.0内生安全可信架构 图1 5 网络5.0内生安全可信架构关键技术 5.1 设备可信标识 5.2 可信网络接入认证 图2 5.3 信任传递 图3 5.4 攻击主动防御 5.5 轻量级加密技术 6 网络5.0内生安全可信实

    2024年04月14日
    浏览(34)
  • 富格林:可信方针实现安全盈利

    富格林指出,现货黄金一直以来都是投资者们追捧的热门品种之一。其安全性和保值增值的特性吸引着广大投资者。然而,要在现货黄金市场中取得成功并非易事,是需要一定的可信技巧和方针来支撑的。下面富格林将介绍一些关键的可信方针,帮助大家更顺利更安全地实现

    2024年04月28日
    浏览(41)
  • 构建安全可信、稳定可靠的RISC-V安全体系

    安全之安全(security²)博客目录导读 2023 RISC-V中国峰会 安全相关议题汇总 说明:本文参考RISC-V 2023中国峰会如下议题,版权归原作者所有。

    2024年02月11日
    浏览(43)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包