前言
为什么写这本书
近年来,视觉处理和自然语言处理(NLP)技术都取得了不小的进步。更可喜的是,这些新技术的落地和应用也带动了相关领域如传统机器学习、推荐、排序等的快速发展。
这些新技术的背后都离不开Embedding(嵌入)技术,Embedding已成为这些技术的基本元素和核心操作。Embedding起源于Word Embedding,经过多年的发展,已取得长足进步。从横向发展来看,由原来单纯的Word Embedding,发展成现在的Item Embedding、Entity Embedding、Graph Embedding、Position Embedding、Segment Embedding等;从纵向发展来看,由原来静态的Word Embedding发展成动态的预训练模型,如ELMo、BERT、GPT、GPT-2、GPT-3、ALBERT、XLNet等,这些预训练模型可以通过微调服务下游任务。Embedding不再固定不变,从而使这些预训练模型可以学习到新的语义环境下的语义,高效完成下游的各种任务,如分类、问答、摘要生成、阅读理解等,其中有很多任务的完成效率已超过人工完成的平均水平。
这些技术不但强大,而且非常实用。掌握这些技术因而成为当下很多AI技术爱好者的迫切愿望。本书就是为实现广大AI技术爱好者这个愿望而写的!
虽然本书不乏新概念、新内容,但仍采用循序渐进的方法。为了让尽可能多的人掌握这些技术,书中先介绍相关基础知识,如语言模型、迁移学习、注意力机制等,所以无须担心没有基础看不懂本书。然后,本书通过多个典型实例,使用最新版本的PyTorch或TensorFlow实现一些核心代码,并从零开始介绍如何实现这些实例,如利用Transformer进行英译中、使用BERT实现对中文语句的分类、利用GPT-2实现文本生成等。为了帮助大家更好地理解各种原理和逻辑,书中尽量采用可视化的讲解方法,并辅以相关关键公式、代码实例进一步说明。总而言之,无须担心没有高等数学背景无法看懂、看透本书。
本书特色
本书把基本原理与代码实现相结合,并精准定位切入点,将复杂问题简单化。书中使用大量可视化方法说明有关原理和逻辑,并用实例说明使抽象问题具体化。
读者对象
- 对机器学习、深度学习,尤其是NLP最新进展感兴趣的在校学生、在职人员。
- 有一定PyTorch、TensorFlow基础,并希望通过解决一些实际问题来进一步提升这方面水平的AI技术爱好者。
- 对机器学习、推荐排序、深度学习等前沿技术感兴趣的读者。
如何阅读本书
本书分为两部分,共16章。
第一部分为Embedding基础知识(第1~9章),重点介绍了Embedding技术的发展历史及最新应用,并对各种预训练模型涉及的基础知识做了详细说明,如语言模型、迁移学习、注意力机制等。第1章说明万物皆可嵌入;第2章讲解如何获取Embedding;第3、4章分别介绍视觉处理、文本处理方面的基础知识;第5章为本书重点,介绍了多种注意力机制;第6~8章介绍了ELMo、BERT、GPT、XLNet等多种预训练模型;第9章介绍了推荐排序系统。
第二部分为Embedding应用实例(第10~16章),以实例为主介绍了Embedding技术的多种应用,以及使用新技术解决NLP方面的一些问题。第10章介绍如何使用Embedding处理机器学习中的分类特征;第11章介绍如何使用Embedding提升机器学习性能;第12章介绍如何使用Transformer实现将英文翻译成中文;第13章介绍Embedding在推荐系统中的前沿应用;第14章介绍如何使用BERT实现中文语句分类问题;第15章介绍如何使用GPT-2实现文本生成;第16章是对Embedding技术的总结。
勘误和支持
由于笔者水平有限,加之编写时间仓促,书中难免出现错误或不准确的地方,恳请读者批评指正。你可以通过访问http://www.feiguyunai.com下载代码和数据,也可以通过邮箱(wumg3000@163.com)进行反馈。非常感谢你的支持和帮助,也非常欢迎大家加入图书群(QQ:799038260)进行在线交流。
致谢
在本书编写过程中,我得到了很多同事、朋友、老师和同学的支持!感谢刘未昕、张粤磊、张魁等同事的支持(他们负责整个环境的搭建和维护),感谢博世王冬的鼓励和支持!感谢上海交大慧谷的程国旗老师,上海大学的白延琴老师、李常品老师,上海师范大学的田红炯老师、李昭祥老师,赣南师大的许景飞老师等的支持和帮助!
感谢机械工业出版社杨福川老师、李艺老师给予本书的大力支持和帮助。
最后,感谢我的爱人赵成娟在繁忙的教学之余帮助审稿,并提出了不少改进意见和建议。
吴茂贵
2021年3月31日于上海