NLP自学习平台测评
NLP自学习平台,我们首先要了解一下这是做什么的,和python爬虫获取信息有什么区别,带着问题去测评产品。首先我们先看一下简介:NLP自学习平台支持文本实体抽取、文本分类、关键短语抽取、情感分析、关系抽取、商品评价解析、简历抽取和合同要素抽取等NLP定制化算法能力,用户无需拥有丰富的算法背景,仅需标注或上传适量文档数据,即可通过平台快速创建算法模型并使用,简单的讲就是大数据NLP模型搭建,把数据获取后,进行处理分析,然后呈现出来,不过这个不用再招一个NLP大数据开发师,只需要在平台上就能享有相关的服务结果,属于paas平台。我从业的行业涉及这一块还挺多的,对于文本实体抽取,文本分类,招标信息抽取,废话不多说,我们先来领一个月试试,NLP自学习平台属于自然语言处理,说白了是对信息的二次处理分析,目前只是提供接口,调用返回信息。 我先创建一个项目,选择项目类型,填写关键信息,包含类型,名称行业,项目描述等等创建标注任务,这里需要添加标注数据,我们可以通过示例下载json,导入上去,然后再确认,完成标注任务创建,需要等待两分钟的解析。 接下来就是比较复杂的信息标注阶段了,这个标注完是对信息的分类,我这只设置了一个类别,不再展示,只是告诉大家信息是如何被定义和归类的,剩下的就是它自己的训练学习过程。 重头戏:接口测试,首先我们需要知道怎么在开通后去调用它,看一下api参考,其实跟正常的接口调用没太大区别,唯一就是body信息不一样:https://help.aliyun.com/document_detail/144931.html。NLP自学习平台API调用是通过向NLP自学习平台服务的服务端地址发送HTTP GET请求,并按照接口说明在请求中加入相应请求参数,调用后系统会返回处理结果。请求及返回结果都使用UTF-8字符集进行编码。可以在OpenAPI Explorer中直接运行该接口,免去计算签名的困扰。运行成功后,OpenAPI Explorer可以自动生成SDK代码示例。调试网址:https://next.api.aliyun.com/api/nlp-automl/2019-11-11/RunPreTrainService?lang=JAVA 最后我们再试一下预训练模型,目前我这里的模块有近三十个,可以在OpenAPI开发者门户中直接运行该接口,免去您计算签名的困扰。运行成功后,OpenAPI开发者门户可以自动生成SDK代码示例,调用接口非常方便,参考这个可以试一下,我还是比较喜欢python的,比较简洁,依赖也少。Python代码示例#安装依赖pip install aliyun-python-sdk-corepip install aliyun-python-sdk-nlp-automl
CATIA二次开发—探讨CATIA单位问题
这周加更,原因有二:(1)本来昨天上午是买了票回家的,但一时失算没有预留候车的时间,光是从售票处走到检票口,几十米的距离,挪了近半个小时,结果很顺利地没赶上车,又很顺利地改签失败,最终无奈退票😂,买了今天的火车票再次启程🚋,所以昨晚有时间整理自己的东西,加推一篇技术类文章;(2)也是主要原因啦,就在昨晚,由我创建的 CATIA V6 二次开发群 在三个月不到的时间里实现了成员 破百的小目标,故而加推以表庆祝👏。当然,这其中也不乏有同事、朋友和所有群成员的共同努力和支持🙏。这里需要跟群友们致歉的是:一方面由于我正式接触CATIA这个软件的时间并不长,所以群里的很多问题我都显得有心无力,所以只能靠其他管理员或者大佬们提供反馈;另一方面我目前的开发以VBA为主,编程语言采用C#,算是目前最方便、最容易入门的一种开发方式了,但就目前来看,群里的开发方式其实是以CAA为主,我同样是两手一摊,束手无策。但我仍然会持续输出我所涉及的CATIA开发相关的技术经验,供大家参考,并会分享一些相关的高水平论文和技术资料给大家,做好服务工作。好了,进入正题。这一期咱们聊一聊让无数CATIA开发者(包括我自己在内)头疼的==参数单位(Unit)==问题。一、技术实现第一步 看看API怎么说Except when explicitly documented, numerical values stored and internally handled for computations are expressed using the MKSA unit system except for two dimensions:Length are expressed in mmAngles are expressed in decimal degrees译文如下:除非特别指定是哪个单位,软件内部存储和运算的数值都是使用国际基本单位制,即MKSA,但是呢有两个例外:长度不是用m,而是mm角度不是用弧度制,而是用十进制的度那什么是MKSA呢,其实就是米—千克—秒—安培制(Meter-Kilogram Second Ampere),这些都是国际基本单位。那么我们就很明确了,CATIA软件内部单位的设定应该是如下表所示。量纲单位长度mm角度deg时间s质量kg面积m2体积m3细心的读者肯定会注意到这样一个问题:在长度单位采用mm的情况下,面积和体积仍然采用m2和m3。是的没错,API已经写得很清楚了,只有两个例外,其它都应该按国际基本单位来执行。第二步 创建参数时,其值的量纲由谁决定?大家都知道三维建模软件都会给予用户修改默认单位的权限,以提高软件的自由度。但是,这样的灵活度反而给代码的编制增加了难度,例如我有这么一串代码,如果跑在单位配置不同的计算机上是不是会出现不同的结果呢?你所创建的参数有可能是2000mm,也有可能是2000m,同样有可能是2000cm,这样就乱套了。paras.CreateDimension("长度",“LENGTH”,2000);
所以,软件就需要一套用于内部运算的量纲设定,这个设定独立于当前计算机中软件本身的单位设定,是内在集成的。所以在CATIA二次开发中,对于创建参数时的数值量纲直接按上表考虑,无需关心本机的单位配置。第三步 修改参数值时,量纲由谁决定?修改参数值时的量纲选择是我一直感觉奇怪的地方,CATIA反而摒弃了自己内部运算的那一套,改用纯的MKSA国际单位制,也就是说长度单位变成了m,角度变成了弧度制。但是,好处是由于修改参数时是采用字符串赋值,而且软件可以识别字符串中的单位,所以这里强烈建议大家在参数写入时加上你想要赋予的单位。// 此时参数值被修改为2// 此时参数值被修改为2000 m
para.ValuateFromString("2000")
// 此时参数值被修改为2000 mm
para.ValuateFromString("2000mm")
第四步 读取参数值时,量纲由谁决定?其实上述的创建啊、修改啊还不算复杂,你只需要记住它默认的量纲即可,但参数的读取是真的令人头大,因为这会关联到当前计算机中软件的单位配置,而每个人的配置又可能不一样,例如同样的一个参数,A电脑打开显示为5m;B电脑打开则显示5000mm,虽然值都是相等的,但程序如何做出判断,并统一转换为标准的数值还是个问题。在之前 CATIA二次开发—参数那点事 那一期里,我也提及了使用正则表达式来解决这一问题的办法,但这个方法是存在漏洞的,因为你不可能把所有单位都罗列一遍并给出转换系数。作为一个有强迫症的程序员,我一直在寻觅更好的办法。最后还是被我找到了。其实也很简单,只是我们被现有的功能代码限制住了思维。现有的做法是拿到Parameter实例就立马去拿参数的值,而这里的Parameter定义太广,包含了字符串、实数、量纲值等等,所以此时你只能拿到一个String,然后自己再去判断。然而没人问过:为什么当我们拿到Parameter之后就要停下来呢,我们其实是明确知道自己想要拿的参数是什么类型的,完全可以进一步细化成Parameter的子类(如下图),例如Dimension。所以我们的问题就迎刃而解了,一旦我们拿到Dimension,那么通过它的属性Value,就可以获取到参数值所对应的软件内部运算值,也就是说如果是长度,你会直接拿到以mm为单位的数值。三、参考资料《3DEXPEROENCE Automation Help》
阿里云PAI-Diffusion功能再升级,全链路支持模型调优,平均推理速度提升75%以上
导读随着Stable Diffusion模型在AI圈的爆火,AI生成内容(AI Generated Content,AIGC)的应用呈现出井喷式的增长趋势。其中,文图生成(Text-to-image Generation)任务是最流行的AIGC任务之一,旨在生成与给定文本对应的图像。在先前的工作中,阿里云机器学习PAI团队开源了PAI-Diffusion系列模型(看这里),包括一系列通用场景和特定场景的文图生成模型,例如古诗配图、二次元动漫、魔幻现实等。这些模型的Pipeline除了包括标准的Latent Diffusion Model,还集成了PAI团队先前提出的中文CLIP跨模态对齐模型(看这里),及图像超分模型,使得模型可以生成符合中文文本描述的、各种场景下的高清大图。由于在特定场景下,用户往往有对这些中文Diffusion模型调优(Fine-tune)的需求,而且在线上部署方面,由于Diffusion模型推理速度比较慢,而且需要耗费较多的硬件资源。在本次的工作中,我们在EasyNLP算法框架中,对先前提出的PAI-Diffusion模型功能进行升级,全链路支持模型调优。在模型推理方面,结合由PAI自主研发的编译优化工具 PAI-Blade,支持对PAI-Diffusion模型的端到端的导出和推理加速,在A10机器下做到了1s内的中文大图生成。本⽂首先介绍如何体验PAI-Diffusion模型以及其在线部署、加速推理能力。其次,我们简单回顾了PAI-Diffusion模型的架构,之后详细介绍了在EasyNLP算法框架中对上述模型进行调优的全链路支持。轻松体验PAI-Diffusion模型首先让我们轻松体验PAI-Diffusion模型。在线体验PAI-Diffusion模型可以用于各种风格的艺术画的生成。这个模型的参数量仅10亿,使用一张P100 GPU显卡,就可以生成1024*1024的高清大图,示例如下。写实风格:“忽如一夜春风来,千树万树梨花开”科幻风格:“银河系中的神秘光球”国画风格:“中国风水墨画,绿树青山”抽象风格:“超现实主义,破碎都市”日系动漫风格:“日系动漫风,雪山霞光”我们在AI模型开源社区ModelScope的创空间上线了我们的一个PAI-Diffusion模型(体验链接),欢迎广大用户体验。PAI-Diffusion模型架构回顾我们简单回顾一下PAI-Diffusion模型的技术架构。简单的说,PAI-Diffusion模型是面向中文的、基于隐式扩散模型(Latent Diffusion Model, LDM)的文图生成模型。因为中英文在文化和表达上具有很大的差异性,产出的模型通常无法建模中文特有的现象。PAI-Diffusion模型由阿里云机器学习(PAI)团队发布并开源,除了可以用于通用文图生成场景,还具有一系列特定场景的定制化中文Diffusion模型,包括古诗配图、二次元动漫、魔幻现实等。PAI-Diffusion的模型Pipeline架构,包括中文CLIP模型、Diffusion模型、图像超分模型等:具体地说,中文CLIP模型把中文文本输入转化成 Embedding 向量,我们采用EasyNLP中文CLIP跨模态对齐模型(看这里)的Text Transformer作为Text Encoder。我们把中文CLIP模型的输出作为LDM的输入,训练模型生成文本对应的图片。可选地,PAI-Diffusion模型链路中还集成了ESRGAN作为图像超分模型,提升图片的分辨率。PAI-Diffusion模型加速推理技术PAI-Blade 采用多种模型编译优化技术,可以对基于Tensorflow/Pytorch 训练的模型进行推理优化加速。针对基于PAI-EasyNLP的 PAI-Diffusion模型 和社区的Stable-Diffusion模型的推理进行测速分析,针对推理的主要部分,引入了编译优化和flashattention的推理加速技术,成功将整个推理链路平均提速75%以上,具体加速比视推理步数略有不同,详细可以参考下表(测试推理机器 Nvidia-A10,输出图片分辨率 512x512):pai-diffusion原版pai-blade 加速后加速比采样步数1.61s0.97s66%203.02s1.62s86%50综上可以看到, 引入PAI自主研发的模型推理加速工具Blade 能大幅度提升DiffusionModel的推理速度,降低服务延迟,节省计算资源。PAI-Diffusion模型的微调和微调后模型部署在本次更新中,我们在PAI-EasyNLP算法框架对PAI-Diffusion模型的调优做了全面支持。我们介绍如何在PAI-Diffusion模型的训练流程,以及如何在PAI的产品中部署上述微调后的模型用于在线服务。安装EasyNLP用户可以直接参考链接的说明安装EasyNLP算法框架。数据准备首先准备训练数据与验证数据,为tsv文件。这⼀⽂件包含以制表符\t分隔的三列(idx, text, imgbase64),第一列是文本编号,第二列是文本,第三列是对应图片的base64编码。样例如下:64b4109e34a0c3e7310588c00fc9e157 韩国可爱日系袜子女中筒袜春秋薄款纯棉学院风街头卡通兔子长袜潮 iVBORw0KGgoAAAAN...MAAAAASUVORK5CYII=为了方便开发者,我们也提供了转换图片到base64编码的示例代码:import base64
from io import BytesIO
from PIL import Image
img = Image.open(fn)
img_buffer = BytesIO()
img.save(img_buffer, format=img.format)
byte_data = img_buffer.getvalue()
base64_str = base64.b64encode(byte_data) # bytes下列文件已经完成预处理,可用于测试:# train
https://atp-modelzoo-sh.oss-cn-shanghai.aliyuncs.com/release/tutorials/painter_text2image/T2I_train.tsv
# valid
https://atp-modelzoo-sh.oss-cn-shanghai.aliyuncs.com/release/tutorials/painter_text2image/T2I_val.tsv
# test
https://atp-modelzoo-sh.oss-cn-shanghai.aliyuncs.com/release/tutorials/painter_text2image/T2I_test.tsv模型微调我们采用以下命令对PAI-Diffusion模型进行fine-tune:easynlp \
--mode=train \
--worker_gpu=1 \
--tables=T2I_train.tsv,T2I_val.tsv \
--input_schema=idx:str:1,text:str:1,imgbase64:str:1 \
--first_sequence=text \
--second_sequence=imgbase64 \
--checkpoint_dir=./finetuned_model \
--learning_rate=4e-5 \
--epoch_num=3 \
--random_seed=42 \
--logging_steps=100 \
--save_checkpoint_steps=1000 \
--sequence_length=288 \
--micro_batch_size=16 \
--app_name=latent_diffusion \
--user_defined_parameters='
pretrain_model_name_or_path=alibaba-pai/pai-diffusion-general-large-zh
reset_model_state_flag=True
' 训练完成后模型被保存到./finetune_model/。模型离线推理模型训练完毕后,我们可以将其用于图片的生成,示例如下:easynlp \
--mode=predict \
--worker_gpu=1 \
--tables=T2I_test.tsv \
--input_schema=idx:str:1,text:str:1 \
--output_schema=text \
--outputs=./output.tsv \
--first_sequence=text \
--checkpoint_dir=./finetuned_model \
--random_seed=42 \
--logging_steps=100 \
--save_checkpoint_steps=500 \
--sequence_length=32 \
--micro_batch_size=16 \
--app_name=latent_diffusion \
--user_defined_parameters='
n_samples=2
write_image=True
image_prefix=./output/
'直接在线部署用户可以使用PAI-EAS自定义服务部署方式,使用如下config部署我们已经打包好的相关processor进行服务部署即可。我们提供了一个测试模型以供体验模型的推理速度,部署在A10/T4/V100 GPU的config参考如下,您需要将resource字段替换成自己的资源组:{
"baseimage": "registry.cn-shanghai.aliyuncs.com/eas/eas-worker-amd64:0.6.8",
"data_image": "registry.cn-shanghai.aliyuncs.com/pai-ai-test/eas-service:ch_ldm_v100",
"metadata": {
"cpu": 15,
"gpu": 1,
"instance": 1,
"memory": 50000,
"name": "ch_ldm_easynlp",
"resource": "请替换成自己的资源组",
"rpc": {
"keepalive": 50000,
"worker_threads": 5
}
},
"model_path": "http://pai-vision-exp.oss-cn-zhangjiakou.aliyuncs.com/wzh-zhoulou/dl_eas_processor/ch_ldm/ch_ldm_blade_220206/eas_model_20230206_noblade.tar.gz",
"processor_entry": "./app.py",
"processor_path": "http://pai-vision-exp.oss-cn-zhangjiakou.aliyuncs.com/wzh-zhoulou/dl_eas_processor/ch_ldm/ch_ldm_blade_220206/eas_processor_20230206.tar.gz",
"processor_type": "python",
"name": "ch_ldm_easynlp"
} 如果您需要体验Blade优化后的推理速度,可以在A10 GPU中进行部署,用户需要将上述model_path的值替换为http://pai-vision-exp.oss-cn-zhangjiakou.aliyuncs.com/wzh-zhoulou/dl_eas_processor/ch_ldm/ch_ldm_blade_220206/eas_model_20230206.tar.gz。当服务部署成功后,可以使用如下格式的request body进行测试:{
"text": "测试文本",
"num_inference_steps": 20,
"num_images": 1
}在线服务返回示例如下:{
"text": "测试文本",
"images_base64": ["...", "...", ...]
}images_base64字段返回生成图像的base64编码,生成图像数量由request body中的参数指定。微调后部署用户也可以使用EasyNLP进行微调训练后部署,需要将如下训练后的ckpt 打包替换上面json中的model_path字段:打包命令示例如下:cd finetuned_model/
tar czf finetuned_model.tar.gz config.json pytorch_model.bin RRDB_ESRGAN_x4.pth vocab.txt然后,采用前述config 将模型部署到PAI-EAS,建议使用的GPU型号为A10/T4/V100。如果用户需要使用Blade 加速,支持使用A10/A100 GPU机器资源进行部署,请联系我们获取Blade相关教程。未来展望在这一期的工作中,我们对PAI-Diffusion模型的功能进行重大升级,在EasyNLP框架中(https://github.com/alibaba/EasyNLP)支持全链路模型的调优和在线部署,使得用户能一键实现模型的调优,并且在阿里云PAI平台上便捷部署在线服务。此外,阿里云机器学习PAI团队也在持续推进中文多模态模型的自研工作,欢迎用户持续关注我们,也欢迎加入我们的开源社区,共建中文NLP和多模态算法库!Github地址:https://github.com/alibaba/EasyNLPReferenceChengyu Wang, Minghui Qiu, Taolin Zhang, Tingting Liu, Lei Li, Jianing Wang, Ming Wang, Jun Huang, Wei Lin. EasyNLP: A Comprehensive and Easy-to-use Toolkit for Natural Language Processing. EMNLP 2022Robin Rombach, Andreas Blattmann, Dominik Lorenz, Patrick Esser, Björn Ommer. High-Resolution Image Synthesis with Latent Diffusion Models. CVPR 2022Alec Radford, Jong Wook Kim, Chris Hallacy, Aditya Ramesh, Gabriel Goh, Sandhini Agarwal, Girish Sastry, Amanda Askell, Pamela Mishkin, Jack Clark, Gretchen Krueger, Ilya Sutskever. Learning Transferable Visual Models From Natural Language Supervision. ICML 2021Dao T, Fu D Y, Ermon S, et al. Flashattention: Fast and memory-efficient exact attention with io-awareness. arXiv preprint arXiv:2205.14135, 2022EasyNLP阿里灵杰回顾EasyNLP是阿里云机器学习PAI 团队基于 PyTorch 开发的易用且丰富的中文NLP算法框架,支持常用的中文预训练模型和大模型落地技术,并且提供了从训练到部署的一站式 NLP 开发体验。EasyNLP 提供了简洁的接口供用户开发 NLP 模型,包括NLP应用 AppZoo 和预训练 ModelZoo,同时提供技术帮助用户高效的落地超大预训练模型到业务。由于跨模态理解需求的不断增加,EasyNLP也将支持各种跨模态模型,特别是中文领域的跨模态模型,推向开源社区,希望能够服务更多的 NLP 和多模态算法开发者和研究者,也希望和社区一起推动 NLP /多模态技术的发展和模型落地。阿里灵杰:阿里云机器学习PAI开源中文NLP算法框架EasyNLP,助力NLP大模型落地阿里灵杰:预训练知识度量比赛夺冠!阿里云PAI发布知识预训练工具阿里灵杰:EasyNLP带你玩转CLIP图文检索阿里灵杰:EasyNLP中文文图生成模型带你秒变艺术家阿里灵杰:EasyNLP集成K-BERT算法,借助知识图谱实现更优Finetune阿里灵杰:中文稀疏GPT大模型落地 — 通往低成本&高性能多任务通用自然语言理解的关键里程碑阿里灵杰:EasyNLP玩转文本摘要(新闻标题)生成阿里灵杰:跨模态学习能力再升级,EasyNLP电商文图检索效果刷新SOTA阿里灵杰:EasyNLP带你实现中英文机器阅读理解阿里灵杰:EasyNLP发布融合语言学和事实知识的中文预训练模型CKBERT阿里灵杰:当大火的文图生成模型遇见知识图谱,AI画像趋近于真实世界阿里灵杰:PAI-Diffusion模型来了!阿里云机器学习团队带您徜徉中文艺术海洋
阿里云医学知识工程Metamed KE - 知识驱动智能应用
一、医疗健康领域的知识需求医疗产业数字化阶段经过信息化、互联互通等历史阶段,当前已发展到数智化阶段,以大数据分析和人工智能AI服务于临床管理和科学决策的场景纷纷落地。医疗健康领域的数据发生并存储于多机构,行业相关信息化厂商众多,数据在分析、使用治理的过程中,存在结构化、标准化等刚性诉求,而知识图谱及可靠的知识库,是支持医疗数据高效治理和医疗业务决策的重要工具。数据标准化– 制定标准:提供医疗卫生的国家标准、行业标准以及区域标准规范– 标准化能力:基于NLP人工智能技术,将不同机构、不同数据标准数据,按照相同统一数据标准进行标准化,为数据统计分析提效– 数据治理:在统一数据标准下,数据质量的量化和提升成为可能数据结构化– 实体识别:识别文本中的医学实体和属性,如:入院记录、出院记录中的阳性/阴性症状、体征、疾病、检查、治疗方案等实体;– 信息抽取:基于真实世界数据的NLP人工智能技术,对主诉、现病史、既往史等一诉五史的文本内容进行核心要素抽取,实现医疗文本数据的可计算知识图谱– 疾病知识图谱:提供疾病的诊断、分型、临床症状、合并症、检查检验指标、用药治疗、手术治疗等各类疾病相关知识的查询与展示– 药品知识图谱:提供药品的名称、成分、剂型、规格、用法用量、适应症、禁忌症、特殊人群、不良反应、药理作用等药品相关知识的查询与展示知识库– 覆盖药品、疾病、诊疗、检查检验等多种知识库、百万量级行业知识实体与关系二、医疗知识工程知识工程是运用自然语言处理以及工程化手段,高效率、大容量、可循证的获取行业领域知识的技术,并基于平台化工具进行知识生产、知识管理、以及知识应用。依托能够揭示医学本体复杂概念关系的关联组体系,从术语的语义特征出发构建术语语义网络,基于网络的表达能力和推理能力,实现医学诊疗逻辑的快速生产和本地化适配。知识工程链接数据和知识,是人工智能的重要支撑。知识生产知识生产是指从不同来源的、不同数据进行知识提取,形成知识的过程,而ToB、ToG行业是一个下游业务非常细碎的场景,不同的场景需要的知识内容、维度、颗粒度都可能不同,难以控制和预估。过去在这些碎片化的知识生产需求中,每一个任务都需要定制大量的数据标注和模型训练,标注代价大、开发周期长、交付成本比较高。通过对大量行业语料以及行业标准术语集的构建,利用概念上下位关系、属性关系、标签等启发式规则,可以对原始语料进行数据增强,采用基于prompt learning+不同维度(实体抽取、关系抽取、文本一致性等)、不同粒度(子词抽取、实体抽取、mask word等)的语言模型预训练任务,相比于传统的prompt信息抽取方案,基于知识工程的术语语义上下位关系,除了可以基于schema设计prompt范式,还可以基于实体的父节点、属性节点以及各种组合设计prompt范式,信息抽取类型更丰富,可以支持更多的知识抽取场景,帮助用户快速建模、快速验证知识生产效果,有助于快速获客和建立服务。知识融合知识融合是指将不同知识进行对齐、合并的操作,在ToB、ToG的场景下由于业务需求本身的多变性以及行业标准规范的快速迭代,原始知识是离散分布在整条行业链路的各个位置,知识融合需要包含对知识图谱、行业标准术语集以及客户原始数据等多种来源的知识和数据进行互联互通的融合。在数据智能化应用的大背景下,需要我们对于知识的加工能力深入到客户原始数据语义级层面,能够灵活地根据业务的需求从不同粒度、不同维度进行知识的融合对齐。依托于知识增强的预训练语言模型的强大表达能力,我们将知识的融合抽象为:· 术语语义抽取(Term Extractor):识别原始数据的原子语义成分以及语义词内容,实现对于原始数据语义级别的理解。· 术语语义匹配(Term Matcher):识别不同语义成分之间的相关性如同义词、上位词、下位词,实现知识的标准化,结构化。· 概念实体对齐(Entity Alignment):基于可配置的匹配规则,依据在原始知识图谱中实体的属性、属性值、上下位实体,实现对不同知识来源的实体进行匹配对齐。知识融合是知识构建过程中不可缺少的一环,良好的融合策略能够避免信息孤岛,使得知识连通更加稠密,提升知识的应用价值。知识计算知识计算是应用知识图谱的主要输出方式,通过庞大的知识本身直接赋能传统行业业务形态。在传统的数据智能化业务中,海量的数据伴生了如非标准数据的标准化、数据的语义智能化搜索、可定制的数据智能报表分析等大量新型的数据使用需求:· 知识推理:知识推理是指通过对原始知识的建模,对原有知识图谱进行补全和错误发现。通过启发式规则以及图嵌入算法(GCN、TransE、TransR等),对原始知识图谱进行表示学习,依据行业的业务特征执行知识推理过程,补全知识图谱中缺失的上下位、属性关系,以及识别图谱中的错误。· 知识链接:在实际场景中,客户的数据和输入往往是非规范和开放的,因此需要知识链接的算法识别业务场景关联的实际知识,实现知识和数据的串通,解决数据的语义多样性,数据的语义消歧,帮助客户能够自动化的精准理解数据,实现非标数据到标准化数据的映射,精确的数据搜索等业务痛点。· 挖掘计算:知识的挖掘计算可以基于原始知识的上下位、属性结构,大大丰富对海量数据统计分析的维度和颗粒度,能够支持更加丰富的数据报表场景,方便客户从不同维度感知数据的价值。阿里云依托医疗行业领域的经验积累和丰富的权威知识来源,运用人工智能技术进行知识生产、知识融合、知识管理,打造具备海量行业知识、可靠可解释的医学知识工程。阿里云医学知识工程具有权威性及多样性的知识来源:融合卫健委、医保局以及20+省份发布的诊断、手术、药品、收费项目术语编码目录;深度与广度兼备的语义网络,基于关联组体系的,术语多父节点语义级链接与属性;触达众多学科领域的医学实体,梳理来自政策文件、国家标准、技术文档、诊疗规范、专家经验、临床指南、公开目录、医学教材、国际标准等多个来源的权威医学知识,并进行结构化、标准化医学标注;灵活敏捷的知识输出,内嵌知识图谱推理引擎,具备API接口提供基于知识的人工智能算法模型,可以进行术语多维度查找、术语识别、语义轴心词解析。三、知识工程技术图谱建设知识图谱是一种结构化的语义知识库,以图结构来存储数据及其关联关系,图谱的基本组成单位是<实体,关系,实体>三元组,和实体及其相关属性的属性值对,实体之间通过关系相互联结,构成网状的知识结构。利用知识抽取技术对非结构化或半结构化数据进行信息抽取,挖掘出数据中的实体、关系以及属性后,需要完成实体对齐、消除歧义操作,之后进行知识本体结构的构建,构建好的知识本体还需要人工审核,进行质量校验评估,最终输出至上层应用所使用。知识本体构建知识本体构建,就是设计知识图谱的三元组结构,是整个知识图谱构建的基础,是后续的知识抽取、知识存储、知识推理等环节的铺垫。按照本体构建顺序,可将知识图谱构建过程分为“自上而下”和“自下而上”两种:(1)自上而下:基于人为定义知识图谱的本体结构,进行知识的抽取,对齐、推理等构建操作。这种构建方式结构清晰,方便设计,但由于需人力干预,有一定人力成本投入,多用于垂直领域;(2)自下而上:通过算法手段,由知识抽取得到的三元组逐步扩展构建本体结构。这种构建方式人工干预较少,但算法设计较复杂,多用于百科、知网等已经有一定关系结构的数据。本体结构示例医疗行业预训练语言模型随着 BERT 等预训练语言模型的出现,自然语言处理领域正式进入“预训练+微调”模式的新阶段。各大公司在通用文本领域提供了诸多可用的开源中文文本预训练模型,但是因为领域不同、训练数据之间的差异,导致这些预训练模型难以直接应用在特定行业领域。特定行业的专业知识性给通用预训练模型的领域自适应制造了障碍。大量相关行业知识广泛分布于互联网网页、专业书籍和相关专业研究文献中。从上述数据源抓取到的海量文本数据,经过梳理和清洗后,沉淀行业领域专业语料库。基于该大规模语料,挖掘出行业的常见概念、实体和有意义短语,结合全词掩码、短语掩码和动态掩码等技术,以自监督形式训练得到医疗行业属性的预训练语言模型MetaMed BERT。基于聚类增强的远程实体关系抽取很多专业行业知识分布广泛,但是标注数据较少。为了在标注数据匮乏的情况下,提高实体关系识别的准确率。知识图谱构建过程中,我们提出了基于聚类增强的远程监督方法:· 将获取的文本(互联网百科知识、专业书籍、科研文献)与专家预标注的小规模知识库对齐,生成远程监督数据集;· 基于行业预训练语言模型,为每个样本构建特征向量;· 在该远程监督数据集上预训练基于选择性注意力机制的深度学习关系抽取模型;· 将数据集中同一关系类别的样本合并,在每一个关系类别的样本上通过密度聚类算法获得若干簇;· 将簇作为包级别关系抽取模型的基本训练单元,训练深度学习关系抽取模型;· 利用更新后的深度神经网络得到样本新的特征向量,并跳转到步骤4),对步骤4)~6)进行迭代。本方法基于聚类增强可以有效降低噪声数据的影响,并减少对实体关系标注数量的需求,可加速图谱的构建。层次化的实体关系联合抽取通常情况下,在构建专业领域知识图谱时,一般采用两阶段的信息抽取方法:先利用实体识别模型领域实体,然后将领域实体作为关系识别模型的输入,经由关系识别模型检测出实体之间的关系。在这种方式下,实体抽取可以看作关系抽取的一个必要的预处理任务,利用条件随机场等概率图模型或者深度学习模型抽取命名实体。层次化的实体和关系联合抽取方案示意图在医疗等特定行业,实体和实体间关系本身具有着较强的相关关系:实体信息有助于实体关系的检测,同时实体关系也可以头尾实体的识别提供先验信息。因此,在行业图谱的构建中,我们提出了实用层次化的实体和关系抽取方案:对采集的数据做相应实体和实体关系标注后,训练模型的浅层部分去学习实体关系捕捉能力,同时模型的深层部分结合当前整合到的序列信息与浅层捕捉到的实体关系信息融合,给出最终的实体识别和关系识别结果。相比于pipeline的实体关系抽取算法,层次化的实体关系联合抽取能够将实体识别和关系抽取任务联合建模,利用关系抽取的特征对实体识别任务进行辅助,使两个任务不再被简单地分割开,并且减少由于pipeline所带来的级联错误。阿里云医学知识图谱示例四、医学知识使用场景及案例阿里云医学知识工程人工智能算法:医学术语标准化医学术语不仅体量大,且对于同一种疾病、药物、辅助检查、检验、症状、体征可以有多达上百种不同的表达方式。使用人工智能将这些多样化的表达方式准确又智能地转化为标准术语,称为医学术语标准化。传统基于机器学习的模型可解释性不足,需要大量的训练数据,难以快速适应不断变化的标准术语体系。基于知识图谱概念本体的关联网络,通过大量行业术语表的引入,丰富现有概念术语集、知识图谱文本表述形式,训练模型真正理解术语本身语义含义,具备可通用、可解释、弱监督、适用于多种标准术语体系等特性。知识工程获奖 – 中国健康信息处理大会比赛第一名中国健康信息处理大会(CHIP)是中国中文信息处理学会(CIPS)医疗健康与生物信息处理专业委员会开展的,是中文医疗健康信息处理领域最有影响力的会议之一。会议每年会开设公开的算法评测任务。今年会议发布了5个基础医疗算法任务,其中“任务五-临床诊断编码”是对患者疾病诊断和治疗信息的加工过程。临床诊断编码在评估医疗质量与医疗效率、设计临床路径方案、重点学科评价、医院评审、疾病诊断分级、医疗支付、合理用药监测等方面的应用越来越广泛,具有非常重要的现实意义与应用价值。由于该任务属于一种多标签分类任务,需要联合多种输入信息并充分挖掘其背后隐藏的含义,具有非常大的挑战性,特别是在需要精细化区分的慢病诊断编码、肿瘤与癌症诊断编码等领域。阿里云参赛的编码方案基于基础数字医疗产品HData与医学知识工程,研发团队将医疗知识与预训练模型进行融合,并提出一种Value-Level Pooling的结构,进一步结合知识工程对结果进行后处理来优化效果。由于编码效果出色,阿里云团队最终荣获第一名。
阿里云医疗数据安全与隐私计算
AI的发展推动了各行业的数字化与智能化,其在训练初期要依靠高质量的数据来进行训练并优化,以达到更高的准确性。但由于医疗数据绝对的敏感性与私密性,数据的拥有方采取高度保护措施,加大了科研部门有效利用数据进行医疗研究的难度。阿里云提供符合医疗行业数据特性的数据治理和服务全套工具,具备简单易用、生态开放、算法智能、数据安全等特性,帮科研及药物研发企业真正的管好数据、用好数据、发挥好数据智能价值。阿里云利用安全技术(TEE、MPC、FL 联邦学习、安全沙箱等)的医疗隐私安全分析,在保障数据隐私及安全前提下完成多方数据联合分析、联合训练、联合预测。一站式提供从数据接入到数据消费全链路的智能数据构建与管理的大数据能力。安全有效的建立与真实世界的数据链接。该技术在业内的疾病预警,临床试验,医药研发与应用管理,医保DRGs等领域均有探索型应用。系统架构亮点优势应用案例:人遗智能管理项目1.价值某药企为了提升药物上市审批过程中项目申报准备质量和效率,简化流程,为临床试验节约时间,项目组共享试试申报进度和状态,数据过程实现分类分级。2.面临的挑战收集和汇总信息分散的问题:收集时间周期长,多人准备,易出错,易重复;修改和审批不够便捷:多人审批,审批扭转不边界,信息反复修改版本多,难管理;项目组织过程资产透明度低:审批意见/修订痕迹等过程信息可石化集中度低.3.解决方案阿里云基于数据安全底座,为该跨国药企提供端到端的HGRAC人类遗传资源管理系统。阿里云利用医疗数据规范与安全的能力,在医疗知识图谱的基础上,为该系统提供材料质量系统自动化纠错,主数据统一管理,高校审批,全过程留痕等应用功能支撑。
graphSage还是HAN ?吐血力作综述Graph Embeding 经典好文
graphSage还是HAN ?吐血力作综述Graph Embeding 经典好文继 Goole 于 2013年在 word2vec 论文中提出 Embeding 思想之后,各种Embeding技术层出不穷,其中涵盖用于自然语言处理( Natural Language Processing, NLP)、计算机视觉 (Computer Vision, CV ) 以及搜索推荐广告算法(简称为:搜广推算法 )等。而在这其中,基于 Graph 产生 Embeding 的设计思想 就像这璀璨星河中最灿烂的明珠,不断带动着算法文明的征程滚滚向前~在以前的一篇文章 深入浅出理解word2vec模型 (理论与源码分析) 中我们已经知道: embedding 可以把理解为用一个一维度的浮点数组 (tensor) 来表示某一个item对象(单词或则用户等),两个item之间的语义关系计算可以用 他们的embeding 计算来代替。通常,我们会在 图数据结构上 跑一些机器学习/深度学习的任务,一般来说,主要包括 节点和边 的 分类和回归任务以及整图预测。(1) 节点的分类与回归:一般用于预测给定节点的类型。例如:一个用户为异常用户的可能性,以及某个人的消费能力预测。(2) 边的分类和回归:我们一般用于预测某2节点之间是否有边以及边的权重大小。例如:预测抖音上一个人是否会评论某条抖音以及他评论的情感的正负,或则京东上一个人购买某个商品的可能性以及会买几件等。(3) 整图预测:我们一般可以把用于给定2个图,分析两者的相似性质,或则预测生物大分子的特性。鉴于前一篇文章 一文揭开图机器学习的面纱,你确定不来看看吗? 过于详细,很多人看到最后的Graph Embeding 部分已经精神不能集中了。基于此,本文于上文中择优进行了裁剪,仅仅抽取出其中与Graph embeding相关的内容。下面让我们开始本文的阅读吧 ~(1) 图表示学习基础基于Graph 产生 Embeding 的设计思想不仅可以 直接用来做图上节点与边的分类回归预测任务外,其导出的 图节点embeding 也可作为训练该任务的中间产出为别的下游任务服务。而图算法最近几年最新的发展,都是围绕在 Graph Embedding 进行研究的,也称为 图表示学习(Graph Representation Learning ,GRL)。图表示学习, 顾名思义,是从图上学习到各个 节点或则边的嵌入(Embeding)表示, 是表示学习和图结构数据相结合产生的方法,其目的是:将高维稀疏的图结构数据映射到低维稠密向量,同时来捕获网络拓扑结构及网络中节点的内在特征。[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-NNTneVuG-1673425582202)(null)]在这里,我们必须要插入很重要的一点就是 :目前我们日常能接触到 传统机器学习/深度学习 和 图机器学习 以及 强化学习 的 样本 是有一些明显差别的。我们知道传统的 机器学习/深度学习 ,例如 前面一些文章提到的 点击率预估等模型 用到的样本,都是基于一个强假设,即:IID原则。三者的对比关系如下:传统机器学习:样本独立同分布(Independent Identically Distribution,IID),是指样本是从同一个数据分布里多次随机且独立的重复采样得到。图机器学习:样本不独立,样本间相互关联,依一定方式构建了图结构。强化学习:样本不独立,样本之间有时序上的前后关联。上一步的action产生的reward和下一步的action与reward在最初的数据集假设上有相互关联。而进两年的图表示学习,从分类上又可以大致把分成2类: 基于游走的图结构表示学习 和 基于卷积的图深度表示学习。(2)基于游走的图结构表示学习应该知道,我们这里所说 基于游走 是指在已经建好的 逻辑图 上面去以 某种方式遍历某些节点而得到一些节点序列 的方式。 基于随机游走采样节点的图表示学习比较经典的实现有以下几种,分别是:Deepwalk 、 Node2Vector 以及 LINE。再此之前我们需要明确一点就是: 基于游走的图结构表示算法 是一种基于邻域相似假设的算法,受启发于 word2vector 来学习节点的向量表示。(2.1) Deepwalk 算法Deepwalk 算法,又称为 深度游走算法。它通过随机游走的方式提取顶点序列,根据序列中顶点和顶点之间的共现关系(Co-occurrences) 来学习向量表示, 可以说随机游走是整个Deepwalk 最重要也最具有开创性的一部分算法。随机游走是一种可重复访问已访问节点的深度优先遍历算法。对于给定图中的某个节点,随机从邻居节点中抽取一个节点作为下一个访问点,直到访问序列达到预设长度。阿里巴巴的论文 Graph Embedding with Side Information(GES) 在 deepwalk 算法的基础上,引入了 item 的附属信息 来训练图嵌入, 可以解决商品冷启的问题,也是一种 deepwalk 算法 很经典且有效的拓展应用。综上所述: Deepwalk 使用随机游走算法在图上获得序列,使用 Word2Vec 中的 Skip-Gram 算法来学习节点的Embedding, 是一种很经典的 Walk + Skip-Gram Loss 的架构。(2.2) Node2Vecter 算法我们知道,图和其他如队列、栈、树等基础数据结构一样,也具有 可遍历 的性质。我们在图上有目的的遍历算法又可以两种: 深度优先(DFS) 与 广度优先(BFS) 。广度优先(DFS) 可以获得 每个节点的所有邻居,强调的是 局部微观视图; 而 深度优先(BFS) 则倾向于探索更大的网络结构,只有从更高的角度才能观察到更大的集群, 具有 全局视野 的潜质。Node2Vector 在游走方式上对随机游走算法进行了改进,设计了一种灵活的邻居节点抽样策略,它允许用户在BFS 和DFS之间进行平衡。其具体公式如下图所示:其中:P 为返回参数,q为进出参数 。p,q 分别控制着当时在邻居节点中采样的概率。我们从上述公式也能看出:Node2Vec 算法引入了两步随机游走算法: 第一步从节点t 走到节点v, 第二步从节点v游走到其邻居节点,如 x1,x2,t 等。节点v 跳转到其邻居节点的概率不再是随机分布的,而是根据节点t 和节点x 共同决定, 可以表示为 f( vt+1 / vt, vt-1 ) , 这里是根据节点 t 与节点 x 的最短路径来确定。我们可以想象一下,我们处于 节点v 的位置,x 表示下一个节点,t表示上一个节点。x到t的距离有三种:0、1和2。0表示回到来的节点,1表示停留在当前节点,2表示去向当前位置下一个和来的节点不同的邻居节点。这里需要结合上面的公式以及公式成立的条件,仔细想清楚采样逻辑。综上所述: 对于 node2vec算法来说,也是基于上面提到的 Walk + Skip-Gram Loss 的架构。 其中&&改进的采样方式决定着在图上得到的行走序列,近一步决定着训练的嵌入的重点**。(2.3) LINE 算法LINE 算法的全称是:Large-scale Information Network Embedding ,其是对于上述两种算法的更进一步的改进。书接上文,上文介绍的 Deepwalk 和 Node2Vector 算法 均只考虑了 成边的顶点之间的相似度,并未对不成边顶点之间关系的建模。 而本小节介绍的 LINE算法 即考虑了成边顶点对之间的关系(称为局域相似度),也考虑了未成边顶点对之间的相似度(称为全局相似度)。LINE算法为图的局域相似度和全局相似度设计了专门的度量函数,适用于无向图与有向图。在line算法的建模过程中,该算法的局域相似度用 一阶相似度(First-order Promimity ) 描述, 表示图中直接相连的节点之间的相似度。其建模公式如下图所示:其中:公式表示的是 Vi 、Vj 之间的一阶联合概率。该算法的 全局相似度 用 二阶相似度(Second-order Proximity) 来衡量 2个节点的邻居之间的相似度。二阶相似度假设那些具有相同邻居节点的节点在特征上较为相似,直观来说,就是拥有共享邻居的节点更为相似。其建模公式如下图所示:对上面的公式,我们可以这样来通俗理解: 对某个节点,另一个节点有多大概率是它的邻居(条件概率分布)以及是否真实数据集中是它的邻居(经验分布),这2个分布要距离尽可能的小。其实就是学习的假如他们的邻居相似的话,让他们本身的embeding也尽可能的相似。综上所述: LINE算法通过合并一阶和二阶相似的优化目标完成最终的模型的优化,而并不紧紧基于有边存在的节点对。(2.4) 异构图 Metapath 学习上面所说的算法,通常都是在同构图上进行采样节点的算法,当然我们也可以直接把 异构图转成同构图 用同样的方法来学习各个节点之间的关系,但是这样也就失去了构建异构图时更细腻的不同节点类别本身带有的信息。例如:把用户和商品用一样的建模方式,总归是不合理的。在具体实践中,为了分辨异构图特点,引入了 元路径(meta-path) 的概念。元路径是在 异构图G上按照元路径模式 N1 -R1-> N2 -R2->N3 来游走产生路径。其中 N表示节点类型,R表示边关系类型。具体如下图所示:我们知道:元路径游走是一种有偏游走。而基于元路径游走也产生了2种相关的算法,分别是: MetaPath2Vector 算法和 MetaPath2Vector++ 算法。MetaPath2Vector 算法是基于 Metapath + Skip-Gram Loss 架构。 MetaPath2Vector 在 SoftMax 环节中没有分辨顶点类型,而是将所有顶点视作统一类型的顶点,也就是说在负采样环节采样的负样本并没有考虑顶点的类型。而 MetaPath2Vector++ 则在softmax环节中,根据不同类型的顶点的上下文进行了归一化,也就是说给 Skip- Gram模型 每种节点类型 制定特定的负采样集合,进行了更细粒度的负采样控制。(3) 基于卷积的图深度表示学习说到 图卷积 (Graph Convolutional Network , GCN) 算法, 不得不提到 卷积算法的应用场景 与 使用图算法的数据特性。(3.1) 图卷积基础知识准备(3.1.1) 欧几里得数据和非欧几里得空间数据的概念现实生活中有很多不规则的数据,例如在社交,电商,交通等领域中,用到的大都是实体之间的关系数据。这些数据通过庞大的结点和负责的交互关系,形成了特有的图结构,这种结构是非欧几里得空间数据。这里我们需要区分下 欧几里得数据 和 非欧几里得空间数据的概念。欧几里得数据: 它是一类具有很好的平移不变性的数据。对于这类数据以其中一个像素为节点,其邻居节点的数量相同。所以可以很好的定义一个全局共享的卷积核来提取图像中相同的结构。常见这类数据有图像、语言等。而 非欧几里得数据,它是一类不具有平移不变性的数据。这类数据以其中的一个为节点,其邻居节点的数量可能不同。常见这类数据有知识图谱、社交网络、化学分子结构等等。当然,我们也可以用CV 中填充图片的 pading方法来对节点邻居进行填充,但是假如说每个节点都需要不同粒度的填充的话,那实际实现是基本不可行的, 并且也没必要。这里我们可以看到:图并不像图像中有着固定的邻居,图像上的卷积方法并不能在图上直接套用。现实中,算法工程师们的创新总是无穷无尽的。所以该问题就有了以下的解决思路:把非欧空间转换成欧式空间, 找出一种可处理变长邻居节点的卷积核。(3.1.2) 图与拉普拉斯矩阵拉普拉斯算子 是 n维欧式空间 中的一个二阶算子,但如果将算子退化到离散二维图像空间,变成了 边缘检测算子。拉普拉斯算子描述 中心像素与局部上下左右四邻居像素 的差异,这个性质可以用作图像上边缘检测算子。在图信号中,拉普拉斯算子也被用来描述中心节点与邻居节点之间的信号差异。在N个节点的图G=(V,E) 中,拉普拉斯定义为 L= D – A 。 其中D为 图G的 度对角矩阵,D = diag(d(v1),…d(vn))A(G)=(aij)是 图的 邻接矩阵。拉普拉奇定义为:度对角矩阵减去邻接矩阵。我们可以知道: 拉普拉斯矩阵含有图的结构信息,作用可以理解为把非欧几里得空间数据用可以类似于欧几里得空间的处理方法进行处理。(3.1.3) 谱域卷积与空域卷积传统意义上的 傅立叶变换 是 时域到频域 的变换,而这种变化是通过一组 特殊的正交基 实现。结合上文所说的拉普拉斯矩阵,我们用 拉普拉斯矩阵表示图 , 它有一个很好的性质是: 傅里叶变换需要 基底ewit, 这个用拉普拉斯矩阵的 特征分解函数 就完成了 两者的结合。谱卷积神经网络 就是直接根据 全图傅立叶卷积定义 的,其有一个缺点就是难以从卷积形式中保证节点的信息更新由近处邻居贡献,即无法保证局部性,且训练计算度大。这里,我们又要引入 切比雪夫网络 的概念,它与谱卷积神经网络最大的不同就是: 不需要在对拉普拉斯矩阵进行特征分解,不用做全图的卷积计算,而且它的卷积核具有严格的空间局部性,仅仅考虑了中心节点的K阶邻居作为邻域节点。而下文要说到的 图卷积(CCN) 则是只考虑一阶切比雪夫多项式的算法。**空域卷积(spatial Convolution)**则是从邻居节点信息聚合的角度出发,更加关注节点的局域环境。图卷积算法中,我们将 邻接矩阵 与 节点的特征向量 相乘,本身具有聚合邻居节点信息的属性,已经同时具有 空域与谱域 的意义。(3.2) 图卷积介绍书接上文,我们先来说说最简单的 图卷积网络(GCN),我们知道:空域卷积与卷积神经网络的设计理念相似,其核心在于聚合邻居节点的信息,直接将卷积操作定义在每个节点的链接关系上。通俗点理解,GCN实际上跟CNN的作用一样,就是一个 特征提取器,只不过它的特征提取对象是图数据。其中,D负责提供权值的矩阵,邻接A矩阵控制应该融合哪些点, H表示上一层的embedding参数。当然,我们在训练完成模型之后,拿到embeding之后可以灵活运用,进行下游的分类和回归任务。这里我们需要注意: GCN正常层数只需要2–5层即可。 因为节点每更新一次,感受野就变大一些,如果网络太深,那么每个节点就会受无关节点的影响,有些节点的学习会有趋同的趋势,引起 过平滑 问题,导致最终目标效果反而下降。(3.3) Graph Sage介绍Graph Sage 全称为:Graph Sample And AGGregate, 就是 图采样与聚合。在图神经网络中,节点扮演着样本的角色。从前文我们已经了解到:在传统深度学习中,样本是 IID 的,这使得 损失可以拆分为独立的样本贡献,可以采用小批量的优化算法来并行处理总的损失函数。但是图的样本之间是有着关系的,早期的GCN等网络都是采用全批次梯度下降方法进行训练,这种方式需要存储整个图的邻接矩阵。2017 年提出的 Graph Sage 算法,基于GCN 邻居聚合的思想,但并不是把全部邻居聚合在内,而是聚合部分邻居,随机采样邻居K跳的节点。全邻居采样中给出了节点的抽取1跳和2跳的形式,而GraphSage只用抽取固定个数的近邻。如下图所示:该算法的核心步骤是:Sample 和 Aggregatesample : 采样,从内到外,选择固定个数的近邻,不够就重复采样aggregate:聚合,从外到内 ,聚合被采样到的那些节点的embedding , 因为邻居节点也构成了一个embeding 序列,不光可以直接Sum求和,可以使用各种聚合方式,例如:max ,mean , lstm , transform 等。注意: Graph Sage 算法本质上是 采样生成一个个小的子图 进行训练,局部更新,也可以对未出现节点的预测。(3.4) 异构图的卷积(RGCN)前文所说的GCN均是针对 同构图 的算法,而为了 捕捉不同节点的不同的关系 情况,工程师们又设计了基于异构图关系的卷积算法RGCN,全称是: Relation Graph Convolution Neural Networks。其中:R 的个数也就是边类型的个数,论文中称为relation-specific。 其区别在于RGCN中,通往一个节点的不同边可以代表不同的关系。在普通的GCN中,所有边共享相同的权重W。在R-GCN中,不同类型的边只有同一种关系才会使用同一个权重。在上面公式中,我们可以看到:公式使用了 权重矩阵用于融合异构图中节点不同的邻居关系 。既然邻居节点又很多,可以构成一个序列,那我们是否可以学习出 不同类型的邻居占据有不同的权重贡献程度 呢? 类似于起到一个 Attention 的作用? 这就与下文我们提到的 GAT算法 与 HAN算法 有关了。(3.5) Attention相关算法 GAT 与 HAN从上文我们可以知道: GCN 首次提出了 卷积的方式融合图结构 特征,提供一个全新的视角。但是,它也有一些显而易见的主要缺点:(1) 融合时 边权值固定 的,不够灵活。(2) 可扩展性差,因为它是全图卷积融合,全图做梯度更新,当图比较大时,这样的方式就太慢了,不合适。(3) 层数加深时,结果会 极容易过平滑 ,每个点的特征结果都十分相似。针对上面提出的不足,GAT 可以解决问题1 ,GraphSAGE 可以解决问题2,DeepGCN等一系列文章则是为了缓解问题3做出了不懈努力。首先说说GAT,我们知道 GCN每次做卷积时,边上的权重每次融合都是固定的,可以加个 Attention,让模型自己学习 边的权重,这就是GAT网络了,下面是 核心Attention 的定义公式:同理,HAN 针对异构图的不同类型权重融合进行了更进一步的精心设计,如下图所示:从上图可以看到:HAN是一个 两层的attention架构,分别是 节点级别的attention 和 语义级别的attention。前面我们已经介绍过 metapath 的概念,这里我们不在赘述,不明白的同学可以翻看 本文章前面的内容。Node Attention: 在同一个metapath的多个邻居上有不同的重要性。Semantic Attention: 多个meta path有不同的重要性。在进行 图传播计算 的过程中,首先 固定metapath的类别 Φi ,通过 节点级别的attention 将中心节点的基于 Φi 的邻居节点进行聚合,得到每个metapath的特征向量 ZΦi ,然后再通过 语义级别的attention 将特征向量 ZΦ 进行聚合,得到最终的特征向量 Z 。最后通过一个MLP得到这个节点的预测值 yi 。(4) 图上消息传递元语 MPNN我们在实现图算法实现的时候,必不可少的就是要弄明白图上消息传播的计算逻辑,这里介绍一下 MPNN ,全称是:Massage Passing Neural Network 。我们都知道 tensorflow 或则 pytorch 是 DNN深度学习框架,而实现 Graph Embeding 算法则需要使用 图深度学习/机器学习框架。基于 tensorflow 的图深度学习框架,这里推荐阿里巴巴 GraphLearn, 以前也叫AliGraph, 能够基于docker 进行环境搭建,容易上手。而 基于 pytorch 的图深度学习框架,这里则推荐亚马逊的 DGL ( Deep Graph Library ), 其完善而又通俗易懂的中文官方文档,简直是我的最爱,强烈推荐!!!后面 我们的图机器学习/深度学习代码也基于 dgl 来实现 。首先这的消息传递元语说明,也是基于dgl。dgl的消息传递范式 如下:图上已经说的非常详细,我就不在赘述了。同时,我们可以使用dgl的基础消息范式进行我们自己网络特征处理流程里消息传递过程的定义,举个栗子如下:@ 欢迎关注微信公众号:算法全栈之路
def message_func(edges):
return {'he': edges.src['hu'] + edges.dst['hv’]}
# 推荐: dgl.function.u_add_v('hu', 'hv', 'he')
def reduce_func(nodes):
return {'h': torch.sum(nodes.mailbox['m'], dim=1)}
# 推荐:dgl.function.sum('m', ’h‘)
# 单独调用逐边计算:
graph.apply_edges(fn.u_add_v('el', 'er', 'e’))
# 综合函数,推荐:
graph.update_all(fn.u_mul_e('ft', 'a', 'm'), fn.sum('m', 'ft'))如上文所示:Update_all() 参数是一个消息函数、一个聚合函数和一个更新函数。更新函数update() 是一个可选择的参数,用户也可以不使用它,而是在 update_all 执行完后直接对节点特征进行操作。由于更新函数通常可以用纯张量操作实现,所以DGL不推荐在 update_all 中指定更新函数。到这里,一文揭开图机器学习的面纱,你确定不来看看吗 ? 的全文就写结束了,后面会针对更详细的图上任务结合进行讲解~码字不易,觉得有收获就点赞、分享、再看三连吧~算法全栈之路
一文揭开图机器学习的面纱,你确定不来看看吗
一文揭开图机器学习的面纱,你确定不来看看吗近年来,由于图数据结构对实体间关系建模 的强大表征能力和可解释性,在图上运行一些传统机器学习算法或深度学习算法已成为人工智能领域的 焦点分支。在现实生活中,我们有很多不规则的数据,例如:在社交、电商、交通,甚至在生物学、高能物理学等领域以及日常社会经济生活中,我们用到的大都是实体间的关系数据,而这些关系数据中 隐含了大量可挖掘 的信息 。马克思主义唯物辩证法曾说:世界上的事物都不是孤立存在的,而是 普遍联系 和 永恒发展 的。因为 万物互联 ,这些事物通过庞大的 结点和彼此间复杂的交互关系 ,形成了特有的 图结构,而事物之间存在关系则可以 建模成图 ,我们就可以使用图这种数据结构来灵活的建模并且学习应用它们。注意:本文这里所说的图机器学习算法涵盖了图深度学习部分,图深度学习部分第三小节有讲解。通常,我们会在 图数据结构上 跑一些机器学习/深度学习的任务,一般来说,主要包括 节点和边 的 分类和回归任务以及整图预测。(1) 节点的分类与回归:一般用于预测给定节点的类型。例如:一个用户为异常用户的可能性,以及某个人的消费能力预测。(2) 边的分类和回归:我们一般用于预测某2节点之间是否有边以及边的权重大小。例如:预测抖音上一个人是否会评论某条抖音以及他评论的情感的正负,或则京东上一个人购买某个商品的可能性以及会买几件等。(3) 整图预测:我们一般可以把用于给定2个图,分析两者的相似性质,或则预测生物大分子的特性。本来只打算写一个 图算法综述,后来发现越写越多,一些内容分开又嫌少,还是挤一挤到当前文章吧,不管了,就这样吧。仅对图的 Graph Embeding 感兴趣的同学,可以直接阅读第三小节哦。万字长文,可以点赞收藏把作为基础知识回顾与图知识的综述使用哦~本文是作者开始写的关于 图机器学习 的第一篇小作文,以后会陆续的记录一些在 图上使用机器学习与深度学习 进行一些 分类与回归 任务 的相关文章和知识点,欢迎关注我的公众号:算法全栈之路 了解后续吧。下面让我们开始本文的阅读吧 ~(1) 图基础简介首先,对于 图结构 ,相信我们很多学过计算机课 数据结构 的同学都不会陌生。它和我们在 数据结构 书上学到的队列、栈、树结构等一样,就是一种普通的数据结构,他们都是建模 item 之间关系的数据结构,不过队列、栈甚至树等对数据的 组织形式 做了一些基础性限制,而图相对于队列等这些基础数据结构,只是更加复杂而已,但是依然 摆脱不了 基础数据结构 的特性。这里这样说,主要是希望我们读者 不要把 图数据结构 想象的非常复杂和高不可攀,以至于 “谈图色变” 。就算是图是一个 魅力十足 的大美女,也让我们先揭开她的 神秘面纱 一睹它的芳容,并在接下来一段时间里,逐步分析她、了解她,直到最后征服她! so , let us go !!!(1.1) 图的结构特性书接上文,我们知道: 图也是数据结构的一种,并且 它是一组 对象(节点) 及其 关系(边) 进行建模所形成的一种多对多 的数据结构。在计算机科学中,图是有节点(顶点) 和 节点之间的边 所组成的,它通常表示为 G(V,E) 。 其中 G 表示一个图,V是图G中节点的集合,E是图G中边的集合。图可以长这样:(1.2) 图的分类现实中事物之间的关系是 复杂且种类繁多 的,图也是如此。我们可以根据图的各种特性,进行简单的分类。(1) 图上边有无方向,分为 有向图和无向图。有向图意味着这种关系是单方面的,类似于微博的关注关系和航站之间是否有航班的关系。无向图这种关系则是相互的,类似于彼此是朋友关系。描述对称与非对称关系。(2) 节点和边类型是否只有一种,分为同构图和异构图同构图(Homogeneous Graph) , 类似于简单社交网络中,表示唯一类型节点和边的用户和用户是否相似的图则为同构图。异构图 (Heterogeneous Graph), 图中节点类型和边类型超过两种的图称为异构图。(3)多重图在多重图中,同一对节点之间可以有多条(有向)边,包括自循环的边。例如:两名作者可以在不同年份共同署名文章, 这就带来了具有不同特征的多条边。(4) 属性图图的 节点和边是否带有属性 特征。在我们的图中,节点和边均可以带有多个不同类型的属性。假设图中有一个用户节点,则该节点可以带有年龄、性别、图片、群体、消费能力,兴趣等属性,可以是标量,也可以是向量, 甚至可以是图片和音乐这种比较复杂的数据。假设图中有一条用户指向商品的边,则这个边上可以携带用户点击该商品的点击率,购买率,用户购买该商品提供的gmv 以及兴趣等属性。同样,这些属性也可以是标量或向量。带权图和标签图只是属性图的一种简单形式。以上各种图分类之间是可以混乱组合的,好比我们同时组合出 有向异构属性多重图,那这个图可以拟合关系的能力是非常全面并且强大的。(1.3) 图的属性这里,我们只简单列出常用的几个属性,如下:(1) 度(Degree)连接顶点的边的数量称为该 顶点的度 D(v)。无向图只有度,有向图有入度和出度之区分。属性图又有基于某种关系的度,例如用户登录关系的度,包括用户用ip登录,设备登录,邮箱登录多种关系的度的和。(2)路径(Path)与简单路径依次有序遍历顶点序列形成的轨迹称为路径。没有重复顶点的路径称为简单路径,包含相同顶点相同的路径2次以及以上的顶点称为环。这里又可以分为有环/无环图。注意:添加自环可以有效缓解图关系的稀疏性。(3)连通性与强连通性无向图中若每一对不同的顶点之间都存在路径,则该无向图是连通的。若这个条件在有向图里也成立,那么就是强连通的。(1.4) 图的存储从上文中,我们知道:图是一种比较复杂的数据结构。为适应图数据的CRUD,采用的存储结构有:邻接矩阵、邻接表、十字链表等。(1) 邻接矩阵存储了顶点与顶点之间是否有边存在,附带顶点数组和边数组。无向图的邻矩阵是对称阵,行和列的和是即为顶点的度。有向图的邻矩阵是非对称阵,行为出度和列为入度。邻接矩阵可以推出度矩阵。(2) 邻接表和逆邻接表为了方便邻接点个数的增减,多采用链表存储。顶点用专用数组存储,指针指向链表的起始地址。有向图的邻接表只存储了出度顶点。逆邻接表存储了入度顶点。临接表对于无向图是非常完美的数据结构。(3) 十字链表也叫正交链表, 为了存储有向图专门设计的一种数据结构,整合了邻接表和逆邻接表。每个顶点设置2个指针域,即顶点表数组的每个顶点有指向入边表的指针也有指向出边表的指针。假如说图太大单机存不下的话 (例如百度跑所有网页的pageRank算法),对图的结点和边进行分区存储,然后用spark开发整个图的存储与消息传递计算的过程。例如: 腾讯的spark on angel 框架, 百度的spark on paddle 框架。中间又涉及到到图分区策略,边切分还是顶点切分。其中,边分区要求同一个顶点出去的边在同一个分区,顶点分区要求同一个边的2个顶点在同一个分区。到这里我们图基础简介就说完了,下面开始 图上传统机器学习算法的阐述吧 ~(2) 图上传统机器学习算法我们在图数据结构上,可以开发整个图的存储与消息传递计算的过程,实现一些传统的机器学习类算法。下面简单列举一些在spark GraphX里包含的算法。(2.1) PageRank算法该算法可以在任何有向图中进行每个顶点权值的计算,也可以使用该算法进行 网页排名 ,找出重要的图节点。Pagerank专利属于斯坦福,商标属于Google。算法描述:(1) 用 1/N的页面排名值初始化每个顶点,N是图中顶点总数。(2) 循环:每个顶点沿着出发边发送PR值1/M,M为当前顶点的出度。当每个顶点从相邻顶点收到其发送的PR值后,合计这些PR值后作为当前顶点的新PR。图中顶点的PR与 上一个迭代相比没有显著的变化,则退出迭代。算法变种引入了抑制因子(resetProb), 随机访问页面,而不是当前访问页面链接出去的。图上消息传递原理关键字: 顶点发送消息、 相邻点收到消息、合计收到的值更新自己的值。(2.2) 衡量连通性:三角形数我们不光可以使用 pagerank 度量单个顶点的影响力,我们也可以通过计算三角形数以衡量图或则子图的连通性,也就是顶点如何共同相互影响。三个顶点均有边相互联系。图和子图有越多的三角形则连通性越好,这个性质可以用于确定小圈子(图中有很多相互关联的部分)。可以用于推荐,也可以识别垃圾邮件。假如说一个人对很多有边,但是这很多人之间却没边,则不会形成三角关系。(2.3) 查找最少的跳跃:最短路径(ShortestPaths)我们可以使用图上内置的最短路径算法来计算跳跃数,并以及跳跃顺序返回距离。 我们可以得到图上任意两个节点之间的最短距离,没有连通的点距离为无穷大。(2.4) 找到孤岛人群:联通组件 (ConnectedComponents)连通组件能在社交网络图中找到一些孤立的小圈子,并把他们在数据中心网络中区分开。连通组件算法与有向图与无向图都有关联。(2.5) 标签传播算法(LabelPropagation Algorithm)在 LPA 算法中,节点的标签完全由它的直接邻居决定。标签传播算法是一种基于标签传播的局部社区发现算法,其基本思想是节点的标签(community)依赖其邻居节点的标签信息,影响程度由节点相似度决定,并通过传播迭代更新达到稳定。(2.6) Louvain算法Louvain算法是社区发现领域中经典的基于模块度最优化的方法,且是目前市场上最常用的社区发现算法。社区发现旨在发现图结构中存在的类簇。综上所述: 图上的传统机器学习算法大致可以分为 路径搜索算法、中心性算法 以及 社群发现算法等。其中路径搜索算法包括 DFS & BFS、最短路径、 最小生成树、随机游走等;而 中心性算法包括 DegreeCentrality、 Closeness Centrality、BetweennessCentrality、PageRank 等; 社群发现算法: Measuring、Components、Label Propagation , Louvain Modularity 等。我们可以灵活选择各种算法,建模自己业务中遇到的问题。如果发现上述这些问题都没有办法把问题解决或则解决问题的效果不够好,可以接着试试下面的 graph embeding 相关的算法 呢!!!(3) Graph Based-on Embeding 的若干算法继 Goole 于 2013年在 word2vec 论文中提出 Embeding 思想之后,各种Embeding技术层出不穷,其中涵盖用于自然语言处理( Natural Language Processing, NLP)、计算机视觉 (Computer Vision, CV ) 以及搜索推荐广告算法(简称为:搜广推算法 )等。在以前的一篇文章 深入浅出理解word2vec模型 (理论与源码分析) 中我们已经知道: embedding 可以把理解为用一个一维度的浮点数组 (tensor) 来表示某一个item对象(单词或则用户等),两个item之间的语义关系计算可以用 他们的embeding 计算来代替。这种基于Graph 产生 Embeding 的设计思想不仅可以 直接用来做图上节点与边的分类回归预测任务外,其导出的 图节点embeding 也可作为训练该任务的中间产出为别的下游任务服务。而图算法最近几年最新的发展,都是围绕在 Graph Embedding 进行研究的,也称为 图表示学习(Graph Representation Learning ,GRL)。图表示学习, 顾名思义,是从图上学习到各个 节点或则边的嵌入(Embeding)表示, 是表示学习和图结构数据相结合产生的方法,其目的是:将高维稀疏的图结构数据映射到低维稠密向量,同时来捕获网络拓扑结构及网络中节点的内在特征。在这里,我们必须要插入很重要的一点就是 :目前我们日常能接触到 传统机器学习/深度学习 和 图机器学习 以及 强化学习 的 样本 是有一些明显差别的。我们知道传统的 机器学习/深度学习 ,例如 前面一些文章提到的 点击率预估等模型 用到的样本,都是基于一个强假设,即:IID原则。三者的对比关系如下:传统机器学习:样本独立同分布(Independent Identically Distribution,IID),是指样本是从同一个数据分布里多次随机且独立的重复采样得到。图机器学习:样本不独立,样本间相互关联,依一定方式构建了图结构。强化学习:样本不独立,样本之间有时序上的前后关联。上一步的action产生的reward和下一步的action与reward在最初的数据集假设上有相互关联。而进两年的图表示学习,从分类上又可以大致把分成2类: 基于游走的图结构表示学习 和 基于卷积的图深度表示学习。(3.1) 基于游走的图结构表示学习应该知道,我们这里所说 基于游走 是指在已经建好的 逻辑图 上面去以 某种方式遍历某些节点而得到一些节点序列 的方式。 基于随机游走采样节点的图表示学习比较经典的实现有以下几种,分别是:Deepwalk 、 Node2Vector 以及 LINE。再此之前我们需要明确一点就是: 基于游走的图结构表示算法 是一种基于邻域相似假设的算法,受启发于 word2vector 来学习节点的向量表示。(3.1.1) Deepwalk 算法Deepwalk 算法,又称为 深度游走算法。它通过随机游走的方式提取顶点序列,根据序列中顶点和顶点之间的共现关系(Co-occurrences) 来学习向量表示, 可以说随机游走是整个Deepwalk 最重要也最具有开创性的一部分算法。随机游走是一种可重复访问已访问节点的深度优先遍历算法。对于给定图中的某个节点,随机从邻居节点中抽取一个节点作为下一个访问点,直到访问序列达到预设长度。阿里巴巴的论文 Graph Embedding with Side Information(GES) 在 deepwalk 算法的基础上,引入了 item 的附属信息 来训练图嵌入, 可以解决商品冷启的问题,也是一种 deepwalk 算法 很经典且有效的拓展应用。综上所述: Deepwalk 使用随机游走算法在图上获得序列,使用 Word2Vec 中的 Skip-Gram 算法来学习节点的Embedding, 是一种很经典的 Walk + Skip-Gram Loss 的架构。(3.1.2) Node2Vecter 算法我们知道,图和其他如队列、栈、树等基础数据结构一样,也具有 可遍历 的性质。我们在图上有目的的遍历算法又可以两种: 深度优先(DFS) 与 广度优先(BFS) 。广度优先(DFS) 可以获得 每个节点的所有邻居,强调的是 局部微观视图; 而 深度优先(BFS) 则倾向于探索更大的网络结构,只有从更高的角度才能观察到更大的集群, 具有 全局视野 的潜质。Node2Vector 在游走方式上对随机游走算法进行了改进,设计了一种灵活的邻居节点抽样策略,它允许用户在BFS 和DFS之间进行平衡。其具体公式如下图所示:其中:P 为返回参数,q为进出参数 。p,q 分别控制着当时在邻居节点中采样的概率。我们从上述公式也能看出:Node2Vec 算法引入了两步随机游走算法: 第一步从节点t 走到节点v, 第二步从节点v游走到其邻居节点,如 x1,x2,t 等。节点v 跳转到其邻居节点的概率不再是随机分布的,而是根据节点t 和节点x 共同决定, 可以表示为 f( vt+1 / vt, vt-1 ) , 这里是根据节点 t 与节点 x 的最短路径来确定。我们可以想象一下,我们处于 节点v 的位置,x 表示下一个节点,t表示上一个节点。x到t的距离有三种:0、1和2。0表示回到来的节点,1表示停留在当前节点,2表示去向当前位置下一个和来的节点不同的邻居节点。这里需要结合上面的公式以及公式成立的条件,仔细想清楚采样逻辑。综上所述: 对于 node2vec算法来说,也是基于上面提到的 Walk + Skip-Gram Loss 的架构。 其中&&改进的采样方式决定着在图上得到的行走序列,近一步决定着训练的嵌入的重点**。(3.1.3) LINE 算法LINE 算法的全称是:Large-scale Information Network Embedding ,其是对于上述两种算法的更进一步的改进。书接上文,上文介绍的 Deepwalk 和 Node2Vector 算法 均只考虑了 成边的顶点之间的相似度,并未对不成边顶点之间关系的建模。 而本小节介绍的 LINE算法 即考虑了成边顶点对之间的关系(称为局域相似度),也考虑了未成边顶点对之间的相似度(称为全局相似度)。LINE算法为图的局域相似度和全局相似度设计了专门的度量函数,适用于无向图与有向图。在line算法的建模过程中,该算法的局域相似度用 一阶相似度(First-order Promimity ) 描述, 表示图中直接相连的节点之间的相似度。其建模公式如下图所示:其中:公式表示的是 Vi 、Vj 之间的一阶联合概率。该算法的 全局相似度 用 二阶相似度(Second-order Proximity) 来衡量 2个节点的邻居之间的相似度。二阶相似度假设那些具有相同邻居节点的节点在特征上较为相似,直观来说,就是拥有共享邻居的节点更为相似。其建模公式如下图所示:对上面的公式,我们可以这样来通俗理解: 对某个节点,另一个节点有多大概率是它的邻居(条件概率分布)以及是否真实数据集中是它的邻居(经验分布),这2个分布要距离尽可能的小。其实就是学习的假如他们的邻居相似的话,让他们本身的embeding也尽可能的相似。综上所述: LINE算法通过合并一阶和二阶相似的优化目标完成最终的模型的优化,而并不紧紧基于有边存在的节点对。(3.1.4) 异构图 Metapath 学习上面所说的算法,通常都是在同构图上进行采样节点的算法,当然我们也可以直接把 异构图转成同构图 用同样的方法来学习各个节点之间的关系,但是这样也就失去了构建异构图时更细腻的不同节点类别本身带有的信息。例如:把用户和商品用一样的建模方式,总归是不合理的。在具体实践中,为了分辨异构图特点,引入了 元路径(meta-path) 的概念。元路径是在 异构图G上按照元路径模式 N1 -R1-> N2 -R2->N3 来游走产生路径。其中 N表示节点类型,R表示边关系类型。具体如下图所示:我们知道:元路径游走是一种有偏游走。而基于元路径游走也产生了2种相关的算法,分别是: MetaPath2Vector 算法和 MetaPath2Vector++ 算法。MetaPath2Vector 算法是基于 Metapath + Skip-Gram Loss 架构。 MetaPath2Vector 在 SoftMax 环节中没有分辨顶点类型,而是将所有顶点视作统一类型的顶点,也就是说在负采样环节采样的负样本并没有考虑顶点的类型。而 MetaPath2Vector++ 则在softmax环节中,根据不同类型的顶点的上下文进行了归一化,也就是说给 Skip- Gram模型 每种节点类型 制定特定的负采样集合,进行了更细粒度的负采样控制。(3.2) 基于卷积的图深度表示学习说到 图卷积 (Graph Convolutional Network , GCN) 算法, 不得不提到 卷积算法的应用场景 与 使用图算法的数据特性。(3.2.1) 图卷积基础知识准备(1) 欧几里得数据和非欧几里得空间数据的概念现实生活中有很多不规则的数据,例如在社交,电商,交通等领域中,用到的大都是实体之间的关系数据。这些数据通过庞大的结点和负责的交互关系,形成了特有的图结构,这种结构是非欧几里得空间数据。这里我们需要区分下 欧几里得数据 和 非欧几里得空间数据的概念。欧几里得数据: 它是一类具有很好的平移不变性的数据。对于这类数据以其中一个像素为节点,其邻居节点的数量相同。所以可以很好的定义一个全局共享的卷积核来提取图像中相同的结构。常见这类数据有图像、语言等。而 非欧几里得数据,它是一类不具有平移不变性的数据。这类数据以其中的一个为节点,其邻居节点的数量可能不同。常见这类数据有知识图谱、社交网络、化学分子结构等等。当然,我们也可以用CV 中填充图片的 pading方法来对节点邻居进行填充,但是假如说每个节点都需要不同粒度的填充的话,那实际实现是基本不可行的, 并且也没必要。这里我们可以看到:图并不像图像中有着固定的邻居,图像上的卷积方法并不能在图上直接套用。现实中,算法工程师们的创新总是无穷无尽的。所以该问题就有了以下的解决思路:把非欧空间转换成欧式空间, 找出一种可处理变长邻居节点的卷积核。(2) 图与拉普拉斯矩阵拉普拉斯算子 是 n维欧式空间 中的一个二阶算子,但如果将算子退化到离散二维图像空间,变成了 边缘检测算子。拉普拉斯算子描述 中心像素与局部上下左右四邻居像素 的差异,这个性质可以用作图像上边缘检测算子。在图信号中,拉普拉斯算子也被用来描述中心节点与邻居节点之间的信号差异。在N个节点的图G=(V,E) 中,拉普拉斯定义为 L= D – A 。 其中D为 图G的 度对角矩阵,D = diag(d(v1),…d(vn))A(G)=(aij)是 图的 邻接矩阵。拉普拉奇定义为:度对角矩阵减去邻接矩阵。我们可以知道: 拉普拉斯矩阵含有图的结构信息,作用可以理解为把非欧几里得空间数据用可以类似于欧几里得空间的处理方法进行处理。(3) 谱域卷积与空域卷积传统意义上的 傅立叶变换 是 时域到频域 的变换,而这种变化是通过一组 特殊的正交基 实现。结合上文所说的拉普拉斯矩阵,我们用 拉普拉斯矩阵表示图 , 它有一个很好的性质是: 傅里叶变换需要 基底ewit, 这个用拉普拉斯矩阵的 特征分解函数 就完成了 两者的结合。谱卷积神经网络 就是直接根据 全图傅立叶卷积定义 的,其有一个缺点就是难以从卷积形式中保证节点的信息更新由近处邻居贡献,即无法保证局部性,且训练计算度大。这里,我们又要引入 切比雪夫网络 的概念,它与谱卷积神经网络最大的不同就是: 不需要在对拉普拉斯矩阵进行特征分解,不用做全图的卷积计算,而且它的卷积核具有严格的空间局部性,仅仅考虑了中心节点的K阶邻居作为邻域节点。而下文要说到的 图卷积(CCN) 则是只考虑一阶切比雪夫多项式的算法。**空域卷积(spatial Convolution)**则是从邻居节点信息聚合的角度出发,更加关注节点的局域环境。图卷积算法中,我们将 邻接矩阵 与 节点的特征向量 相乘,本身具有聚合邻居节点信息的属性,已经同时具有 空域与谱域 的意义。(3.2.2) 图卷积介绍书接上文,我们先来说说最简单的 图卷积网络(GCN),我们知道:空域卷积与卷积神经网络的设计理念相似,其核心在于聚合邻居节点的信息,直接将卷积操作定义在每个节点的链接关系上。通俗点理解,GCN实际上跟CNN的作用一样,就是一个 特征提取器,只不过它的特征提取对象是图数据。其中,D负责提供权值的矩阵,邻接A矩阵控制应该融合哪些点, H表示上一层的embedding参数。当然,我们在训练完成模型之后,拿到embeding之后可以灵活运用,进行下游的分类和回归任务。这里我们需要注意: GCN正常层数只需要2–5层即可。 因为节点每更新一次,感受野就变大一些,如果网络太深,那么每个节点就会受无关节点的影响,有些节点的学习会有趋同的趋势,引起 过平滑 问题,导致最终目标效果反而下降。(3.2.3) Graph Sage介绍Graph Sage 全称为:Graph Sample And AGGregate, 就是 图采样与聚合。在图神经网络中,节点扮演着样本的角色。从前文我们已经了解到:在传统深度学习中,样本是 IID 的,这使得 损失可以拆分为独立的样本贡献,可以采用小批量的优化算法来并行处理总的损失函数。但是图的样本之间是有着关系的,早期的GCN等网络都是采用全批次梯度下降方法进行训练,这种方式需要存储整个图的邻接矩阵。2017 年提出的 Graph Sage 算法,基于GCN 邻居聚合的思想,但并不是把全部邻居聚合在内,而是聚合部分邻居,随机采样邻居K跳的节点。全邻居采样中给出了节点的抽取1跳和2跳的形式,而GraphSage只用抽取固定个数的近邻。如下图所示:该算法的核心步骤是:Sample 和 Aggregatesample : 采样,从内到外,选择固定个数的近邻,不够就重复采样aggregate:聚合,从外到内 ,聚合被采样到的那些节点的embedding , 因为邻居节点也构成了一个embeding 序列,不光可以直接Sum求和,可以使用各种聚合方式,例如:max ,mean , lstm , transform 等。注意: Graph Sage 算法本质上是 采样生成一个个小的子图 进行训练,局部更新,也可以对未出现节点的预测。(3.2.4) 异构图的卷积(RGCN)前文所说的GCN均是针对 同构图 的算法,而为了 捕捉不同节点的不同的关系 情况,工程师们又设计了基于异构图关系的卷积算法RGCN,全称是: Relation Graph Convolution Neural Networks。其中:R 的个数也就是边类型的个数,论文中称为relation-specific。 其区别在于RGCN中,通往一个节点的不同边可以代表不同的关系。在普通的GCN中,所有边共享相同的权重W。在R-GCN中,不同类型的边只有同一种关系才会使用同一个权重。在上面公式中,我们可以看到:公式使用了 权重矩阵用于融合异构图中节点不同的邻居关系 。既然邻居节点又很多,可以构成一个序列,那我们是否可以学习出 不同类型的邻居占据有不同的权重贡献程度 呢? 类似于起到一个 Attention 的作用? 这就与下文我们提到的 GAT算法 与 HAN算法 有关了。(3.2.5) Attention相关算法 GAT 与 HAN从上文我们可以知道: GCN 首次提出了 卷积的方式融合图结构 特征,提供一个全新的视角。但是,它也有一些显而易见的主要缺点:(1) 融合时 边权值固定 的,不够灵活。(2) 可扩展性差,因为它是全图卷积融合,全图做梯度更新,当图比较大时,这样的方式就太慢了,不合适。(3) 层数加深时,结果会 极容易过平滑 ,每个点的特征结果都十分相似。针对上面提出的不足,GAT 可以解决问题1 ,GraphSAGE 可以解决问题2,DeepGCN等一系列文章则是为了缓解问题3做出了不懈努力。首先说说GAT,我们知道 GCN每次做卷积时,边上的权重每次融合都是固定的,可以加个 Attention,让模型自己学习 边的权重,这就是GAT网络了,下面是 核心Attention 的定义公式:同理,HAN 针对异构图的不同类型权重融合进行了更进一步的精心设计,如下图所示:从上图可以看到:HAN是一个 两层的attention架构,分别是 节点级别的attention 和 语义级别的attention。前面我们已经介绍过 metapath 的概念,这里我们不在赘述,不明白的同学可以翻看 本文章前面的内容。Node Attention: 在同一个metapath的多个邻居上有不同的重要性。Semantic Attention: 多个meta path有不同的重要性。在进行 图传播计算 的过程中,首先 固定metapath的类别 Φi ,通过 节点级别的attention 将中心节点的基于 Φi 的邻居节点进行聚合,得到每个metapath的特征向量 ZΦi ,然后再通过 语义级别的attention 将特征向量 ZΦ 进行聚合,得到最终的特征向量 Z 。最后通过一个MLP得到这个节点的预测值 yi 。(3.3) 图上消息传元语 MPNN我们在实现图算法实现的时候,必不可少的就是要弄明白图上消息传播的计算逻辑,这里介绍一下 MPNN ,全称是:Massage Passing Neural Network 。我们都知道 tensorflow 或则 pytorch 是 DNN深度学习框架,而实现 Graph Embeding 算法则需要使用 图深度学习/机器学习框架。基于 tensorflow 的图深度学习框架,这里推荐阿里巴巴 GraphLearn, 以前也叫AliGraph, 能够基于docker 进行环境搭建,容易上手。而 基于 pytorch 的图深度学习框架,这里则推荐亚马逊的 DGL ( Deep Graph Library ), 其完善而又通俗易懂的中文官方文档,简直是我的最爱,强烈推荐!!!后面 我们的图机器学习/深度学习代码也基于 dgl 来实现 。首先这的消息传递元语说明,也是基于dgl。dgl的消息传递范式 如下:图上已经说的非常详细,我就不在赘述了。同时,我们可以使用dgl的基础消息范式进行我们自己网络特征处理流程里消息传递过程的定义,举个栗子如下:@ 欢迎关注微信公众号:算法全栈之路
def message_func(edges):
return {'he': edges.src['hu'] + edges.dst['hv’]}
# 推荐: dgl.function.u_add_v('hu', 'hv', 'he')
def reduce_func(nodes):
return {'h': torch.sum(nodes.mailbox['m'], dim=1)}
# 推荐:dgl.function.sum('m', ’h‘)
# 单独调用逐边计算:
graph.apply_edges(fn.u_add_v('el', 'er', 'e’))
# 综合函数,推荐:
graph.update_all(fn.u_mul_e('ft', 'a', 'm'), fn.sum('m', 'ft'))如上文所示:Update_all() 参数是一个消息函数、一个聚合函数和一个更新函数。更新函数update() 是一个可选择的参数,用户也可以不使用它,而是在 update_all 执行完后直接对节点特征进行操作。由于更新函数通常可以用纯张量操作实现,所以DGL不推荐在 update_all 中指定更新函数。到这里,一文揭开图机器学习的面纱,你确定不来看看吗 ? 的全文就写结束了,后面会针对更详细的图上任务结合进行讲解~码字不易,觉得有收获就点赞、分享、再看三连吧~算法全栈之路
【藏经阁一起读(45)】读《云原生实战指南)》,你有哪些心得?
藏经阁2.0全新上线!下载本地、线上阅读让你轻松获取技术知识。为了让更多人学习到藏经阁中的优秀技术作品,培养好的阅读习惯,“藏经阁一起读”活动来啦,你阅读,我奖励!
本期书籍:《云原生实战指南 》
阅读地址:https://developer.aliyun.com/ebook/7879
书籍简介:云原生已经变成非常流行的技术趋势,从上云到用云,云原生通过全面容器化、核心技术互联网化和应用Serverless化三大范式,帮助企业解决应用构建的一系列问题,让应用更敏捷,助力企业业务快速发展。 从本书中,您将收获到:1.全球云原生应用洞察与趋势2.阿里云在云原生领域的最新产品与技术布局3.阿里云 All on Serverless 全新思考与投入4.识货、传音、新东方、小红书等企业实战经验。
活动规则:阅读书籍,将你对于本书的想法、收获等在评论区留言,评论不少于200字,将选取评论质量最高的前3名送出小米鼠标lite一个。
活动时间:2022年2月6日~2月13日14:00
参与用户务必扫码加入钉群,第一时间了解活动进展、获取得奖信息。
快来阅读吧!链接:https://developer.aliyun.com/ebook/7879
2023计算机领域顶会(A类)以及ACL 2023自然语言处理(NLP)研究子方向领域汇总
2023年的计算语言学协会年会(ACL 2023)共包含26个领域,代表着当前前计算语言学和自然语言处理研究的不同方面。每个领域都有一组相关联的关键字来描述其潜在的子领域, 这些子领域并非排他性的,它们只描述了最受关注的子领域,并希望能够对该领域包含的相关类型的工作提供一些更好的想法。1.计算机领域顶会(A类)会议简称主要领域会议全称官网截稿时间会议时间CVPR2023计算机视觉The IEEE/CVF Conference on Computer Vision and Pattern Recognition 2023https://cvpr2023.thecvf.com/2022.11.112023.6.18ICCV2023计算机视觉IEEE International Conference on Computer Visionhttps://iccv2023.thecvf.com/2023.3.82023.9.30ECCV2022计算机视觉European Conference on Computer Visionhttps://eccv2022.ecva.net/-------2022.10.23AAAI2023人工智能National Conference of the American Association for Artificial Intelligencehttps://aaai-23.aaai.org/2022.8.82023.2.7IJCAI 2023人工智能National Conference of the American Association for Artificial Intelligencehttps://ijcai-22.org/#2022.8.82023.2.7NIPS2023机器学习International Joint Conference on Artificial Intelligencehttps://neurips.cc/Conferences/20222023.012023.07ICML 2023机器学习International Conference on Machine Learninghttps://icml.cc/2023.012023.06.24ICLR 2023机器学习International Conference on Learning Representationshttps://iclr.cc/Conferences/20232022.09.212023.05.01ICSE 2023软件工程International Conference on Software Engineeringhttps://conf.researchr.org/home/icse-20232022.09.012023.05.14SIGKDD 2023数据挖掘ACM International Conference on Knowledge Discovery and Data Mininghttps://kdd.org/kdd2022/index.html2023.022023.08SIGIR 2023数据挖掘ACM International Conference on Research and Development in Information Retrievalhttps://sigir.org/sigir2022/2023.012023.07ACL 2023计算语言Association of Computational Linguisticshttps://www.2022.aclweb.org/2022.112023.05ACM MM 2023多媒体ACM International Conference on Multimediahttps://2023.acmmmsys.org/participation/important-dates/2022.11.182023.6.7WWW2023网络应用International World Wide Web Conferencehttps://www2023.thewebconf.org/2022.10.62023.05.01SIGGRAPH 2023图形学ACM SIG International Conference on Computer Graphics and Interactive Techniqueshttps://s2022.siggraph.org/2023.012023.08CHI 2023人机交互ACM Conference on Human Factors in Computing Systemshttps://chi2023.acm.org/2022.09.082023.04.23CSCW 2023人机交互ACM Conference on Computer Supported Cooperative Work and Social Computinghttps://cscw.acm.org/2023/2023.01.152023.10.13CCS 2023信息安全ACM Conference on Computer and Communications Securityhttps://www.sigsac.org/ccs/CCS2022/2023.012023.11VLDB 2023数据管理International Conference on Very Large Data Baseshttps://www.vldb.org/2023/?submission-guidelines2023.03.012023.08.28STOC 2023计算机理论ACM Symposium on the Theory of Computinghttp://acm-stoc.org/stoc2022/2022.112023.062.ACL 2023自然语言处理(NLP)研究子方向领域汇总(一)计算社会科学和文化分析 (Computational Social Science and Cultural Analytics)人类行为分析 (Human behavior analysis)态度检测 (Stance detection)框架检测和分析 (Frame detection and analysis)仇恨言论检测 (Hate speech detection)错误信息检测和分析 (Misinformation detection and analysis)人口心理画像预测 (psycho-demographic trait prediction)情绪检测和分析 (emotion detection and analysis)表情符号预测和分析 (emoji prediction and analysis)语言和文化偏见分析 (language/cultural bias analysis)人机交互 (human-computer interaction)社会语言学 (sociolinguistics)用于社会分析的自然语言处理工具 (NLP tools for social analysis)新闻和社交媒体的定量分析 (quantiative analyses of news and/or social media)(二)对话和交互系统 (Dialogue and Interactive Systems)口语对话系统 (Spoken dialogue systems)评价指标 (Evaluation and metrics)任务型 (Task-oriented)人工介入 (Human-in-a-loop)偏见和毒性 (Bias/toxity)事实性 (Factuality)检索 (Retrieval)知识增强 (Knowledge augmented)常识推理 (Commonsense reasoning)互动讲故事 (Interactive storytelling)具象代理人 (Embodied agents)应用 (Applications)多模态对话系统 (Multi-modal dialogue systems)知识驱动对话 (Grounded dialog)多语言和低资源 (Multilingual / low-resource)对话状态追踪 (Dialogue state tracking)对话建模 (Conversational modeling)(三)话语和语用学 (Discourse and Pragmatics)回指消解 (Anaphora resolution)共指消解 (Coreference resolution)桥接消解 (Bridging resolution)连贯 (Coherence)一致 (Cohesion)话语关系 (Discourse relations)话语分析 (Discourse parsing)对话 (Dialogue)会话 (Conversation)话语和多语性 (Dialugue and multilinguality)观点挖掘 (Argument mining)交际 (Communication)(四)自然语言处理和伦理 (Ethics and NLP)数据伦理 (Data ethics)模型偏见和公正性评价 (Model bias/fairness evaluation)减少模型的偏见和不公平性 (Model bias/unfairness mitigation)自然语言处理中的人类因素 (Human factors in NLP)参与式和基于社群的自然语言处理 (Participatory/community-based NLP)自然语言处理应用中的道德考虑 (Ethical considerations in NLP)透明性 (Transparency)政策和治理 (Policy and governance)观点和批评 (Reflections and critiques)(五)语言生成 (Generation)人工评价 (Human evaluation)自动评价 (Automatic evaluation)多语言 (Multilingualism)高效模型 (Efficient models)少样本生成 (Few-shot generation)分析 (Analysis)领域适应 (Domain adaptation)数据到文本生成 (Data-to-text generation)文本到文博生成 (Text-to-text generation)推断方法 (Inference methods)模型结构 (Model architectures)检索增强生成 (Retrieval-augmented generation)交互和合作生成 (Interactive and collaborative generation)(六)信息抽取 (Information Extraction)命名实体识别和关系抽取 (Named entity recognition and relation extraction)事件抽取 (Event extraction)开放信息抽取 (Open information extraction)知识库构建 (Knowledge base construction)实体连接和消歧 (Entity linking and disambiguation)文档级抽取 (Document-level extraction)多语言抽取 (Multilingual extraction)小样本和零样本抽取 (Zero-/few-shot extraction)(七)信息检索和文本挖掘 (Information Retrieval and Text Mining)段落检索 (Passage retrieval)密集检索 (Dense retrieval)文档表征 (Document representation)哈希 (Hashing)重排序 (Re-ranking)预训练 (Pre-training)对比学习 (Constrastive learning)(八)自然语言处理模型的可解释性与分析 (Interpretability and Analysis of Models in NLP)对抗性攻击/例子/训练 (Adversarial attacks/examples/training)校正和不确定性 (Calibration/uncertainty)反事实和对比解释 (Counterfactual/contrastive explanations)数据影响 (Data influence)数据瑕疵 (Data shortcuts/artifacts)解释的忠诚度 (Explantion faithfulness)特征归因 (Feature attribution)自由文本和自然语言解释 (Free-text/natural language explanation)样本硬度 (Hardness of samples)结构和概念解释 (Hierarchical & concept explanations)以人为主体的应用评估 (Human-subject application-grounded evaluations)知识追溯、发现和推导 (Knowledge tracing/discovering/inducing)探究 (Probing)稳健性 (Robustness)话题建模 (Topic modeling)(九)视觉、机器人等领域的语言基础 (Language Grounding to Vision, Robotics and Beyond)视觉语言导航 (Visual Language Navigation)跨模态预训练 (Cross-modal pretraining)图像文本匹配 (Image text macthing)跨模态内容生成 (Cross-modal content generation)视觉问答 (Visual question answering)跨模态应用 (Cross-modal application)跨模态信息抽取 (Cross-modal information extraction)跨模态机器翻译 (Cross-modal machine translation)(十)大模型(Large Language Models)预训练 (Pre-training)提示 (Prompting)规模化 (Scaling)稀疏模型 (Sparse models)检索增强模型 (Retrieval-augmented models)伦理 (Ethics)可解释性和分析 (Interpretability/Analysis)连续学习 (Continual learning)安全和隐私 (Security and privacy)应用 (Applications)稳健性 (Robustness)微调 (Fine-tuning)(十一)语言多样性 (Language Diversity)少资源语言 (Less-resource languages)濒危语言 (Endangered languages)土著语言 (Indigenous languages)少数民族语言 (Minoritized languages)语言记录 (Language documentation)少资源语言的资源 (Resources for less-resourced languages)软件和工具 (Software and tools)(十二)语言学理论、认知建模和心理语言学 (Linguistic Theories, Cognitive Modeling and Psycholinguistics)语言学理论 (Linguistic theories)认知建模 (Cognitive modeling)计算心理语言学 (Computational pyscholinguistics)(十三)自然语言处理中的机器学习 (Machine Learning for NLP)基于图的方法 (Graph-based methods)知识增强的方法 (Knowledge-augmented methods)多任务学习 (Multi-task learning)自监督学习 (Self-supervised learning)对比学习 (Contrastive learning)生成模型 (Generation model)数据增强 (Data augmentation)词嵌入 (Word embedding)结构化预测 (Structured prediction)迁移学习和领域适应 (Transfer learning / domain adaptation)表征学习 (Representation learning)泛化 (Generalization)模型压缩方法 (Model compression methods)参数高效的微调方法 (Parameter-efficient finetuning)少样本学习 (Few-shot learning)强化学习 (Reinforcement learning)优化方法 (Optimization methods)连续学习 (Continual learning)对抗学习 (Adversarial training)元学习 (Meta learning)因果关系 (Causality)图模型 (Graphical models)人参与的学习和主动学习 (Human-in-a-loop / Active learning)(十四)机器翻译 (Machine Translation)自动评价 (Automatic evaluation)偏见 (Biases)领域适应 (Domain adaptation)机器翻译的高效推理方法 (Efficient inference for MT)高效机器翻译训练 (Efficient MT training)少样本和零样本机器翻译 (Few-/Zero-shot MT)人工评价 (Human evaluation)交互机器翻译 (Interactive MT)机器翻译部署和维护 (MT deployment and maintainence)机器翻译理论 (MT theory)建模 (Modeling)多语言机器翻译 (Multilingual MT)多模态 (Multimodality)机器翻译的线上运用 (Online adaptation for MT)并行解码和非自回归的机器翻译 (Parallel decoding/non-autoregressive MT)机器翻译预训练 (Pre-training for MT)规模化 (Scaling)语音翻译 (Speech translation)转码翻译 (Code-switching translation)词表学习 (Vocabulary learning)(十五)多语言和跨语言自然语言处理 (Multilingualism and Cross-Lingual NLP)转码 (Code-switching)混合语言 (Mixed language)多语言 (Multilingualism)语言接触 (Language contact)语言变迁 (Language change)语言变体 (Language variation)跨语言迁移 (Cross-lingual transfer)多语言表征 (Multilingual representation)多语言预训练 (Multilingual pre-training)多语言基线 (Multilingual benchmark)多语言评价 (Multilingual evaluation)方言和语言变种 (Dialects and language varieties)(十六)自然语言处理应用 (NLP Applications)教育应用、语法纠错、文章打分 (Educational applications, GEC, essay scoring)仇恨言论检测 (Hate speech detection)多模态应用 (Multimodal applications)代码生成和理解 (Code generation and understanding)事实检测、谣言和错误信息检测 (Fact checking, rumour/misinformation detection)医疗应用、诊断自然语言处理 (Healthcare applications, clinical NLP)金融和商务自然语言处理 (Financial/business NLP)法律自然语言处理 (Legal NLP)数学自然语言处理 (Mathematical NLP)安全和隐私 (Security/privacy)历史自然语言处理 (Historical NLP)知识图谱 (Knowledge graph)(十七)音系学、形态学和词语分割 (Phonology, Morphology and Word Segmentation)形态变化 (Morphological inflection)范式归纳 (Paradigm induction)形态学分割 (Morphological segementation)子词表征 (Subword representations)中文分割 (Chinese segmentation)词性还原 (Lemmatization)有限元形态学 (Finite-state morphology)形态学分析 (Morphological analysis)音系学 (Phonology)字素音素转换 (Grapheme-to-phoneme conversion)发音建模 (Pronunciation modeling)(十八)问答 (Question Answering)常识问答 (Commonsense QA)阅读理解 (Reading comprehension)逻辑推理 (Logic reasoning)多模态问答 (Multimodal QA)知识库问答 (Knowledge base QA)语义分析 (Semantic parsing)多跳问答 (Multihop QA)生物医学问答 (Biomedical QA)多语言问答 (Multilingual QA)可解释性 (Interpretability)泛化 (Generalization)推理 (Reasoning)对话问答 (Conversational QA)少样本问答 (Few-shot QA)数学问答 (Math QA)表格问答 (Table QA)开放域问答 (Open-domain QA)问题生成 (Question generation)(十九)语言资源及评价 (Resources and Evaluation)语料库构建 (Corpus creation)基线构建 (Benchmarking)语言资源 (Language resources)多语言语料库 (Multilingual corpora)词表构建 (Lexicon creation)语言资源的自动构建与评价 (Automatic creation and evaluation of language resources)自然语言处理数据集 (NLP datasets)数据集自动评价 (Automatic evaluation of datasets)评价方法 (Evaluation methodologies)低资源语言数据集 (Datasets for low resource languages)测量指标 (Metrics)复现性 (Reproducibility)用于评价的统计检验 (Statistical testing for evaluation)(二十)语义学:词汇层面 (Semantics: Lexical)一词多义 (Polysemy)词汇关系 (Lexical relationships)文本蕴含 (Textual entailment)语义合成性 (Compositionality)多词表达 (Multi-word expressions)同义转换 (Paraphrasing)隐喻 (Metaphor)词汇语义变迁 (Lexical semantic change)词嵌入 (Word embeddings)认知 (Cognition)词汇资源 (Lexical resources)情感分析 (Sentiment analysis)多语性 (Multilinguality)可解释性 (Interpretability)探索性研究 (Probing)(二十一)语义学:句级语义、文本推断和其他领域 (Semantics: Sentence-Level Semantics, Textual Inference and Other Areas)同义句识别 (Paraphrase recognition)文本蕴含 (Textual entailment)自然语言推理 (Natural language inference)逻辑推理 (Reasoning)文本语义相似性 (Semantic textual similarity)短语和句子嵌入 (Phrase/sentence embedding)同义句生成 (Paraphrase generation)文本简化 (Text simiplification)词和短语对齐 (Word/phrase alignment)(二十二)情感分析、文本风格分析和论点挖掘 (Sentiment Analysis, Stylistic Analysis and Argument Mining)论点挖掘 (Argument mining)观点检测 (Stance detection)论点质量评价 (Argument quality assessment)修辞和框架 (Rhetoric and framing)论证方案和推理 (Argument schemes and reasoning)论点生成 (Argument generation)风格分析 (Style analysis)风格生成 (Style generation)应用 (Applications)(二十三)语音和多模态 (Speech and Multimodality)自动语音识别 (Automatic speech recognition)口语语言理解 (Spoken language understanding)口语翻译 (Spoken language translation)口语语言基础 (Spoken language grounding)语音和视觉 (Speech and vision)口语查询问答 (QA via spoken queries)口语对话 (Spoken dialog)视频处理 (Video processing)语音基础 (Speech technologies)多模态 (Multimodality)(二十四)文摘 (Summarization)抽取文摘 (Extractive summarization)摘要文摘 (Abstractive summarization)多模态文摘 (Multimodal summarization)多语言文摘 (Multilingual summarization)对话文摘 (Conversational summarization)面向查询的文摘 (Query-focused summarization)多文档文摘 (Multi-document summarization)长格式文摘 (Long-form summarization)句子压缩 (Sentence compression)少样本文摘 (Few-shot summarization)结构 (Architectures)评价 (Evaluation)事实性 (Factuality)(二十五)句法学:标注、组块分析和句法分析 (Syntax: Tagging, Chunking and Parsing)组块分析、浅层分析 (Chunking, shallow-parsing)词性标注 (Part-of-speech tagging)依存句法分析 (Dependency parsing)成分句法分析 (Constituency parsing)深层句法分析 (Deep syntax parsing)语义分析 (Semantic parsing)句法语义接口 (Syntax-semantic inferface)形态句法相关任务的标注和数据集 (Optimized annotations or data set for morpho-syntax related tasks) 句法分析算法 (Parsing algorithms)语法和基于知识的方法 (Grammar and knowledge-based approach)多任务方法 (Multi-task approaches)面向大型多语言的方法 (Massively multilingual oriented approaches)低资源语言词性标注、句法分析和相关任务 (Low-resource languages pos-tagging, parsingand related tasks)形态丰富语言的词性标注、句法分析和相关任务 (Morphologically-rich languages pos tagging,parsing and related tasks)
(二十六)主题领域:现实检测 (Theme Track: Reality Check)因为错误的原因而正确 (Right for the wrong reasons)实际运用中的教训 (Lessons from deployment)(非)泛化能力 [(Non-)generalization](非)复现能力 [(Non-)reproducibility)]评价 (Evaluation)方法 (Methodology)负面结果 (Negative results)人工智能噱头和期待 (AI hype and expectations)科学 vs 工程 (Science-vs-engineering)其他领域的结合 (Lessons from other fields)
【藏经阁一起读(44)】读《2022技术人的百宝黑皮书)》,你有哪些心得?
藏经阁2.0全新上线!下载本地、线上阅读让你轻松获取技术知识。为了让更多人学习到藏经阁中的优秀技术作品,培养好的阅读习惯,“藏经阁一起读”活动来啦,你阅读,我奖励!
本期书籍:《2022技术人的百宝黑皮书》
阅读地址:https://developer.aliyun.com/ebook/7875
书籍简介:大淘宝技术2022一年干货内容合集。过去一年,我们尝试在分享的过程中,对自己做过的工作进行系统性的总结和提炼,升华自己对技术深度的理解;更希望能够与同行交流互动,共同关注业务的差异性、技术思考的不同路径、技术的困难挑战以及对未来的思考。本书内容包含【大淘宝最新实战经验&技术解决方案】、【技术人推荐学习的github项目、大淘宝最新paper】、【工程师成长经验总结&金句回顾】。
活动规则:阅读书籍,将你对于本书的想法、收获等在评论区留言,评论不少于200字,将选取评论质量最高的前3名送出ET勋章一个。
活动时间:2022年1月29日~2月6日14:00
参与用户务必扫码加入钉群,第一时间了解活动进展、获取得奖信息。
快来阅读吧!链接:https://developer.aliyun.com/ebook/7875