![工程的博客](http://www.neidfyre.com/www/blog-legacy-assets/static/d9f82ccf7d7b9de38fc301ef5820047a/328f3/CategoryIcon-Engineering-1.png)
环境、社会和治理的数据驱动方法
金融的未来与社会责任、环境管理和企业道德齐头并进。为了保持竞争力,金融服务机构(FSI)越来越多地披露有关其环境、社会和治理(ESG)表现的信息。通过更好地理解和量化对公司或企业的任何投资的可持续性和社会影响,金融服务机构可以减轻声誉风险,并保持与客户和股东的信任。在Databricks,我们越来越多地从客户那里听到ESG已经成为高管层的优先事项。这不仅仅是由利他主义驱动的,还有经济因素:较高的ESG评级通常与估值和盈利能力呈正相关,而与波动性呈负相关。在这篇博客文章中,我们提供了一种可持续投资的新方法,通过结合自然语言处理(NLP)技术和图表分析来提取关键的ESG战略举措,并了解公司在全球市场中的关系及其对市场风险计算的影响。
使用Databricks统一数据分析平台,我们将演示如何操作bob体育客户端下载Apache火花TM,三角洲湖而且MLflow能够使资产管理公司评估其投资的可持续性,并以整体和数据驱动的观点为其环境、社会和公司治理战略赋予业务能力。具体来说,我们将从年度PDF报告中提取关键的ESG倡议,并将其与新闻分析数据中的实际媒体报道进行比较。
在本博客的第二部分,我们将学习公司之间的联系,并了解这些联系可能对你的企业产生的积极或消极的ESG后果。虽然本博客将侧重于资产管理公司,以说明ESG和社会责任投资的现代方法,但这个框架广泛适用于经济中的所有部门,从消费必需品和能源到媒体和医疗保健。
提取关键的ESG倡议
金融服务机构现在正面临股东越来越大的压力,要求它们披露更多有关其环境、社会和治理战略的信息。企业通常每年在其网站上以PDF文件的形式发布,内容涉及多个主题,如他们如何重视员工、客户或客户,他们如何积极回馈社会,甚至他们如何通过减少(或承诺减少)碳排放来缓解气候变化。由第三方机构(如摩根士丹利资本国际(msci)或csrhub),这些报告通常会在不同行业进行整合和基准测试,以创建ESG指标。
从ESG报告中提取语句
在本例中,我们希望通过编程方式访问来自顶级金融服务机构的40多个ESG报告(下表中有一些报告),并了解不同主题的关键举措。但是,由于没有标准模式或监管指南,这些PDF文档中的通信可以是多种多样的,这使得这种方法成为使用机器学习(ML)的理想候选方法。
尽管我们的数据集相对较小,但我们将展示如何使用用户定义函数(UDF)分发抓取过程,假设第三方库“PyPDF2”在您的Spark环境中可用。
进口请求进口PyPDF2进口io@udf (“字符串”)defextract_content(url):#检索PDF二进制流Response = requests.get(url)open_pdf_file = io.BytesIO(response.content)pdf = pypd2 . pdffilereader (open_pdf_file)#返回连接的内容text = [pdf.getPage(i).extractText()为我在范围(0pdf.getNumPages ()))返回“\ n”. join(文本)
除了正则表达式和相当复杂的数据清理(在附带的笔记本中报告),我们还想利用更高级的NLP功能将内容标记为语法有效的句子。考虑到在内存中加载训练过的NLP管道所花费的时间(例如下面的“spacy”库),我们使用如下的PandasUDF策略确保我们的模型在每个Spark执行器中只加载一次。
进口gensim进口宽大的从pyspark.sql.functions进口pandas_udf, PandasUDFType@pandas_udf (“数组”, PandasUDFType。SCALAR_ITER)defextract_statements(content_series_iter):#加载空间模型英文只一次spacy.cli.download (“en_core_web_sm”)NLP = space .load(“en_core_web_sm”)使用加载的NLP模型提供process_text函数#清理并标记一批PDF内容为content_series在content_series_iter:收益率content_series。地图(λprocess_text(nlp, X))
通过这种方法,我们能够将40多个ESG报告的原始PDF文档转换为定义良好的句子(下表中报告了一些句子)。作为这个过程的一部分,我们还将我们的内容进行了归纳——也就是说,将一个单词转换为更简单的语法形式,比如将过去式转换为现在时或将复数形式转换为单数。这个额外的过程将通过减少学习主题的单词数量在建模阶段得到回报。
高盛(Goldman Sachs) | 我们制定了一项新政策,只在美国和欧洲上市那些至少有一名多元化董事的公司(从明年开始,我们将把目标增加到两名)。 |
巴克莱(Barclays) | 对我们来说,重要的是,我们所有的利益相关者都能清楚地了解我们如何管理我们的业务。 |
摩根士丹利(Morgan Stanley) | 2019年,我们的两笔融资帮助在索诺马县为中低收入家庭建造了近80套经济适用公寓,当时住房极度短缺。 |
Riverstone | 在过去的四年里,该基金已经保护了超过15,000英亩的洼地硬木林,正在朝着基金成立之初设定的35,000英亩的目标迈进 |
虽然人类肉眼相对容易推断出这些陈述的主题(在这种情况下,多样性、透明度、社会、环境),但以编程方式大规模地这样做是不同的复杂性,需要高级数据科学的使用。
ESG报表分类
在本节中,我们想对从40多个ESG报告中提取的8000句话中的每句话进行自动分类。结合非矩阵分解,潜狄利克雷分配(LDA)是主题建模库中的核心模型之一,可以在Spark ML上使用它的分布式版本,也可以在内存中使用它的等效sklearn,如下所示。我们计算我们的项频率,并捕获我们的LDA模型和超参数使用MLflow实验跟踪。
从sklearn.feature_extraction.text进口CountVectorizer从sklearn.decomposition进口LatentDirichletAllocation作为乔治。进口mlflow#计算词频# stop词是常见的英语单词+银行相关的流行语word_tf_vectorizer = countvector (stop_words=stop_words, ngram_range=(1,1))Word_tf = word_tf_vectorizer.fit_transform(esg[“引理”])ml-flow跟踪实验与mlflow.start_run (run_name =“topic_modeling”):#用9个主题训练LDA模型lda = lda (random_state =42, n_components =9, learning_decay =3)lda.fit (word_tf)#日志模型mlflow.sklearn.log_model (lda),“模型”)mlflow.log_param (“n_components”,“9”)mlflow.log_param (“learning_decay”,“3”)mlflow.log_metric (“困惑”lda.perplexity (word_tf))
经过多次实验,我们发现9个主题最能概括我们的语料库。通过深入研究从模型中学习到的每个关键字的重要性,我们尝试将9个主题描述为9个特定类别,如下表所示。
显示的名字 | LDA描述性关键词 |
---|---|
公司战略 | 董事会、公司、公司、治理、管理、执行、董事、股东、全球、参与、投票、任期、责任、业务、团队 |
绿色能源 | 能源,排放,百万,可再生,利用,项目,减少,碳,水,亿,电力,绿色,总量,天然气,来源 |
客户关注 | 客户,提供,业务,改进,财务,支持,投资,服务,年份,可持续性,财务,全球,包括,帮助,主动性 |
支持社区 | 社区,人,业务,支持,新的,小的,收入,真实的,女人,启动,房地产,访问,客户,英国,包括 |
伦理投资 | 投资、气候、公司、变化、投资组合、风险、责任、部门、转型、股权、投资者、可持续发展、业务、机会、市场 |
可持续金融 | 可持续,影响,可持续性,资产,管理,环境,社会,投资,公司,十亿,浪费,客户,数据,投资,提供 |
行为准则 | 包括,政策,信息,风险,评审,管理,投资,公司,投资组合,过程,环境,治理,范围,行为,数据 |
强有力的治理 | 风险,业务,管理,环境,客户,管理,人,社会,气候,方法,行为,页面,客户,影响,战略 |
价值的员工 | 员工,工作,人,支持,价值,客户,公司,帮助,包括,提供,社区,计划,多样化,客户,服务 |
通过我们的9个机器学习主题,我们可以轻松地并排比较我们FSI的每一份ESG报告,以更好地了解每一份报告的关键优先重点。
使用海运可视化,我们可以很容易地标记出我们公司之间的关键差异(组织名称经过编辑)。当一些组织更关注员工价值和促进多样性和包容性时(如ORG-21),一些组织似乎更关注道德投资(ORG-14)。由于LDA的输出是我们9个主题的概率分布,而不是一个特定的主题,我们可以通过一个简单的SQL语句和一个分区函数,轻松地为任何给定的组织推出最具描述性的ESG计划,以捕捉每个主题的最高概率。
与排名(选择e.topic,e.statement,e.company,dense_rank()在(分区通过e.company, e.topic订单通过e.probabilityDESC)作为排名从esg_reports e)选择t.topic,t.statement从排名t在哪里t.company=“高盛”和t.rank=1
这个SQL语句为我们提供了一个NLP生成的高盛执行摘要(参见原始报告),将一份长达70多页的复杂文件总结为9项ESG倡议/行动。
主题 | 声明 |
---|---|
支持社区 | 该项目名为“女性企业家机会基金”(WEOF),旨在解决发展中国家女性拥有的企业未得到满足的融资需求,认识到女性企业家在获得企业发展所需资金方面面临的重大障碍。 |
强有力的治理 | ERM框架采用了一种全面、综合的风险管理方法,旨在建立健全的风险管理流程,通过该流程,我们可以识别、评估、监测和管理我们在开展业务活动时承担的风险。 |
可持续金融 | 除了瑞典的主要工厂外,诺斯沃特还与大众集团成立了一家合资企业,在德国建立一个16吉瓦时的电池超级工厂,这将使大众在诺斯沃特的总投资达到约10亿美元。 |
绿色能源 | 除了每年减少约7000吨的温室气体排放(相当于减少约1400辆汽车的道路),该项目预计将降低港务局在机场的温室气体排放约10%。GSAM可再生能源集团将持有该项目的电力购买协议,而SunPower将开发和建设肯尼迪机场的基础设施。 |
客户关注 | 项目校友还可以加入10KW大使计划,这是一项于2019年推出的高级课程,使企业家能够进一步扩大业务规模。在北京,万名女性在清华大学经管学院举办了为期10年的校友峰会。 |
伦理投资 | 2015年,我们是首批承诺遵守白宫《美国商业法案》(American Business Act on Climate Pledge)的美国公司之一;2017年,我们与其他29位首席执行官一起签署了一封公开信,支持美国留在《巴黎协定》;最近,我们与80多位首席执行官和劳工领袖一起重申,我们支持留在《巴黎协定》将加强美国在全球市场上的竞争力。 |
员工的价值 | 我们的文化的力量,我们执行战略的能力,以及我们与客户的相关性都依赖于多元化的员工队伍和鼓励广泛视角的包容性环境。 |
公司战略 | 我们坚信,多元化的观点可以对公司业绩产生强烈的影响,因此我们在管理工作中优先考虑董事会的多样性。 |
行为准则 | 关于在信用分析中纳入环境、社会和治理(ESG)因素的进一步方法,请参阅我们2019年表格10-K的第96页。2环保政策大纲 |
尽管我们可能会观察到一些错误分类(主要与我们如何命名每个主题有关),并且可能不得不进一步调整我们的模型,但我们已经演示了如何使用NLP技术从复杂的PDF文档中有效地提取定义良好的计划。然而,这些可能并不总是反映公司的核心优先事项,也没有捕捉到每个主题的每一个倡议。这可以通过借用异常检测的技术进一步解决,将语料库分组到更广泛的聚类中,并提取与规范偏差最大的句子(即特定于组织而非主流的句子)。这种使用K-Means的方法在附后的笔记本中进行了讨论。
创建一个数据驱动的ESG评分
如前一节所述,我们能够在9个不同的ESG倡议中并排比较企业。尽管我们可以尝试得出ESG评分(许多第三方组织会使用的方法),但我们希望评分不是主观的,而是真正受数据驱动的。换句话说,我们的假设不只是基于公司的官方披露,而是基于媒体如何看待公司的声誉,包括所有3个环境、社会和治理变量。为了这个目的,我们使用GDELT,事件位置和音调的全球数据库。
数据采集
考虑到GDELT中可用的数据量(仅过去18个月的1亿条记录),我们利用lakehouse通过将数据从原始层、过滤层和丰富层分别从青铜层、银层和金层移动到范例,并扩展我们的过程以接近实时地操作(GDELT文件每15mn发布一次)。为此,我们使用结构化流方法,在批处理模式下“触发”每个批处理只对数据增量进行操作。通过统一流处理和批处理,Spark是现代数据湖基础设施中数据操作和ETL过程的事实上的标准。
gdelt_stream_df=火花\.readStream \.format \(“δ”).表格(“esg_gdelt_bronze”)\.withColumn("themes", filter_themes(F.col("themes"))) \.withColumn("组织",f.v ut (f.c o("组织")))\.选择(F.col(“publishDate”),F.col(“组织”),F.col .alias(“documentIdentifier”)(“url”),F.col(“主题”),F.col(“tone.tone”))
gdelt_stream_df \.writeStream \.触发(Trigger.Once) \.option("checkpointLocation", "/tmp/gdelt_esg") \.format \(“δ”).表格(“esg_gdelt_silver”)
从GDELT提供的多种维度来看,我们只关注财经新闻相关文章的情绪分析(使用语气变量)。我们假设从ECON_*开始的GDELT分类法可以很好地捕获金融新闻文章。此外,我们假设所有环境类文章都被ENV_*收录,而社会类文章则被UNGP_*分类收录(联合国人权指导原则).
情绪分析是ESG的代理
在没有任何行业标准或现有模型来定义环境、社会和治理指标的情况下,在进行这项研究时,我们也没有任何可获得的基本事实,因此我们认为,从金融新闻文章中捕捉到的整体基调是企业ESG得分的良好代表。例如,一系列与海上灾难和石油泄漏有关的负面新闻文章将强烈影响一家公司的环境绩效。相反,关于……的新闻文章发展中国家女性拥有企业的融资需求[源更积极的语气会对ESG得分有积极的贡献。我们的方法是观察一家公司的情绪与其行业平均水平之间的差异;随着时间的推移,一家公司在所有金融服务新闻文章中被视为“积极”或“消极”的程度有多大?
在下面的例子中,我们展示了我们的一个关键的金融稳定指数与其行业平均值之间的情绪差异(使用15天移动平均值)。除了2020年3月COVID-19病毒爆发前后的特定时间窗口外,该公司的表现一直高于行业平均水平,表明整体环境得分良好。
将这种方法推广到我们GDELT数据集中提到的每个实体,我们不再局限于少数几个我们有官方ESG报告的金融机构,并且能够为每个公司在环境、社会和治理维度上创建内部评分。换句话说,我们已经开始将ESG视角从主观转向数据驱动。
介绍一个传播的加权ESG指标
在全球市场中,公司和企业是相互联系的,一方(如卖方)的ESG表现可能会影响另一方(如买方)的声誉。例如,如果一家公司继续投资与环境问题直接或间接相关的公司,这种风险应该被量化,并必须作为其道德投资战略的一部分反映在公司的报告中。我们可以引用巴克莱银行的声誉在2018年底受到影响的例子,因为它与焦油砂项目的间接联系(源).
识别影响因素
由谷歌民主化的网络索引,网页排名是一种常用的技术,用于识别大型网络中节点的影响。在我们的方法中,我们使用页面排名的变体,个性化页面排名,以确定相对于我们的主要金融服务机构有影响力的组织。这些关系的影响力越大,它们就越有可能(积极或消极地)对我们的ESG得分做出贡献。下面报告了这种方法的一个例子,其中与焦油砂行业的间接联系可能会对公司的ESG评分产生负面影响,与其个性化页面排名的影响成正比。
使用Graphframes在美国,我们可以很容易地创建一个共享共同媒体报道的公司网络。我们的假设是,新闻文章中同时提到的公司越多,它们之间的联系就越强(边权值)。尽管这一假设也可能因为新闻文章中随机出现而推断出错误的联系(见后文),但这张无向加权图将帮助我们找到公司相对于我们想要评估的核心金融服务机构的重要性。
val buildTuples = udf((组织:Seq [字符串]) = >{//作为无向连接,我们同时创建IN和OUT连接organisations.flatMap (x1= >{organisations.map (x2= >{(x1, x2)}).toSeq.filter ({})情况下(x1, x2) = >X1 != x2//删除自身边缘})})Val edges = spark.read.table(“esg_gdelt”).groupBy (“url”).agg (collect_list(坳(“组织”)。as (“组织”)).withColumn (“元组”, buildTuples(坳(“组织”))).withColumn (“元组”爆炸(坳(“元组”))).withColumn (" src "坳(“tuple._1”)).withColumn (“dst”坳(“tuple._2”)).groupBy (" src ",“dst”).count ()进口org.graphframes.GraphFrameval esgGraph = GraphFrame(节点,边缘)
通过进一步研究这张图,我们观察到其边权的幂律分布:90%的连接企业共享很少的连接。我们通过过滤权重为200或以上的边(经验引导阈值),将图的大小从51,679,930减少到61,143个连接。在运行Page Rank之前,我们还通过进一步减少a的连接数来优化我们的图最短路径算法并计算节点到达任何核心FSIs顶点所需的最大跳数(在“地标”数组中捕获)。图的深度是每个可能的最短路径的最大值,或者任意随机节点到达任何其他节点所需的连接数(深度越小,我们的网络越密集)。
val shortestPaths = esgGraph.shortestPaths.landmarks(landmarks).run()val filterDepth = udf((距离:地图[字符串, Int)) = >{distances.values.exists (_
我们过滤我们的图以获得最大深度的4.这个过程将我们的图形进一步缩小到2,300企业和54,000连接,允许我们更广泛地运行页面排名算法与更多的迭代在为了更好地获取行业影响力。
val prNodes = esgDenseGraph.parallelPersonalizedPageRank.maxIter (One hundred.).sourceIds(里程碑).run ()
我们可以根据下图直接可视化特定业务(在本例中是巴克莱PLC)的前100个有影响力的节点。毫无疑问,巴克莱银行与我们的大多数核心金融服务机构(如机构投资者摩根大通、高盛或瑞士信贷)关系密切,但也与美国证券交易委员会、美联储和国际货币基金组织关系密切。
再往下看,我们发现了雪佛龙(Chevron)、星巴克(Starbucks)或强生(Johnson and Johnson)等上市公司和私营公司。所有这些业务(或从NLP的角度来看的实体)在理论上都可能对巴克莱的ESG表现产生积极或消极的影响,从而影响巴克莱的声誉。
ESG作为一个传播度量
通过将我们之前获得的ESG分数与每个实体的重要性相结合,可以很容易地在“巴克莱网络”上应用加权平均值,其中每个业务对巴克莱ESG分数的贡献与其相对重要性成比例。我们称这种方法为a传播加权ESG评分(PW-ESG)。
我们使用文字云可视化来观察任何公司网络的消极或积极影响。在下面的图片中,我们展示了对特定组织(名称已删除)的负面影响(对ESG做出负面贡献的实体)。
由于新闻分析的性质,将新闻出版公司(如汤森路透(Thomson Reuters)或彭博社(Bloomberg))或社交网络(Facebook、Twitter)视为紧密联系的组织并不奇怪。不是反映给定业务的真实联系,而是通过新闻文章中简单的共同出现来解释,我们应该考虑在我们的页面排名过程之前,通过删除具有高度联系的节点来过滤它们。然而,在我们的金融服务机构中,这种额外的噪音似乎是恒定的,因此似乎并不会使一个组织相对于另一个组织处于不利地位。另一种方法是使用从NLP对原始文本内容的高级使用中提取的已建立的连接来构建我们的图形。然而,这将大大增加该项目的复杂性和与新闻收集过程相关的成本。
最后,我们表示了在前一节中计算的原始ESG得分,以及使用PW-ESG方法在环境、社会和治理维度上降低(或增加)了多少这些得分。在下面的例子中,对于一个给定的公司,最初的69分、62分和67分已经减少到57分、53分和60分,PW-ESG对其环境覆盖率的负面影响最大(-20%)。
使用的灵活性Redash加上Databricks运行时的效率,这一系列的见解可以快速打包成BI/MI报告,为资产经理提供ESG即服务,以便更好地投资于可持续和负责任的财务。
值得一提的是,这个新框架足够通用,可以容纳多个用例。虽然核心金融服务机构可能会将自己的公司视为Page Rank的地标,以更好地评估声誉风险,但资产经理可以将其所有头寸视为地标,以更好地评估其每项投资决策的可持续性。
ESG应用于市场风险
为了验证我们最初的假设[…]较高的ESG评级通常与估值和盈利能力呈正相关,而与波动性呈负相关,我们创建了一个由随机股票组成的合成投资组合,我们通过PW-ESG框架运行,并结合从雅虎财经检索的实际股票信息。如下图所示,尽管明显缺乏数据来得出科学结论,但在过去18个月里,我们的投资组合中,ESG评级最高和最低的公司(我们将情绪分析作为ESG评级的代表)分别是盈利最好或最差的投资工具。
有趣的是,CSRHub的报告正好相反,皮尔逊(媒体)在ESG得分方面比普洛斯(物业租赁)高出10分,突出了ESG评分的主观性以及它在沟通和实际观察之间的不一致性。
跟进我们最近的博客关于风险管理现代化在美国,我们可以利用这些可用的新信息来推动更好的风险计算。将我们的投资组合分为两本不同的书,由我们ESG评级工具中最好和最差的10%组成,我们在下面的图表中报告了历史回报率及其相应的95%风险价值(历史VaR)。
除了通过我们的框架提取的指标之外,在没有任何关于我们工具的先验知识的情况下,我们可以观察到,由ESG评级较差的公司组成的投资组合的风险敞口要高出2倍,这支持了文献中发现的假设,“糟糕的ESG[…])与更高的市场波动有关”,从而导致更大的风险价值。
正如我们之前的博客所述,风险管理的未来在于敏捷性和交互性。风险分析师必须用替代数据和替代见解来补充传统数据,以探索识别和量化其业务面临的风险的新方法。利用云计算的灵活性和规模,以及通过Databricks运行时实现的数据交互性水平,风险分析师可以通过对不同行业、国家、细分市场以及现在不同ESG评级的市场风险进行切片和切片计算,更好地了解其业务面临的风险。这种数据驱动的ESG框架使企业能够提出新的问题,例如:如果将该公司的环境评级提高10分,您将减少多少风险?考虑到这些工具的PW-ESG评分较低,投资它们会增加多少风险敞口?
转变你的ESG战略
在本博客中,我们演示了如何将复杂的文件快速总结为关键的ESG举措,以更好地理解您每项投资的可持续性方面。通过使用图表分析,我们通过更好地识别全球市场对组织战略和声誉风险的影响,引入了一种新的ESG方法。最后,我们展示了ESG因素对市场风险计算的经济影响。作为数据驱动的ESG之旅的起点,这种方法可以通过将您持有的各种投资的内部数据和您可以从第三方数据获得的额外指标,通过我们的PW-ESG框架传播风险来进一步改进,以继续推动更可持续的金融和有利可图的投资。
试试下面的方法笔记本电脑在Databricks上加速您的ESG发展战略联系我们了解更BOB低频彩多关于我们如何帮助具有类似用例的客户的信息。
相关的帖子
![工程的博客](http://www.neidfyre.com/www/blog-legacy-assets/static/d9f82ccf7d7b9de38fc301ef5820047a/328f3/CategoryIcon-Engineering-1.png)