NLP算法岗常见面试题梳理

文章目录

  • 前言
  • 一、Attention相关
    • 1. Bahdanau attention
    • 2. Luong_attention
    • 3. Self_attention
    • 4. 其他attention
  • 二、Bert相关
  • 三、机器学习相关
    • 1.引入库
    • 2.读入数据
  • 总结


前言

提示:这里可以添加本文要记录的大概内容:
例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。


提示:以下是本篇文章正文内容,下面案例可供参考

一、Attention相关

attention机制在目前的NLP领域大放异彩,通盘理解其本质可谓必要之至。有一场重要的面试第一道题就是:“请high-level的讲下Attention”。

1. Bahdanau attention

Bahdanau attention 论文原文
写下最核心的几个公式:
给定原文 x x x,翻译产出一段文字 y 1 , y 2 , . . . y T y {y_1,y_2, ...y_{T_y}} y1,y2,...yTy的条件概率为
∏ i = 1 T y p ( y i ∣ y 1 , y 2 , . . , y i − 1 , x ) \prod_{i=1}^{T_y} p(y_i|y_1,y_2,..,y_{i-1}, x) i=1Typ(yiy1,y2,..,yi1,x)
Decoder阶段 i i i时间步的单词为 y i y_i yi的条件概率为 p ( y i ∣ y 1 , y 2 , . . , y i − 1 , x ) = g ( y i − 1 , s i , c i ) p(y_i|y_1,y_2,..,y_{i-1},x) = g(y_{i-1}, s_i,c_i) p(yiy1,y2,..,yi1,x)=g(yi1,si,ci).
其中 s i s_i si 是Decoder在 i i i 时间步的hidden_state, s i = f ( s i − 1 , y i − 1 , c i ) s_i = f(s_{i-1},y_{i-1},c_i) si=f(si1,yi1,ci).
c i c_i ci 是上下文向量,是encoder阶段每一个时间步 h j {h_j} hj的加权平均值,
c i = ∑ j = 0 N α i j h j c_i = \sum_{j=0}^{N} \alpha_{ij} h_j ci=j=0Nαijhj
α i j \alpha_{ij} αij 是每个 h j h_j hj的 在 Decoder的 i i i时间步时的权重。
α i j = e x p ( e i j ) ∑ k = 1 T x e x p ( e i k ) \alpha_{ij} = \frac{exp(e_{ij})}{\sum_{k=1}^{T_x} exp(e_{ik})} αij=k=1Txexp(eik)exp(eij)
其中 e i j e_{ij} eij代表第 i i i步和第 j j j步的对齐程度,
e i j = a ( s i − 1 , h j ) e_{ij} = a(s_{i-1}, h_j) eij=a(si1,hj)
a ( ) a() a() 是对齐函数,这里可以定义为:
a ( u , v ) = t a n h ( W 1 u + W 2 v + b ) a(u, v) = tanh(W_1u+ W_2v+b) a(u,v)=tanh(W1u+W2v+b)

总结,Bahdanau attention 基于encoder-decoder提出的attention机制,属于soft attention。

2. Luong_attention

Luong_attention 论文原文

3. Self_attention

4. 其他attention

示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。

二、Bert相关

三、机器学习相关

1.引入库

代码如下(示例):

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
import warnings
warnings.filterwarnings('ignore')
import  ssl
ssl._create_default_https_context = ssl._create_unverified_context

2.读入数据

代码如下(示例):

data = pd.read_csv(
    'https://labfile.oss.aliyuncs.com/courses/1283/adult.data.csv')
print(data.head())

该处使用的url网络请求的数据。


总结

提示:这里对文章进行总结:
例如:以上就是今天要讲的内容,本文仅仅简单介绍了pandas的使用,而pandas提供了大量能使我们快速便捷地处理数据的函数和方法。

你可能感兴趣的:(算法,自然语言处理,深度学习)