负责任地使用机器学习API

2020-08-14 00:55:20

免责声明:我是独立研究员@Taraaz,与下面提到的任何公司都没有关联。

上个月,我的朋友在Instagram上发布了一篇报道。这是关于抵制来自印度的联合利华生产的一种美肤产品,该产品的品牌名称是“Fair&Amp;Look”。竞选的目标是什么?以引起人们对印度更大的色彩主义问题的关注。

我不是印度人。但竞选活动的信息引起了我的共鸣。在我长大的伊朗,我也遇到过类似的“美容”产品,声称能够让使用者的皮肤变白。当我还是个孩子的时候,我认为它们是理所当然的。但这些天,在“黑人生命也是命”运动之后,许多来自不同国家的人开始觉醒,他们认为国内存在种族主义和肤色歧视。

在阅读竞选推文时,我开始思考这些推文背后的情感。我想知道联合利华会如何看待和回应这些推文?当然,他们的社交媒体团队不可能阅读每一条推文。但也许他们使用社交媒体分析工具-由情感识别技术提供支持-来了解人们的需求。

我是一名技术和人权方面的研究员。我的工作是了解技术设计如何影响人权。我知道,基于文本的情绪分析工具的承诺之一是帮助公司了解基于社交媒体参与的客户满意度。

这就是为什么我决定用“Fair&;love”的例子来仔细研究基于机器学习的情绪分析API。这些做法--现在已经成为各大品牌的常态--在这样的特定案例中表现如何?尤其是,我想知道“公平可爱”这个短语的积极情绪是否会欺骗情绪分析工具,导致对句子情绪的错误分类,即使句子的整体情绪可能不是积极的。

这个问题促使我写了这篇博客文章,特别是针对使用机器学习技术即服务(MLaaS)的开发人员,也针对我的人权同行,他们对研究科技公司第三方关系对人权的影响很感兴趣。

我将告诉您为什么理解API术语如此重要,以及在过去几年中API有哪些误用。

我会选择IBM Tone Analyzer API和ParallelDots Text Analysis Emotion API,在关于联合利华“Fair&;love”产品的推文上测试它们的结果。我将向您介绍这些API的开发人员策略、服务条款和API文档,并向您展示在选择该API之前可能需要考虑的一些标准。

我将为希望以负责任的方式为特定领域使用通用API的开发人员提供一组建议。我还将为研究公司第三方关系的审计师和人权实践者提供建议。

因此,假设您是一名开发人员或社交媒体分析师,联合利华与您接洽,要求您分析客户社交媒体参与度背后的情绪。你的工作是什么?。

作为假设,我们将假设您没有构建完整的自定义机器学习模型所需的技能、数据和计算能力,也不想使用任何预先训练的模型。相反,您可以选择最简单的方法:一个现成的通用情绪分析API。

如果是这样的话,您选择和以负责任的方式使用这些API的标准是什么?

首先,是最基本的。应用程序编程接口(API)帮助不同的软件应用程序相互交互。它允许一个应用程序发出请求(数据或服务),而另一个应用程序响应它。例如,如果您是一家社交媒体公司,并且希望研究人员使用您的数据进行研究,您可以通过API授予他们访问这些数据的权限。如果您希望家中的物联网设备能够相互交互(例如,您的智能灯对Google日历上的事件做出反应),那么您可以通过API连接这些服务。

但是,与任何类型的交互一样,在开始彼此协作之前,这些服务之间需要有规则。这些规则由API策略、开发者策略和服务条款设置。

到现在为止还好。但是当你仔细考虑的时候,你会意识到这些服务彼此之间达成了协议,为你作为用户提供服务,或者处理你的数据,而你并没有完全理解它们是如何达成协议的。

1)你还记得剑桥分析(Cambridge Analytica)和脸书(Facebook),对吗?(作为更新,8700万用户的信息被“不正当”地与“剑桥分析”共享,以分析和操纵Facebook用户的政治行为)。长话短说,这种侵犯隐私的数据共享做法的根本原因是因为Facebook的API被滥用。因此,Facebook通过改变他们的API策略来限制开发者的数据访问。

