本文共 7260 字,大约阅读时间需要 24 分钟。
官网地址:
课程简介:Natural language processing (NLP) is a crucial part of artificial intelligence (AI), modeling how people share information. In recent years, deep learning approaches have obtained very high performance on many NLP tasks. In this course, students gain a thorough introduction to cutting-edge(尖端、先进) neural networks for NLP.
b站地址(1有字幕,2新一点没有字幕):
1、2、
最新课程:
The (really surprising!) result that word meaning can be represented rather well by a large vector of real numbers
1、深度学习的有效现代方法应用于NLP的基础——先讲基础知识,再讲NLP中使用的关键方法:循环网络、注意力、变换器等
2、对人类语言的全局认识,以及对人类语言的理解和产生的困难
3、了解并有能力为NLP中的一些主要问题建立系统(在PyTorch中):词义、依赖性解析、机器翻译、问题回答
Ass1希望是一个简单的上坡–一个Jupyter/IPythonNotebook
Ass2是纯Python (numpy),但希望你能做(多变量)微积分,这样你才能真正理解基础知识
Ass3介绍了PyTorch,为依赖性解析构建一个前馈网络
Ass4和Ass5在GPU上使用PyTorch (Microsoft Azure) - 像PyTorch和Tensorflow这样的库现在是DL的标准工具
GPT-3:通往普遍模式的第一步
Definition:meaning
最常见的语言学意义思维方式:
signifier能指(符号) ⟺signified所指(理念或事物)(指称语义学)我们如何在计算机中拥有可用的意义?
常见的NLP解决方案:使用,例如:一个包含同义词集和超义词列表的词库("是一个 "关系)
WordNet等资源的问题:在传统的NLP中,我们把单词看作是离散的符号:Hotel,Conference,Motel–一个局部主义的表示
这种文字的符号可以用one-hot(Means one 1, the rest 0s)向量来表示motel = [0 0 0 0 0 0 0 0 0 0 1 0 0 0 0] hotel = [0 0 0 0 0 0 0 1 0 0 0 0 0 0 0]
向量维度=词汇量的数量(如500,000)
问题:
例如:在网络搜索中,如果用户搜索 “Seattle motel”“西雅图汽车旅馆”,我们希望匹配包含 “Seattle hotel” "西雅图酒店 "的文档 但是:这两个向量是orthogonal正交的 对于one-hot 向量,没有similarity相似性的自然概念! 解决方法:是否可以尝试依赖WordNet的同义词列表来获得相似性?但众所周知会严重失败:不完整等。 取而代之的是:学会在向量本身中编码相似性作为神经词向量的词义–可视化
Word2vec(Mikolovet al. 2013)是一个学习词向量的框架思想:
计算 P ( w t + j ∣ w t ) P\left(w_{t+j} \mid w_{t}\right) P(wt+j∣wt)的窗口和流程示例:
对于每个位置 t = 1 , … , T t=1, \ldots, T t=1,…,T,在给定中心词 w j w_{j} wj的情况下,预测固定大小m的窗口中的上下文词。数据可能性:
L i k e l i h o o d = L ( θ ) = ∏ t = 1 T ∏ m ≤ j ≤ m j ≠ 0 P ( w t + j ∣ w t ; θ ) Likelihood =L(\theta)=\prod_{t=1}^{T} \prod_{m \leq j \leq m \atop j \neq 0} P\left(w_{t+j} \mid w_{t} ; \theta\right) Likelihood=L(θ)=t=1∏Tj=0m≤j≤m∏P(wt+j∣wt;θ) 𝜃是所有的变量都要优化目标函数𝐽(𝜃)是(平均)负对数似然率:
J ( θ ) = − 1 T log L ( θ ) = − 1 T ∑ t = 1 T ∑ − m ≤ j ≤ m j ≠ 0 log P ( w t + j ∣ w t ; θ ) J(\theta)=-\frac{1}{T} \log L(\theta)=-\frac{1}{T} \sum_{t=1}^{T} \sum_{-m \leq j \leq m \atop j \neq 0} \log P\left(w_{t+j} \mid w_{t} ; \theta\right) J(θ)=−T1logL(θ)=−T1t=1∑Tj=0−m≤j≤m∑logP(wt+j∣wt;θ) 最小化目标函数 ⟺最大化预测精度我们要使以上目标函数最小化,
P ( u problems ∣ v into ) P\left(u_{\text {problems }} \mid v_{\text {into }}\right) P(uproblems ∣vinto )是 P ( \mathrm{P}\left(\right. P( problems ∣ \mid ∣ into ; u problems , v into , θ ) \left.; u_{\text {problems }}, v_{\text {into }}, \theta\right) ;uproblems ,vinto ,θ)的简称
再来看预测函数: P ( o ∣ c ) = exp ( u o T v c ) ∑ w ∈ V exp ( u w T v c ) P(o \mid c)=\frac{\exp \left(u_{o}^{T} v_{c}\right)}{\sum_{w \in V} \exp \left(u_{w}^{T} v_{c}\right)} P(o∣c)=∑w∈Vexp(uwTvc)exp(uoTvc)这是softmax函数 R n → ( 0 , 1 ) n \mathbb{R}^{n} \rightarrow(0,1)^{n} Rn→(0,1)n(开放区域)的一个例子:
softmax ( x i ) = exp ( x i ) ∑ j = 1 n exp ( x j ) = p i \operatorname{softmax}\left(x_{i}\right)=\frac{\exp \left(x_{i}\right)}{\sum_{j=1}^{n} \exp \left(x_{j}\right)}=p_{i} softmax(xi)=∑j=1nexp(xj)exp(xi)=pi softmax函数将任意值 x i x_{i} xi映射到一个概率分布 p i p_{i} pi
- "max"是因为放大了最大 x i x_{i} xi的概率(但有点奇怪的名字,因为它返回的是一个分布)
- "soft"是因为仍然给较小的 x i x_{i} xi分配了一些概率
- 常用于深度学习
训练模型:优化参数值以减少损失
为了训练模型,我们逐步调整参数,使损失降到最低两种模型的变形:
本课至今:Skip-gram模型
阴性取样
到目前为止:专注于 naïve softmax(更简单但更昂贵的训练方法)while True : theta_ grad = evaluate_ gradient (J, corpus,theta) theta = theta - alpha * theta grad
Stochastic Gradient Descent
while True: window = s ample_ window ( corpus ) theta_ grad = evaluate_ gradient (J, window, theta) theta = theta - alpha * theta_ grad
大致了解了自然语言处理概述、为什么选用Word2Vec模型,以及如何利用梯度下降进行计算
转载地址:http://tgvrn.baihongyu.com/