如何成为一名对话系统工程师

如何成为一名对话系统工程师,第1张

对话系统(对话机器人)本质上是通过机器学习和人工智能等技术让机器理解人的语言。它包含了诸多学科方法的融合使用,是人工智能领域的一个技术集中演练营。图1给出了对话系统开发中涉及到的主要技术。

对话系统技能进阶之路

图1给出的诸多对话系统相关技术,从哪些渠道可以了解到呢?下面逐步给出说明。


图1 对话系统技能树 数学

矩阵计算主要研究单个矩阵或多个矩阵相互作用时的一些性质。机器学习的各种模型都大量涉及矩阵相关性质,比如PCA其实是在计算特征向量,MF其实是在模拟SVD计算奇异值向量。人工智能领域的很多工具都是以矩阵语言来编程的,比如主流的深度学习框架,如Tensorflow、PyTorch等无一例外。矩阵计算有很多教科书,找本难度适合自己的看看即可。如果想较深入理解,强烈推荐《Linear Algebra Done Right》这本书。

概率统计是机器学习的基础。常用的几个概率统计概念:随机变量、离散随机变量、连续随机变量、概率密度/分布(二项式分布、多项式分布、高斯分布、指指数族分布)、条件概率密度/分布、先验密度/分布、后验密度/分布、最大似然估计、最大后验估计。简单了解的话可以去翻翻经典的机器学习教材,比如《Pattern RecogniTIon and Machine Learning》的前两章,《Machine Learning: A ProbabilisTIc PerspecTIve》的前两章。系统学习的话可以找本大学里概率统计里的教材。

最优化方法被广泛用于机器学习模型的训练。机器学习中常见的几个最优化概念:凸/非凸函数、梯度下降、随机梯度下降、原始对偶问题。一般机器学习教材或者课程都会讲一点最优化的知识,比如Andrew Ng机器学习课程中Zico Kolter讲的《Convex OpTImization Overview》。当然要想系统了解,最好的方法就是看Boyd的《Convex Optimization》书,以及对应的PPT(https://web.stanford.edu/~boyd/cvxbook/)和课程(https://see.stanford.edu/Course/EE364A,https://see.stanford.edu/Course/EE364B)。喜欢看代码的同学也可以看看开源机器学习项目中涉及到的优化方法,例如Liblinear、LibSVM、Tensorflow就是不错的选择。

常用的一些数学计算Python包:

NumPy:用于张量计算的科学计算包

SciPy:专为科学和工程设计的数学计算工具包

Matplotlib:画图、可视化包

机器学习和深度学习

Andrew Ng的“Machine Learning”课程依旧是机器学习领域的入门神器。不要小瞧所谓的入门,真把这里面的知识理解透,完全可以去应聘算法工程师职位了。推荐几本公认的好教材:Hastie等人的《The Elements of Statistical Learning》,Bishop的《Pattern Recognition and Machine Learning》,Murphy的《Machine Learning: A Probabilistic Perspective》,以及周志华的西瓜书《机器学习》。深度学习资料推荐Yoshua Bengio等人的《Deep Learning》,以及Tensorflow的官方教程。

常用的一些工具

scikit-learn:包含各种机器学习模型的Python包

Liblinear:包含线性模型的多种高效训练方法

LibSVM:包含各种SVM的多种高效训练方法

Tensorflow:Google的深度学习框架

PyTorch:Facebook的深度学习框架

Keras: 高层的深度学习使用框架

Caffe: 老牌深度学习框架

自然语言处理

很多大学都有NLP相关的研究团队,比如斯坦福NLP组,以及国内的哈工大SCIR实验室等。这些团队的动态值得关注。

NLP相关的资料网上随处可见,课程推荐斯坦福的“CS224n: Natural Language Processing with Deep Learning”,书推荐Manning的《Foundations of Statistical Natural Language Processing》(中文版叫《统计自然语言处理基础》)。

信息检索方面,推荐Manning的经典书《Introduction to Information Retrieval》(王斌老师翻译的中文版《信息检索导论》),以及斯坦福课程“CS 276: Information Retrieval and Web Search”。

常用的一些工具:

Jieba: 中文分词和词性标注Python包

CoreNLP: 斯坦福的NLP工具(Java

NLTK: 自然语言工具包

TextGrocery:高效的短文本分类工具(注:只适用于 Python2)

LTP: 哈工大的中文自然语言处理工具

Gensim:文本分析工具,包含了多种主题模型

Word2vec: 高效的词表示学习工具

GloVe:斯坦福的词表示学习工具

Fasttext : 高效的词表示学习和句子分类库

FuzzyWuzzy: 计算文本之间相似度的工具

C++RF++: 轻量级条件随机场库(C++)

Elasticsearch: 开源搜索引擎

对话机器人

对话系统针对用户不同类型的问题,在技术上会使用不同的框架。下面介绍几种不同类型的对话机器人。

对话机器人创建平台

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/dianzi/2534671.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-08-05
下一篇 2022-08-05

发表评论

登录后才能评论

评论列表(0条)

保存