面试-NLP八股文

news2024/11/15 19:37:19

机器学习

  • 交叉熵损失: L = − ( y l o g ( y ^ ) + ( 1 − y ) l o g ( 1 − ( y ^ ) ) L=-(ylog(\hat{y}) + (1-y)log(1-(\hat{y})) L=(ylog(y^)+(1y)log(1(y^))
  • 均方误差: L = 1 n ∑ i = 1 n ( y i − y ^ i ) 2 L =\frac{1}{n}\sum\limits_{i=1}^{n}(y_{i} - \hat{y}_{i})^{2} L=n1i=1n(yiy^i)2
  • BPR损失: L = ∑ ( u , i , j ) ∈ O − l n σ ( y ^ u i − y ^ u j ) L=\sum_{(u,i,j) \in O} -ln\sigma(\hat{y}_{ui} - \hat{y}_{uj}) L=(u,i,j)Ol(y^uiy^uj)
  • 最大似然估计:是一种在给定结果的情况下,使得选择的参数值观测到该结果的概率最大
  • 交叉熵:衡量两个概率分布p和q之间差异的指标;最大化似然函数等价于最小化交叉熵
  • LR和SVM的异同
    • LR是逻辑回归模型,在最后的结果上应用了sigmoid函数得到分布概率
    • SVM是为了寻找一个最优超平面,使得训练样本离该超平面的间隔最大化
    • 高斯核函数的核心思想是将样本数据进行升维,从而使得原本线性不可分的数据线性可分
    • 同:
      • LR和SVM都可以处理分类问题,且一般都用于处理线性二分类问题
      • 两个方法都可以增加不同的正则化项,如L1、L2正则化
      • LR和SVM都可以用来做非线性分类,只要加核函数就好
    • 异:
      • LR是参数模型,SVM是非参数模型
      • 逻辑回归采用的是cross-entropy loss,SVM采用的是hinge loss
      • SVM分类只需要计算与少数几个支持向量的距离,而LR和所有点都有关系
  • L1L2的特点
    • 正则化是防止模型在训练数据上过度拟合的技术,即通过在模型的损失函数中引入额外的惩罚项,来对模型的参数进行约束,从而降低模型的复杂度(使数值变小)
    • L1是权重参数的绝对值之和
    • L2是权重参数的平方,L2正则化又称为权重衰减
  • dropout在训练过程中随机将部分神经元权重置为零
  • Layer Normalization与Batch Normalization
    • 归一化是把数据特征映射到固定范围,以避免由于输入特征尺度存在较大差异,而使模型的优化方向可能会被尺度较大的特征所主导
    • BN层(Batch Normalization):是在不同样本之间进行归一化
    • LN层(Layer Normalization):是在同一样本内部进行归一化
  • 如何缓解梯度消失问题
    • 梯度趋近于零,网络权重无法更新或更新的很微小,网络训练再久也不会有效果
    • 解决办法:选择合适的激活函数;批量归一化;使用残差网络
  • 如何缓解梯度爆炸问题
    • 梯度呈指数级增长,变的非常大,然后导致网络权重的大幅更新,使网络变得不稳定
    • 解决办法:选择合适的权重初始化;梯度裁剪
  • 防止过拟合的手段(训练时效果好,测试时效果拉)
    • 增加训练数据量,或数据增强
    • 简化模型结构
    • 早停策略
    • Dropout技术
    • 正则化方法
  • Adam算法能够根据不同参数的梯度特性自适应地调整学习率。对于梯度较大的参数,学习率会相应减小,以避免参数更新过快导致震荡;对于梯度较小的参数,学习率会相应增大,以加速收敛。Adam优化器是由Momentum动量梯度与RMSProp算法构成
  • 交叉验证:其基本思想是将数据分为K个互不重叠的子集(通常称为“折”),每次选取其中K-1个子集作为训练集,剩下的一个子集作为测试集,进行模型训练和评估。这个过程会重复K次,每次选择不同的子集作为测试集,最后将所有的测试结果求平均值。
  • KNN是根据某一样本点距离最近的 K 个样本点的类别来判断该样本属于哪个类别(多数投票)
  • K-means是无监督学习算法。根据输入无标签的数据,然后将数据聚类成不同的组。做法:随机初始化质心->计算每个数据点到每个质心的距离->根据距离将数据点到簇->重新计算簇的质心,重复这一过程直到质心不再变化或达到预定的迭代次数。
  • 决策树是一种树形结构,主要用于分类,易过拟合,需要剪枝算法
  • 随机森林是将多个决策树结合在一起,每次数据集是随机有放回的选出,而选出部分特征作为输入,最后将多个树的结果整合起来当作最后的结果输出。
  • 归一化(Normalization)是将一列数据变化到某个固定区间(范围)中,通常,这个区间是[0, 1] 或者(-1,1)之间的小数
  • 标准化(Standardization)是原始数据减均值之后,再除以标准差。将数据变换为均值为0,标准差为1的分布

深度学习

  • Embedding技术是将单词转换为固定长度的向量

    • 作用(独热编码相比):可以解决维度灾难,即独热编码(One-hot )导致的维度激增;解决词汇鸿沟,即独热编码不能表达词汇之间的联系
    • 基于内容的word2vec方法是最经典的,其中包含框架CBOW连续词袋模型(Continuous Bag of Words)和Skip-gram跳字模型
      • CBOW预设好窗口大小,利用窗口内的上下文来预测目标词。

        • 模型输入是上下文词汇的One-hot编码;经过Embedding层,即词汇编码各自和嵌入矩阵相乘,得到词向量;然后计算上下文词向量的平均值;再输入线性层,得到输出向量;输入softmax层得到概率分布,最大概率位置对应的词即为预测结果;
        • 在这里插入图片描述
      • Skip-gram跳字模型为CBOW的逆过程

        • 模型输入是目标词的独热编码向量;经过in嵌入层,得到隐藏层;再经过out嵌入层得到输出向量;输入softmax层得到字典中每个词汇是目标词上下文的概率
        • 在这里插入图片描述
  • 文本关键词抽取

    • textrank把文本拆分成词汇作为图节点, 然后对节点权重进行倒序排列,得到排名前TopN个词汇作为文本关键词
      • 节点间权重计算方式:两个节点之间仅当它们对应的词汇在长度为K的窗口中共现则存在边,K表示窗口大小即最多共现K个词汇
    • tf-idf
      • 词频(Term Frequency,TF)指某一给定词语在当前文件中出现的频率。 词频 ( T F ) = 词 w 在文档中出现的次数 文档的总词数 词频(TF)=\frac{词w在文档中出现的次数}{文档的总词数} 词频(TF)=文档的总词数w在文档中出现的次数
      • 逆向文件频率(Inverse Document Frequency,IDF)是一个词语普遍重要性的度量。即如果一个词语只在很少的文件中出现,表示更能代表文件的主旨,它的权重也就越大;如果一个词在大量文件中都出现,表示不清楚代表什么内容,它的权重就应该小。 逆文档频率 ( I D F ) = l o g ( 语料库的文档总数 包含词 w 的文档数 + 1 ) 逆文档频率(IDF)=log(\frac{语料库的文档总数}{包含词w的文档数+1}) 逆文档频率(IDF)=log(包含词w的文档数+1语料库的文档总数)
      • 关键字抽取方式:计算所有词的TF-IDF=TF*IDF,对计算结果进行倒序排列,得到排名前TopN个词汇作为文本关键词
  • CNN有卷积核,池化层,线性层。计算公式: N = W − F + 2 P S + 1 N=\frac{W-F+2P}{S} + 1 N=SWF+2P+1

  • RNN模型(处理序列数据)

    • 存在长期依赖缺失的问题:在处理长时间问题时,由于梯度消失造成的较远信息对此时几乎不产生影响
    • 长短期神经网络LSTM和门控循环单元GRU可以解决长距离依赖缺失问题
    • LSTM有遗忘门(决定遗忘的信息),输入门(更新细胞状态),输出门(由隐藏表示,输入变量,细胞状态决定)
    • GRU是在LSTM的基础上提出的,与LSTM相比取消了细胞状态向量,门控结构也减少了,简化了LSTM的结构并提高其计算效率
  • Transformer模型是基于自注意力机制的深度神经网络模型,提高了计算效率,并更好地捕捉长距离依赖关系

    • Positional Encoding: 区分单、双数,利用正、余弦函数进行位置编码
    • Multi-Head Attention:多头注意力机制是一种扩展自注意力机制的方法,它将自注意力机制分解为多个“头”,每个“头”都在不同的表示空间中学习信息,从而能够捕捉到更丰富的特征和关系,保证了可以学习到一个词的多个语义
      • A t t e n t i o n ( Q , K , V ) = S o f t m a x ( Q K T d k ) V Attention(Q, K, V) = Softmax(\frac{QK^{T}}{\sqrt{d_{k}}})V Attention(Q,K,V)=Softmax(dk QKT)V
      • ∗ d k \frac{*}{\sqrt{d_{k}}} dk :首先要除以一个数,防止输入softmax的值过大,导致偏导数趋近于0;其次选择根号d_k是因为可以使得q*k的结果满足期望为0,方差为1的分布。
      • 掩码操作Mask: 包含Padding Mask和Sequence Mask两种。掩码就是让矩阵某些元素变为负无穷的数,使得其在后续Softmax中的概率为0。其中Padding Mask旨在消除输入序列中Padding的影响;而Sequence Mask只存在于解码器中,目的是在预测下一个词时,覆盖住后面的词汇注意力信息,达到只用前面序列来预测下一词的目的
    • FFN模块是为了增加模型的非线性能力(因为内部使用的激活函数)
    • NLP中Layer Normalization针对句内每个单词归一,Batch Normalization针对batch内同一位置单词的不同特征归一
  • 模型的评价指标

    • TP(true positive-真阳性):表示样本的真实类别为正,最后预测得到的结果也为正;FP(false positive-假阳性):表示样本的真实类别为负,最后预测得到的结果却为正;FN(false negative-假阴性):表示样本的真实类别为正,最后预测得到的结果却为负;TN(true negative-真阴性):表示样本的真实类别为负,最后预测得到的结果也为负
    • 准确率表示预测正确的样本数占总样本书的比例。 A c c u r a c y = T P + T N T P + T N + F P + F N Accuracy=\frac{TP+TN}{TP+TN+FP+FN} Accuracy=TP+TN+FP+FNTP+TN
    • 精确率表示预测为正样本的样本中,正确预测为正样本的概率。 P r e c i s i o n = T P T P + F P Precision=\frac{TP}{TP+FP} Precision=TP+FPTP
    • 召回率表示正确预测出正样本占实际正样本的概率。 R e c a l l = T P T P + F N Recall=\frac{TP}{TP+FN} Recall=TP+FNTP
    • F1 score折中了召回率与精确率。 F 1 = 2 ∗ R e c a l l ∗ P r e c i s i o n R e c a l l + P r e c i s i o n F1=2*\frac{Recall*Precision}{Recall+Precision} F1=2Recall+PrecisionRecallPrecision
    • HR (命中率-Hits Ratio)预测正确的用户占所有用户的比例,强调预测的“准确性”。 H R = 1 N ∑ i = 1 N h i t s ( i ) HR=\frac{1}{N}\sum\limits_{i=1}^{N}hits(i) HR=N1i=1Nhits(i)
    • MRR (平均倒数排名-Mean Reciprocal Rank)表示待推荐的项目是否放在了用户更显眼的位置,强调“顺序性”。 M R R = 1 N ∑ i = 1 N 1 p i MRR=\frac{1}{N}\sum\limits_{i=1}^{N}\frac{1}{p_{i}} MRR=N1i=1Npi1 p i p_{i} pi表示第 i 个用户的真实访问值在推荐列表的位置
    • NDCG(归一化折损累计增益-Normalized Discounted Cumulative Gain)用于判断对于一个用户,返回的推荐item列表是否更好
      • Gain:一个列表中所有item的相关性分数。 G a i n = r e l ( i ) Gain=rel(i) Gain=rel(i)
      • Cumulative Gain: 表示对K个item的Gain进行累加(没有考虑顺序)。 C G k = ∑ i = 1 k r e l ( i ) CG_{k} = \sum\limits_{i=1}^{k} rel(i) CGk=i=1krel(i)
      • Discounted Cumulative Gain:考虑排序顺序的因素,使得排名靠前的item增益更高,对排名靠后的item进行折损。 D C G k = ∑ i = 1 k r e l ( i ) l o g 2 ( i + 1 ) DCG_{k}=\sum\limits_{i=1}^{k} \frac{rel(i)}{log_{2}(i+1)} DCGk=i=1klog2(i+1)rel(i)
      • IDGC(ideal DCG):理想的DCG,IDCG的依据是:是根据rel(i)降序排列,即排列到最好状态。算出最好排列的DCG,就是IDCG。 N D C G = D C G I D C G NDCG=\frac{DCG}{IDCG} NDCG=IDCGDCG
  • 残差结构及意义:在结果上加输入,防止梯度消失和网络退化

  • Bert是由多个Transformer Encoder一层一层地堆叠起来

    • Embedding由三种Embedding求和而成
      • Token Embeddings:针对单词,会在开头加入CLS,结尾加入SEP
      • Segment Embeddings:区别两种句子,前句赋0,后句赋1
      • Position Embeddings:针对位置,不同于Transformer使用正余弦函数,bert随机初始化位置嵌入。前者只能标记位置,后者不仅可以标记位置,还可以学习到这个位置有什么用。
    • 长度限制为512

简单代码

  • 数据结构里面的算法,手撕就好(例如:—句话说快排)
  • 每一个数有一个概率,要求写一个随机数发生器,使随机数产生概率符合要求
  • 最大子矩形面积,(记得是leetcode原题,大家可以去看一下)
  • 判断数独是否是有效数独(行、列、每个3*3矩阵判断)
  • 矩阵中正方形最大面积
  • 2D接雨水

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1813971.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

软件3班20240612

加粗样式 maven 根据的使用案例 package com.yanyu;public class Demo02 {// 设置 一个 求 两个数 的 和 的 方法 sumpublic void sum(int num1, int mum2) {System.out.println("两个数 的 和 是 :" (num1 mum2));} }import com…

盲盒小程序推广与运营策略的挑战

随着盲盒经济的兴起,越来越多的商家开始关注并尝试开发盲盒小程序。然而,在推广和运营盲盒小程序的过程中,我们也不可避免地会遇到一些挑战。下面,我将就用户获取、留存以及活跃度提升等方面,探讨这些挑战及可能的应对…

常用环境部署(十四)——Docker部署MinIO

一、安装Docker及Docker-compose https://blog.csdn.net/wd520521/article/details/112609796 二、Docker-compose部署MinIO 1、在服务器创建/data/minio目录 mkdir -p /data/minio 2、 docker-compose.yml脚本创建 vim /data/minio/docker-compose.yml (1&a…

使用易备数据备份软件,简单快速地备份 Oracle 数据库

易备数据备份软件能够以简单高效的方式,实现对 Oracle 数据库的保护。 易备数据备份软件数据库备份功能的关键特性 自动保护网站数据库及应用程序实时备份,不需要任何中断或数据库锁定基于日期和时间的备份任务计划可恢复到一个已存在的数据库或创建一…

【java计算机毕设】图书商城管理系统MySQL springboot vue html maven送文档

1项目功能介绍 【java计算机毕设】图书商城管理系统 Java Spring Boot vue HTML MySQL 赠送文档 PPT 2项目简介 系统功能: 图书商城管理系统包括管理员和用户两种角色。 管理员的功能包括在个人中心修改个人信息,以及在基础数据管理中管理会员等级类型和…

STM89C51开发学习1

环境安装: 使用Keil uVision4环境进行对51单片机的学习。 在进行使用之前先用keygen进行对软件的破解防止后续发生不必要的问题。 开发环境下载完毕后,检查电脑是否有串口驱动(可以在网上下载) CH340驱动。 安装stcai-…

小程序视图渲染数据和部分事件的绑定

今天依旧使用这个目录进行教学 数据的渲染 在 index.js的 page中定义一个data对象结构是这样的 Page({data:{name:张三} }) 在index.wxml 中 利用模板语法进行渲染 <view >{{name}}</view> 注意这个模板里边不能使用js的方法 要循环渲染数组&#xff0c;如 在…

目标检测中的anchor机制

目录 一、目标检测中的anchor机制 1.什么是anchor boxes&#xff1f; 二、什么是Anchor&#xff1f; ​编辑三、为什么需要anchor boxes&#xff1f; 四、anchor boxes是怎么生成的&#xff1f; 五、高宽比&#xff08;aspect ratio&#xff09;的确定 六、尺度(scale)的…

数字影像产业园:打造数字经济高地,赋能未来产业

成都国际数字影像产业园凭借其得天独厚的区位优势、完善的配套设施、先进的产业定位和便捷的交通条件&#xff0c;逐步成为成都市乃至全国数字影像、文创、媒体产业的重要聚集地。 成都国际数字影像产业园位于成都市金牛区的核心地带&#xff0c;其主导产业为数字影像、文创、媒…

LCD电子广告牌课程设计

概述 1.1课程设计简介 亮丽实用的广告牌可以给我们的生活添加光彩、可以给店铺招揽生意。传统的广告牌都是固定的汉字&#xff0c;并且时间长了会掉色&#xff0c;使汉字模糊难认&#xff0c;这就给我的生活带来很多的不便。尤其到了晚上传统广告牌就会失去其该有的作用。所以在…

四季变换,制氮机使用注意事项

随着四季的轮回变换&#xff0c;大自然展现着不同的风貌。对于制氮机而言&#xff0c;季节的变换同样会带来不同的使用挑战和注意事项。本文将为您揭示四季变换对制氮机使用的影响&#xff0c;帮助您更好地掌握制氮机的季节使用须知。 春季 温湿度变化&#xff1a;春季温湿度逐…

VitePress做一个自己的知识博客

创建项目 // 1.创建项目,直接在空项目下安装vitepress(npm/yarn等都可以,这个可以看官网,官网给了好几种安装方式) yarn add -D vitepress // 2.初始化配置项目(npm/官网也给了多种包管理工具的安装方式) yarn vitepress init // 初始化命令执行完会遇到以下几个问题 ┌ Welc…

C语言之数组

目录 一、数组的概念 二、一维数组的使用 数组的创建 数组的初始化 数组的使用 三、一维数组在内存中的存储 四、sizeof计算数组元素个数 五、二维数组的使用 数组的创建 数组的初始化 数组的使用 六、二维数组在内存中的存储 七、C99中的变长数组 八、总结 一、…

linux系统安装anaconda,并通过java程序调用python程序

虚拟环境准备 首先准备一块空的分区&#xff0c;安装anaconda至少要20g以上才能执行简单程序&#xff0c;这里准备20G的磁盘空间 创建分区,执行以下步骤&#xff0c;之后执行reboot重启 fdisk /dev/sda p n 回车 回车 w查看当前系统创建的分区&#xff0c;我这里是名为sda3的…

Docker:认识Docker Bridge网络

文章目录 为什么需要网络管理Docker网络架构简介CNMLibNetwork驱动Docker网络管理命令网络命令基本操作网络详解docker Bridge网络 容器之间的网络通信DNS解析 为什么需要网络管理 容器的网络默认会与宿主机器以及其他的容器相互隔离&#xff0c;但是还需要考虑到下面的这些问…

2024年大数据、区块链与物联网国际会议(ICBDBLT 2024)

2024 International Conference on Big Data, Blockchain, and Internet of Things 【1】大会信息 会议简称&#xff1a;ICBDBLT 2024 大会地点&#xff1a;中国青岛 审稿通知&#xff1a;投稿后2-3日内通知 会议官网&#xff1a;www.icbdblt.com 【2】会议简介 即将召开的…

Linux内网数据代理与数据映射实验

背景介绍 有两台主机&#xff0c;其中一台可以联网&#xff0c;而另一台只能与联网主机&#xff0c;尝试通过配置&#xff0c;使该主机也能正常上网&#xff0c;这常应用于企业内部不联网的服务器&#xff0c;需要安全可靠或临时上网的场景&#xff0c;借助另一台可以上网的内…

Docker:认识Bind Mounts绑定卷

文章目录 绑定卷bind mount创建卷操作案例使用mount创建绑定卷 使用场景管理卷和绑定卷的区别&#xff1f; 绑定卷bind mount -v和-mount都可以进行绑定卷的创建 创建卷 功能&#xff1a;完成卷映射 语法&#xff1a; docker run -v name:directory[:options]...参数&…

python数据分析--- ch1-2 python初识入门

python数据分析--- ch1-2 python初识入门 1. 安装并启动jupyter2. 打印变量print()练一练 3. 变量与赋值 input()3.1 示例--饮料交换3.2 饮料交换完整code3.3 jupyter中写入code到py文件中3.4 在终端运行.py文件 &#xff1a; python 文件名3.5练一练1&#xff1a;简易版2&…

[leetcode]删除链表中倒数第k个结点

. - 力扣&#xff08;LeetCode&#xff09; class Solution { public:ListNode* trainningPlan(ListNode* head, int cnt) {int n 0;ListNode* node nullptr;for (node head; node; node node->next) {n;}for (node head; n > cnt; n--) {node node->next;}retu…