2)ML API作为分析服务也有顾虑。在这种情况下,开发人员是拥有数据并转到大型科技公司的MLAPI来处理这些数据的人(MLaaS)。Joy Buolamwini和Timnit Gebru的性别阴影研究显示,几种面部识别API存在严重的种族和性别歧视。事实上,大型科技公司在向美国执法机构提供API方面受到限制(谁知道他们通过…与其他国家的商业关系。?🤷🏻‍♀️)。

但是,想要使用科技公司通用服务的开发者的责任又如何呢?是否有任何指导可以帮助他们在其特定领域中负责任地选择和使用那些MLAPI?

作为一名开发人员,如果您不想从头开始构建ML系统,也不想使用预先训练好的模型,另一种选择是使用基于云的MLAPI。一切都准备就绪:您设置一个开发人员帐户并接收API凭据,提供输入数据,服务提供者发挥其“魔力”,然后您将结果作为输出接收。放轻松!您甚至不需要任何数据科学和机器学习方面的知识就能够将该API集成到您的产品中。或者至少,公司就是这样推销他们的服务的。

作为一名开发人员,您有一套明显的选择服务的标准,对吧:准确性、成本和速度等标准。但是,如果您希望基于其他标准(如隐私、安全性、公平性和透明度)选择您的MLAPI服务,该怎么办呢?你要经过什么程序?你要检查什么?

让我们回到“公平与可爱”的推特上。考虑到我们假设的开发人员,我使用Twint收集了数百条关于英语中“公平可爱”的推文。接下来,我研究了RapidAPI,这是一个帮助开发人员管理和比较不同API的平台,我选择IBM Watson Tone Analyzer和ParrallelDots作为最佳选择。这两项服务都承诺从推文中推断包括恐惧、愤怒、喜悦、幸福等在内的情绪。

然后我注册了这两个服务,并收到了免费开发人员帐户的API凭据。IBM的免费“Lite”帐户每月提供2500个API调用;ParallelDots每天1000次API点击是免费的。

最后,我做了下面的实验。这些都是提供我的“Fair&;love”推文语料库作为输入,然后收集API的输出的结果。您可以在此电子表格中看到更多示例。

我还把“公平可爱”这个词改成了更中性的措辞,比如“你的产品”和“这个产品”。输出结果已更改。然而,从人类分析的角度来看,这一信息-以及它的情绪-是相同的。

在这一点上,我不会在这个特定的情况下使用这两个工具中的任何一个!你告诉我“联合利华-取消公平和可爱-在请愿书上签名!”这句话是不是真的?是快乐的!🤦🏻‍♀️。

然而,假设我们假设的开发人员仍然认为使用这些工具是有好处的。

在这种情况下,我们需要考虑以下标准。我不得不说,这份清单是非常初步的,决不是全面的。但是,作为开发人员,如果您决定使用这些工具,至少它会让您有一种应该寻找什么的感觉。

当您要注册开发人员帐户时,请始终阅读完整的服务条款(ToS)和隐私政策。至关重要的是,这与公司网站的条款和政策不同。

尤其要警惕有关您提供作为输入的数据将如何处理的信息。有一项名为Polisis的服务可以帮助您比较来自不同服务提供商的政策(它并不完美,但仍然很有帮助)。

阅读开发商的隐私政策和特定于产品的政策,以了解公司从您(作为帐户持有人)收集了哪些数据,他们是如何保护这些数据的?他们是否对静态和传输中的数据进行加密?他们收集的数据是个人可识别的吗?他们是否定义了元数据的含义?他们是否收集您作为服务输入提供的数据?他们会保留它吗?多久?。他们保存日志文件吗?

以下是这两个服务的策略之间的比较。(在本文的其余部分,我对IBM Tone Analyzer和ParallelDots的详细信息的比较将出现在下面这样的灰色文本框中,其中包含我在他们发布的策略和文档中发现的摘要)。

