1.ldaԴ??
2.bertåldaåºå«
3.利用TIMIT数据集做声纹识别,kaldi
4.VASP软件中文手册 | 第三章:安装、编译和维护 VASP软件
ldaԴ??
在研究推荐和排序算法的过程中,DSSM(深度结构语义模型)是不可或缺的一部分。本文将详细介绍DSSM及其变体CNN-DSSM和LSTM-DSSM。
论文链接:microsoft.com/en-us/res...
源码:github.com/baharefatemi...
简介
现代搜索引擎在检索文章时,maven 更新源码通常将文章中的关键字与query中的内容进行比较。然而,这种做法存在一个问题,即文字具有多义性,同样的含义可以用多种表达方式进行表达。因此,我们需要对query和document进行语义上的相似度匹配。
通常,我们会使用隐语义模型LSA、LDA来衡量Query和Document之间的相似性。然而,由于LSA、LDA是无监督学习的模型,这些模型的效果并不符合预期。基于隐语义模型,有两种扩展:第一种是使用BLTM结合DPM来拟合query和document之间的关系,另一种方法是采用深度模型对query和document进行自编码,但这两种方法都是可拓展平台源码无监督的方法。
本文针对搜索场景,提出了一系列深度网络语义模型(Deep Structured Semantic Models),模型的核心思想是:首先将query和document映射到同一个低维语义空间,然后通过cosine来计算query和document之间的距离。与之前的无监督学习模型不同,DSSM使用document的点击量进行训练,因此DSSM的效果要优于其他无监督模型。
接下来,我们来看看DSSM是如何对query和document进行处理的。
DSSM的结构采用DNN结构,将输入的query和document转换到低维的语义空间,然后计算他们的cosine相似度。
语义特征计算部分,首先使用DNN网络将query和document从高维的空间转换到低维的空间。对输入的query和document假设他们是x,经过转换的向量为y,[公式]表示隐藏层,[公式]分别表示隐藏层的参数和偏置。
最后一层采用tanh函数作为激活函数。最后将query和document映射到低维向量之后,我们采用cosine计算他们的相似度。
为了解决query和document在第一层维度非常大的问题,本文提出了word hashing的模板市场源码方法,来对文本进行降维。做法就是使用n-gram来表示一个词语,例如good,我们把它拆分成trigram:go goo ood od。
为了训练DSSM,我们需要得到query和他们对应的点击的document。作者假设如果用户点击了某个document,那么这个query和document就是相关的。因此,作者认为DSSM的目标是最大化给定query所对应的document的条件似然函数。条件似然函数的计算方式为:[公式]。其中,[公式]是平滑参数,D是针对query的所有可能相关的document集合,[公式]表示和query有关的且用户点击的document。
有了以上的介绍,我们所要最大化的条件似然函数就是[公式]。因此,loss函数就是:[公式]。文中作者采用梯度下降法来最大化loss函数。
作者收集了现实生活中用户搜索的日志作为实验的数据集,这份数据包含条用户query,平均每条query包含条url。皮皮段子app源码每一个(query, document)的相关性分为5档,分别是0~4分,得分是人工评价的。模型的排序效果通过NDCG来衡量,这是推荐系统常见的评价指标,具体就是评价推荐给用户的内容是否是用户感兴趣的,而用户的阅读习惯一般是从上到下,所以我们希望将最相关的内容排在前面,然后以此类推。
实验效果如下,其中:首先我们可以看出DSSM的效果优于其他模型,并且L-WH DNN的效果是最好的。
DSSM是搜索里非常经典的一个算法,在工业界也广泛被使用。而且,根据应用场景的不同,对特征处理也会有一些区别。例如,在推荐召回模块的应用中,我们的输入可能就不再是query和doc的word embedding,而是用户和推荐的物品(例如**,商品)的特征。
本文依然是买q网源码由DSSM的作者提出,在语义特征计算部分采用CNN网络,网络结构如上图所示。在词向量的表达上依然采用了word hash(不知道为啥作者对word hash这么执着)。
不过,trigram表示不能忽略了文本的上下文信息,因此作者在word trigram的基础上增加了letter trigram。在一定的窗口大小内,对该窗口内的word进行拼接就是letter trigram,例如I have an apple,可以被拼接为 # I have, I have an, ... 以此类推。
然后以上表示经过卷积层,max-pooling,和全连接之后得到query和doc的低维向量。最后计算相似度的时候还是cosine距离。
本文针对CNN-DSSM无法捕捉长文本的上下文信息的缺点,引入了LSTM。同时在LSTM的cell中加入了peehole,LSTM的cell结构如上图所示。
与传统的LSTM不同,作者在遗忘门、输入门、输出门中都考虑了[公式],总体来说考虑的信息更丰富。
bertåldaåºå«
IDAProæ¯åæ±ç¼å·¥å ·ï¼bertæ¯ååTransformerçEncoderã
BERTçå®ç°ä¸»è¦æ¯å´ç»å·¥ç¨åç项ç®æ¥è¿è¡çãbert模åç主è¦åæ°ç¹é½å¨pre-trainæ¹æ³ä¸ï¼å³ç¨äºMaskedLMåNextSentencePrediction两ç§æ¹æ³åå«ææè¯è¯åå¥å级å«çrepresentationã
ä½ä¸ºåæ±ç¼ç¨åºçIDAProè½å¤åå»ºå ¶æ§è¡æ å°ï¼ä»¥ç¬¦å·è¡¨ç¤ºï¼æ±ç¼è¯è¨ï¼æ¾ç¤ºå¤çå¨å®é æ§è¡çäºè¿å¶æ令ãIDAProå¯ä»¥ä»æºå¨å¯æ§è¡ä»£ç çææ±ç¼è¯è¨æºä»£ç ï¼å¹¶ä½¿è¿äºå¤æç代ç æ´å ·äººç±»å¯è¯»æ§ï¼è¿ä¸ªå¯è¯»å ·æç¸å¯¹æ§ï¼ã
利用TIMIT数据集做声纹识别,kaldi
更新():
附上本人源码
同步上传了一份更为详细的pdf教程
对于使用kaldi进行声纹识别的新手来说,由于timit数据集规模较小,训练速度快,便于观察中间过程,因此适合用于学习和实践。
本人刚开始接触声纹识别,对kaldi的入门有一定难度。在参考aishell v1和清华大学cslt的代码基础上,我将所学知识应用于timit数据集。(如有问题和建议,请随时交流!)
调整语音文件分布,转换格式:从网上下载到的TIMIT,原始文件分布如下。这里的SPK,如“FAKS0”、“MDAB0”等名称。借鉴AISHELL.v1中的文件分布,我们只需获取TRAIN和TEST两个文件夹,将TRAIN和TEST目录下DR里的说话人文件分别放在一个目录下,可以手动改为
为了方便观察中间过程和结果,我们最好修改一下文件名和wav名,删除一些不用的文件。可以调用modify_name.py
最后的文件分布为
这就是我们需要的数据文件分布
格式转换(这一步很关键):因为timit中的wav不是RIFF格式,在提取MFCC时会报错(如:“expected RIFF or RIFX, got NIST”),所以要用kaldi自带的功能(sph2pipe)将wav全部转换一下
准备工作都做完了,接下来就可以开始训练模型了!如果你比较了解kaldi的训练和测试流程,可以直接执行./run.sh(如果机器配置较低,防止内存溢出,你需要修改一些参数,如njob、thread、process等)。由于timit数据量较小,所以整体时间也很快。最终,你可以看到基于ivector的余弦、lda和PLDA三种评估结果,结果同样放在scores文件下。
本人当时跑的结果:使用了个高斯分量,ivector维度为,lda测试时降维到(这些参数都可以在run.sh中直接设置,其他中间过程参数一般在local、sid、utils和steps目录下的文件中设置)
测试集中,3个语音进行注册(enroll),7个语音进行验证(eval),共有人
数据准备:参考了aishell.v1的方式
声纹识别只需要spk2utt、utt2spk和wav.scp三种文件。这些文件表示了“说话人-语音文件集”、“语音文件-说话人”、“语音文件-文件路径”的映射。
模型训练:参考了aishell.v1的方式
特征提取:Mfcc和vad参数都可以在conf文件中修改。
接下来将测试集中的特征数据拆分为“注册集”和“验证集”:其中$trials文件很重要,它是关于“说话人-语音文件-是否匹配”的映射。如果其中一行的语音文件来自这个说话人,则是否匹配为“target”;如果语音文件不来自这个说话人,则为“nontarget”。
I-vector训练:先训练一个对角协方差混合高斯,基于此,再训练一个全协方差混合高斯,它就是UBM模型;然后再训练一个I-vector模型。
测试I-vector特征提取:分别对训练集、注册集和验证集提取各自的I-vector。
评估:使用了清华大学的方式
可视化:最后使用matlab工具包{ DETware_v2.1}进行可视化
VASP软件中文手册 | 第三章:安装、编译和维护 VASP软件
华算科技朱老师团队的Cilver老师和Ravi老师带来的《VASP官方入门手册》第三部分详述了如何安装、编译并维护VASP软件。作为备受信赖的DFT计算工具,每年有超过1万篇论文基于VASP发表,截至年,总数已超过万篇,其计算能力不仅验证实验结果,还能预测新发现。
本教程将分为三个步骤进行讲解:
1. **获取VASP软件**:由于软件非公共共享,需通过官方途径联系Doris Vogtenhuber获取许可。申请时需提供简短的研究描述,不超过半页。
2. **安装过程**:安装需一定的UNIX知识,包括理解tar、gzip和make命令。建议在~/VASP/src目录下操作。首先,从官方网站下载源代码(vasp.X.tar.gz)和赝势数据库,然后解压到特定的子目录,如potUSPP_LDA、potUSPP_PW等。接下来,解压缩vasp.*.tar.gz文件,并根据makefile.machine选择合适的配置,注意检查Makefile中的提示进行配置,可能需要调整编译优化。
3. **编译和维护**:VASP软件存储在vasp.4.lib和vasp.4.x目录中,后者更新频繁。例如,可以使用makeparam工具手动编译。更新软件时,先从服务器获取最新版本的vasp.4.X.X.tar.gz,解压缩后确保替换旧版本,但需注意解压后可能需要按特定步骤重新编译。
完成安装和配置后,你可以开始进行计算,但务必遵循教程中的详细指导,以确保顺利运行和解决问题。这个教程旨在帮助您快速掌握VASP计算,成为高性能计算的高手!