
发布者:Wilson Lee(特雷弗项目的机器学习工程经理)、Dan Fichter(特雷弗项目的人工智能和工程主管)、Amber Zhang和Nick Hamatake(谷歌的软件工程师)。
简介
特雷弗项目的使命是结束LGBTQ青年的自杀。除了通过我们最初的电话生命线(始于1998年)提供免费的危机服务外,我们后来还扩展到一个数字平台,包括短信和基于网络浏览器的聊天。遗憾的是,在数字平台上有大量的青少年求助,而咨询师的数量却不多,青少年不得不等待咨询师的到来。理想情况下,青少年会根据他们尝试自杀的相对风险与咨询师联系,这样那些即将面临伤害风险的人就会更早地被联系上。
作为谷歌人工智能影响挑战赛的一部分,谷歌公司为我们提供了150万美元的拨款、云计算积分和谷歌公司奖学金,一个由ML、产品和用户体验专家组成的团队在特雷弗项目中全职无偿工作了6个月。Googlers与特雷弗项目的内部工程团队联手,将自然语言处理应用于危机联络的接收过程。因此,特雷弗现在能够更快地将青少年与他们需要的帮助联系起来。在一笔新的120万美元赠款以及新一批Google.org研究员的支持下,我们的合作正在继续,他们在特雷弗项目中帮助扩展ML解决方案,直到12月。
ML问题框架
我们把这个问题定为二进制文本分类问题。输入的信息是青年在接触时填写的接收表上的问题的答案。
- 你以前尝试过自杀吗?是/否
- 你有自杀的想法吗?是/否
- 你有多难过?[多选]
- 发生了什么事?[自由文本输入]
输出是一个二元分类:是否将青少年放在标准队列或优先队列中。当辅导员有空时,他们会在标准队列中的青少年之前与优先队列中的青少年联系。
数据
一旦青少年与辅导员联系上,辅导员就会进行临床风险评估并记录结果。风险评估的结果可以映射到该青少年是否应该被放在标准队列或优先队列中。谈话(数字)的完整记录也被记录下来,对接收问题的回答也是如此。因此,用于训练的数据集由自由形式的文本、二元/多选特征和人类提供的标签的混合物组成。
幸运的是,与标准风险相比,被分类为高风险的青少年相对较少。这导致了严重的类别不平衡,必须在训练中加以考虑。另一个主要挑战是数据集中的低信噪比。不同的青少年可能在接收表上提供非常相似的回答,然后在完成深入交谈后,辅导员会给出相反的分类。后面将详细介绍处理这些问题的各种方法。
由于数据集的极端敏感性,我们采取了特别措施来限制其存储、访问和处理。我们自动清除并替换了带有个人识别信息(PII)的数据,例如用"[PERSON_NAME]"或"[LOCATION]"这样的占位符字符串替换姓名和地点。这意味着模型没有使用PII进行训练。只有从事该项目工作的一小部分人可以访问刷新的数据集,数据和模型被严格保存在Trevor的系统内,谷歌无法访问。
衡量标准
对于二元分类任务,我们通常会对精度和召回率等指标进行优化,或对F1分数或AUC等衍生指标进行优化。然而,对于危机联系分类,我们最需要优化的指标是高危青少年(应该被归入优先队列的人)在与咨询师联系之前需要等待多长时间。为了估计这一点,我们建立了一个队列模拟系统,该系统可以预测平均等待时间,给定一个班级平衡的历史快照,一段时间内接触的量化流量,可用的辅导员数量,以及预测模型的精度和召回率。
在梯度下降的更新步骤中,模拟运行速度太慢,所以我们首先对代理指标进行了优化,如召回率为80%时的精度,以及召回率为90%时的精度。然后,我们在所得模型的精度-召回率曲线上的所有点上进行模拟,以确定曲线上的最佳点,以尽量减少高危青少年的等待时间。
对于向特雷弗伸出援手的各种人口统计学和交叉群体来说,量化模型的公平性也很关键。对于每个最终确定的模型,我们计算了按20多个人口统计学类别(包括交叉性)划分的假阳性和假阴性比率。我们确保没有任何人口统计学群体比以前的系统更倾向于或不倾向于该模型。
模型选择
我们试验了基于双LSTM和转化器的模型,因为它们已被证明在广泛的文本任务中提供最先进的结果。我们尝试用Glove、Elmo和Universal Sentence Encoder来嵌入文本输入。对于基于转化器的模型,我们尝试了单层转化器网络和ALBERT(许多转化器层用来自网络的未标记文本进行预训练)。
我们选择ALBERT有几个原因。它在我们最感兴趣的高召回率曲线的一端显示出最佳性能。ALBERT不仅使我们能够利用大量的预训练,而且还可以利用我们自己的一些未标记的数据来做进一步的预训练(后面会详细介绍)。由于ALBERT在其转换层之间共享权重,该模型的部署成本较低(对于一个非营利组织来说很重要),而且不容易过度拟合(鉴于我们数据的噪音,这一点很重要)。
培训
我们通过三个步骤进行训练。
-
预培训。ALBERT已经用网络上的大量数据进行了预训练。我们只是使用TF Hub加载一个预训练的模型。
这里有关于加载预先训练好的文本分类模型的说明,。
-
进一步的预训练。由于ALBERT的语言模型是基于通用的网络数据,我们使用我们自己的域内无标签数据对其进行了进一步的预训练。这包括来自聊天记录以及TrevorSpace(特雷弗项目为LGBTQ青年提供的安全空间社交网站)上的论坛帖子的匿名文本。虽然未标记的数据没有被标记为自杀风险,但它来自我们目标人群中的真实青年,因此在语言上比ALBERT的通用网络语料集更接近我们的标记数据集。我们发现,这大大提高了模型的性能。
这里有关于检查点管理策略的说明。
-
微调。我们使用手工标记的训练数据对模型进行了微调。我们最初只是用ALBERT来编码对 "发生了什么 "的文本反应,并使用单热向量来编码对二元和多选题的反应。然后,我们尝试把所有的东西都转换为文本,并使用ALBERT来编码所有的东西。具体来说,我们没有把 "你有自杀的念头吗?"这样的问题的是/否答案编码为一个单热向量,而是在文本中预留了"[咨询师]你有自杀的念头吗?[青年]没有 "来回答 "发生了什么事?"这在性能上产生了明显的改善。
用BERT标记器进行编码的说明可在此获得。
优化
我们使用手动试验做了一些粗略的参数选择(学习率和批量大小)。我们还使用了Keras Tuner来进一步细化参数空间。因为Keras Tuner是与模型无关的,我们能够为我们的每个模型类别使用类似的调整脚本。对于基于LSTM的模型,我们还使用Keras Tuner来决定使用哪种嵌入。
通常情况下,我们会使用适合GPU的大批量训练,但在这种情况下,我们发现相当小的批量(约8个例子)会有更好的性能。我们的理论是,这是因为数据的噪音太大,以至于它倾向于自我规范化。这种自我规范化的效果在小批量中更加明显。
这里有关于设置超参数试验的说明。
总结
我们训练了一个基于文本的模型,对寻求危机服务的高危青少年进行优先排序。该模型的表现优于只使用几个多选题的回答作为特征的基线分类器。NLP模型也被证明比基线模型的偏差要小。对最终模型影响最大的一些因素是:1)使用领域内的无标签数据来进一步预训练现成的ALBERT模型,2)将多选题的回答编码为全文,这又被ALBERT编码,以及3)除了标准的搜索方法之外,还使用对我们特定数据集的直觉来调整超参数。
尽管该模型取得了成功,但也有一些局限性。产生我们的数据集的摄入问题与构成我们的训练标签的专家风险评估的结果不是非常相关的。这导致我们的训练数据集的信噪比很低。今后可以做更多的非ML工作,以便在接收过程中从青少年那里获得更多的高信号反应。
我们要感谢所有为这个项目作出贡献的团队和个人。Google.org和Google.org研究员,特雷弗项目的整个工程和数据科学团队,以及特雷弗的危机服务和临床工作人员的许多小时的审查和投入。
您可以通过TheTrevorProject.org/Donate捐款来支持我们的工作。您的救命之恩可以帮助我们扩大宣传力度,培训创纪录的危机咨询师,并提供我们所有的危机服务。