IBM Tone Analyzer:当您想要创建一个开发人员帐户时,IBM会向您推荐他们的一般隐私策略,其中列出了从网站访问到使用云服务的所有内容。有一些含糊的声明,例如:·IBM可能还会与选定的合作伙伴共享您的个人信息,以帮助我们向您提供...他们的合作伙伴是谁?!·或!我们不会保留超过处理目的所需的个人信息。";超过必要的时间是什么?";如果您需要有关通过Tone Analyzer API收集和保留数据的特定信息,请转到产品文档页面。一些相关信息包括:·#34;Tone Analyzer服务禁用请求记录。该服务不记录或保留来自请求和响应的数据。";·该服务处理但不存储用户数据。Tone Analyzer服务的用户不需要采取任何措施来识别、保护或删除该服务的数据。";ParallelDots:该网站称ParallelDots“保护您的数据,并严格遵守GDPR合规准则”。但是它不会更进一步吗?哪些数据?元数据或开发人员的信息或用户数据?·ParallelDots";tos表示,您不能出于监控服务可用性、性能或功能的目的访问这些服务,也不能出于任何其他基准测试或竞争目的访问这些服务。这对我来说很奇怪,这是否意味着我违反了他们的服务承诺?!

如果某公司已经为该特定API提供了诸如Model Card for Model Reporting之类的文档,请在使用该服务之前阅读该文档。如果没有,祝您好运找到如此重要的信息!查看API的文档,深入了解有关API安全性的信息、背景研究。论文、培训数据、体系结构和算法、评估指标以及推荐的使用和非使用案例。

🔐接口安全。在过去的几年里,通过使用不安全的API来泄露数据的例子不胜枚举。API提供商有责任能够检测安全漏洞、识别可疑请求、提供加密流量和流量监控方法。确保API提供商已经将这些安全实践落实到位,并在此处阅读有关API安全性的更多信息。

IBM Tone Analyzer:·IBM建议开发人员使用IBM Cloud Activity Tracker和LogDN来监控IBM Cloud帐户的活动并调查异常活动。·该服务还需要强密码,并向您发送验证码以确认您的开发者帐户。ParallelDots:API文档页面中没有API安全相关信息。然而,他们提到,他们只提供对优质内容的加密访问。·注册时,开发者不需要设置强密码,但ParallelDots会向您发送验证邮件,确认您的帐户。

🌏精准精准的…。但对谁来说呢?在“公平与可爱”的例子中,语言扮演着重要的角色。纯英语的推文并不能准确地了解围绕产品的讨论,因为它并不局限于一种单一的语言。

检查API是否支持其他语言。如果是的话,不同语言的准确率是多少?服务提供商经常说他们支持多种语言,但没有提供关于每种语言的准确性和其他评估指标的细分细节。深入API文档、背景研究页面,尝试查找不同子类别的指标。

IBM Tone Analyzer:该公司列出了11种受支持的语言。但是,没有关于准确性或基于不同语言的其他评估指标的细分信息。ParallelDots:该公司列出了14种受支持的语言。但是,没有关于准确性或基于不同语言的其他评估指标的信息。

❗️建议(而不是)使用案例。公司还提供关于建议使用其服务的指导,但有时用例可能是危险的或不道德的。公司需要对开发者不应该使用他们的服务的情况保持透明。

IBM Tone Analyzer:根据文档页面,Tone Analyzer的使用案例包括预测支持论坛中的客户满意度;预测Twitter响应中的客户满意度;预测在线约会匹配;预测TED Talk掌声。没有关于不使用情况的迹象。ParallelDots:有两个推荐的用例:“瞄准诽谤者以改善对他们的服务”和“品牌观察”。没有关于不使用情况的迹象。

⚖️公平惯例。在过去的几年里,研究人员和实践者提高了对机器学习系统歧视性结果的认识。他们提供了许多工具包,帮助公司评估其工具对人权的影响,并对潜在的社会风险保持透明。我在这里记录不同的计划、文件和工具包。

IBM Tone Analyzer:IBM提供有关背景研究、数据收集过程(Twitter数据)和数据注释方法的信息。然而,报告没有提到潜在的说服力结果,也没有关于人口统计数据和基于不同子组(语言、性别、年龄等)的测量的细分信息。有趣的事实:IBM Research是提供公平性和可解释性工具包的先驱之一(参见IBM360)。他们还建议对每个ML模型使用情况说明书来显示训练数据集、模型规范和用例的来源。但当涉及到他们自己的型号时,你很少在他们的产品页面上找到这样的信息!这让我想起了尼扎米的那首伟大的诗,基本上意思是在批评别人之前先修复自己的缺陷:عیبکسانمنگرواحسانخویشدیدهفروکنبگریبانخویشParallelDots:我没有找到关于公平做法的信息。

IBM Tone Analyzer:该公司经常更新服务,并提供有关更新的信息。然而,在一些更新中有一些通用的语句,包括服务也针对内部更改和改进进行了更新。";这些内部更改和改进是什么?ParallelDots:我找不到有关更新和维护的信息。

💬开发人员社区。开发人员社区(通过Slack Workspace、Stack Overflow、GitHub等)帮助共享反馈,与自己和服务提供商互动,并提出有关特定产品和特定领域的隐私、安全性、公平性、可解释性等问题。

IBM Tone Analyzer:IBM Watson提供了Slake工作区(不过,没有专门用于道德用途的通道)和一个Stack Overflow开发人员社区。音调分析器的Github页面在这里。ParallelDots:该公司有一个GitHub页面。

不要盲目使用机器学习API,特别是当它们是黑盒时。除了服务提供商销售的成本、速度和准确性等标准外,还应考虑与公平、隐私、安全和透明度相关的标准。

如果没有记录在案,请联系服务提供商,询问他们是否进行过公平性审计。他们有责任在网上发布这些信息,或者带你一览无遗。用你的购买力,他们会听的!

考虑一下您将使用该工具的域。谁可能会不成比例地受到将给定的ML API与您的产品集成的结果的影响?想一想性别、种族、宗教、年龄、语言、口音、国家、社会经济地位(阅读这篇文章可以更多地了解受人权公约保护的弱势群体)。我在这里跟踪不同的ML评估工具;您可能会发现它们对您的评估过程很有帮助。

尝试找到与ML项目的歧视性结果相关的基准数据集(股权评估语料库是用于检查情绪分析系统中的偏差的基准数据集的一个示例)。联系参与创建此类基准的人员,并向他们寻求帮助,以仔细检查您的特定域中的API。查看FAccT会议目录,查找处理这些问题的人员。

当您怀疑特定域中的某个API服务存在道德问题时,可以通过在该服务的GitHub页面、Stack Overflow或开发人员的社区页面上打开一个问题来与其他开发人员共享。几乎所有的服务提供商都有这些平台,供开发人员分享他们的问题。服务提供商可能会说,不可能为每个域测试和审核他们的工具,因为他们的服务是通用工具。但是您可以针对您的用例告知他们您在特定领域中面临的道德问题。通过提供公共信息,您还可以帮助其他可能想要使用该服务的开发人员!

如果您将第三方ML API集成到您的产品中,请在您的产品的隐私策略和服务条款中提及。不要把它简化成一句话,说“我们使用别人的服务。”包括有关这些第三方服务信息-在本例中为ML服务提供商。由于特定的第三方关系,要对用户数据的处理方式保持透明。

这篇文章的重点不是服务提供商,而是第三方开发者。不过,为了强调服务提供者在通知开发商方面的一些责任,我想说:

记录并保持透明!不要把公平标准埋在一份500页的文件中。使用更直观、更友好的用户界面来引导开发人员在注册使用您的服务之前阅读有关公平和隐私标准的信息。

在开发人员的门户和社区页面中添加与您自己的API服务的公平性、安全性和私密性相关的问题。让开发人员在这些门户网站中讨论这些问题(例如,在开发人员工作区内创建专用的Slack通道),并鼓励开发人员分享他们在使用您的服务时处理公平、隐私和安全问题的经验(IBM 360 Slake Channel、Salesforce UI Warning就是很好的例子)。不要只在你的市场页面上展示“成功”的用法和积极的评价!

每一层开发者账户(免费、标准、高级)都会为您带来不同程度的责任。制定隐私保护实践,以监控您的服务可能被滥用的情况。这篇论文

.