深度学习Deep Learning
详细介绍深度学习的每一种算法原理
zhiyong_will
这个作者很懒,什么都没留下…
展开
-
Pix2Pix
1. 概述很多的图像处理问题可以转换成图像到图像(Image-to-Image)的转换,即将一个输入图像翻译成另外一个对应的图像。通常直接学习这种转换,需要事先定义好损失函数,然而对于不同的转换任务,需要设计的损失函数也不尽相同。得益于生成对抗网络GAN的提出,尤其是条件生成对抗网络cGAN[1](conditional GAN),可以直接学习这种映射关系,同时不需要人工定义该映射的损失函数,可以通过自动的学习得到。基于cGAN的基本原理,Pix2Pix[2]提出了一种图像转图像的通用框架。Pix2Pix原创 2022-05-16 20:03:57 · 102 阅读 · 0 评论 -
深度卷积生成对抗网络DCGAN
1. 概述在原始的GAN[1]中,生成网络GGG和判别网络DDD使用的都是前馈神经网络MLP。随着深度学习技术的发展,得益于卷积神经网络CNN在图像领域的成功,在DCGAN[2]中尝试将CNN与GAN相结合,用CNN网络替换GAN的生成网络GGG和判别网络DDD中的MLP,同时在训练的过程中使用了一些技巧来避免模型崩溃和模型不收敛等问题。2. 算法原理2.1. DCGAN的优化相比于GAN,除了将GAN中生成器和判别器中的MLP替换成CNN外,其余的基本不变,DCGAN的价值函数依然为:minG原创 2022-05-11 11:18:32 · 244 阅读 · 0 评论 -
Conditional GAN
1. 概述GAN的出现为数据生成提供了一种新的思路,以图像生成为例,在GAN框架中,不再需要其他复杂的操作,如Markov Chain等,只需要对定义好的网络进行backpropagation即可完成生成网络的训练。在原始的GAN框架中,包括了两个部分,分别为生成网络(Generator)GGG和判别网络(Discriminator)DDD,其中生成网络(Generator)GGG用于生成图片,判别网络(Discriminator)DDD用于判别一张图片是否是真实的。通过不断提高生成网络GGG的生成质量,原创 2022-05-07 14:57:21 · 683 阅读 · 0 评论 -
生成对抗网络GAN
1. 概述生成对抗网络GAN(Generative adversarial nets)[1]是由Goodfellow等人于2014年提出的基于深度学习模型的生成框架,可用于多种生成任务。从名称也不难看出,在GAN中包括了两个部分,分别为”生成”和“对抗”,整两个部分也分别对应了两个网络,即生成网络(Generator)GGG和判别网络(Discriminator)DDD,为描述简单,以图像生成为例:生成网络(Generator)GGG用于生成图片,其输入是一个随机的噪声z\boldsymbol{z}z原创 2022-05-06 19:29:15 · 1691 阅读 · 0 评论 -
CTR——人工神经网络+决策树
一、引言这是篇论文的笔记,记录阅读该论文中的一些体会,希望与大家一起学到知识。论文题目为《Using neural networks for click prediction of sponsored search》。二、文章的核心思想 文章的核心思想是利用人工神经网络+决策树的方法去进行点击率的预测。1、模型 该模型主要是有两个阶段:第一阶段是里原创 2015-03-10 20:03:17 · 6221 阅读 · 1 评论 -
推荐算法——基于图的推荐算法PersonalRank算法
实验结果:#coding=utf-8def PersonalRank(G, alpha, root, max_step): rank = dict() for x in G.keys(): rank[x] = 0 rank[root] = 1 for k in range(max_step): print str原创 2016-06-21 13:35:31 · 12764 阅读 · 0 评论 -
推荐系统中的常用算法——基于Graph Embedding的GES和EGES
1. 概述GES和EGES是阿里在2018年提出的两个Graph Embedding算法,其中GES全称为Graph Embedding with Side Information,EGES全称为Enhanced Graph Embedding with Side Information。2. 算法原理参考文献Wang J, Huang P, Zhao H, et al. Billion-scale commodity embedding for e-commerce recommendat原创 2020-09-30 01:14:47 · 3315 阅读 · 1 评论 -
推荐系统中的常用算法——行为序列Transformer(BST)
1. 概述2. 算法原理参考文献Chen Q , Zhao H , Li W , et al. Behavior Sequence Transformer for E-commerce Recommendation in Alibaba[J]. 2019.阿里推荐算法(BST): 将Transformer用于淘宝电商推荐原创 2020-10-13 00:25:10 · 1760 阅读 · 0 评论 -
推荐系统中的常用算法——基于Session的推荐
1. 概述原创 2020-10-16 13:15:56 · 1457 阅读 · 0 评论 -
推荐系统中的常用算法——序列深度匹配SDM
1. 概述2. 算法原理参考文献Lv F , Jin T , Yu C , et al. SDM: Sequential Deep Matching Model for Online Large-scale Recommender System[J]. 2019.[深度模型] 阿里大规模深度召回序列模型SDMSDM:用户长短期兴趣召回模型...原创 2020-10-16 17:56:10 · 1663 阅读 · 0 评论 -
推荐系统——(论文阅读笔记)YouTube的视频推荐系统
《The YouTube video recommendation system》是一篇详细介绍YouTube视频推荐的论文,在整个系统中没有复杂的算法,使用了一些简单有效的策略,这也符合工业界的应用,在工业界,为了考虑算法复杂度,数据量,可维护性等等一些因素,在工业界中,通常会选择一些简单有效的方法。以下是论文的核心内容:目标帮助用户找到高质量且符合用户兴趣的视频,最终实现的...原创 2016-10-21 15:21:55 · 5143 阅读 · 0 评论 -
推荐算法——基于矩阵分解的推荐算法
一、推荐算法概述对于推荐系统(Recommend System, RS),从广义上的理解为:为用户(User)推荐相关的商品(Items)。常用的推荐算法主要有:基于内容的推荐(Content-Based Recommendation)协同过滤的推荐(Collaborative Filtering Recommendation)基于关联规则的推荐(Association Rule-Based原创 2016-04-12 17:07:51 · 48395 阅读 · 45 评论 -
自然语言中的重要概念——熵(Entropy)
一、背景二、熵1、信息熵2、条件熵3、联合熵4、相对熵三、互信息原创 2016-04-09 15:49:00 · 8349 阅读 · 0 评论 -
情感分析——深入snownlp原理和实践
一、snownlp简介snownlp是什么? SnowNLP是一个python写的类库,可以方便的处理中文文本内容,是受到了TextBlob的启发而写的,由于现在大部分的自然语言处理库基本都是针对英文的,于是写了一个方便处理中文的类库,并且和TextBlob不同的是,这里没有用NLTK,所有的算法都是自己实现的,并且自带了一些训练好的字典。注意本程序都是处理的unicode编码,所以使...原创 2018-06-26 11:23:16 · 83204 阅读 · 32 评论 -
机器学习算法实现解析——word2vec源码解析
在阅读本文之前,建议首先阅读“简单易学的机器学习算法——word2vec的算法原理”,掌握如下的几个概念:什么是统计语言模型神经概率语言模型的网络结构CBOW模型和Skip-gram模型的网络结构Hierarchical Softmax和Negative Sampling的训练方法Hierarchical Softmax与Huffman树的关系有了如上的一些概念,接下来就可以去读word原创 2017-03-16 16:32:44 · 31083 阅读 · 8 评论 -
神经语言模型
1. 语言模型概述要想弄语言模型的本质是判断一条语句是否合理,在其发展的过程中,分别经历了专家语法规则模型,统计语言模型,神经网络语言模型三个阶段,专家语法规则模型是在计算机初始阶段,随着计算机编程语言的发展,归纳出的针对自然语言的语法规则。统计语言模型通过对句子的概率分布进行建模,从统计来来说,概率高的语句比概率底的语句更为合理,神经网络语言模型在统计语言模型的基础上,通过网络的叠加和特征的逐层提取,可以表征除了词法外,相似性,语法,语义,语用等多方面的表示。2. 统计语言模型2.1. 统计语言模型原创 2021-10-10 22:46:05 · 279 阅读 · 0 评论 -
文本分类fastText算法
1. 概述在深度学习遍地开花的今天,浅层的网络结构甚至是传统的机器学习算法被关注得越来越少,但是在实际的工作中,这一类算法依然得到广泛的应用,或者直接作为解决方案,或者作为该问题的baseline,fastText就是这样的一个文本分类工具。fastText是2016年由facebook开源的用于文本分类的工具,fastText背后使用的是一个浅层的神经网络,在保证准确率的前提下,fastText算法的最大特点是快。2. 算法原理2.1. fastText的模型结构fastText是如何保证速度的呢原创 2020-12-05 17:35:31 · 318 阅读 · 0 评论 -
简单易学的机器学习算法——Latent Dirichlet Allocation(理论篇)
引言LDA(Latent Dirichlet Allocation)称为潜在狄利克雷分布,是文本语义分析中比较重要的一个模型,同时,LDA模型中使用到了贝叶斯思维的一些知识,这些知识是统计机器学习的基础,这些知识点包括Gamma函数和分布,Beta函数和分布,Dirichlet函数和分布,贝叶斯定理,Gibbs采样等等。在接下来的文章,我们通过以下几个方面具体介绍LDA的核心思想:基础知原创 2016-01-25 16:03:55 · 21216 阅读 · 3 评论 -
简单易学的机器学习算法——受限玻尔兹曼机RBM
yi原创 2016-07-26 18:52:51 · 16792 阅读 · 2 评论 -
TensorFlow实践——Softmax Regression
Softmax Regression是Logistic回归在多分类上的推广,对于Logistic回归以及Softmax Regression的详细介绍可以参见:简单易学的机器学习算法——Logistic回归利用Theano理解深度学习——Logistic Regression深度学习算法原理——Softmax Regression下面的代码是利用TensorFlow基本API实现的...原创 2018-04-18 10:38:29 · 914 阅读 · 0 评论 -
TensorFlow实践——Multilayer Perceptron
本文是在Softmax Regression的基础上增加了一个隐含层,实现了Multilayer Perceptron的一个模型,Multilayer Perceptron是深度学习模型的基础,对于Softmax Regression的TensorFlow实现,可以参见博文“TensorFlow实践——Softmax Regression”。对于Multilayer Perceptron的基本原理...原创 2018-04-26 22:53:25 · 922 阅读 · 0 评论 -
UFLDL笔记——自我学习
注:最近打算将UFLDL教程重新看一遍,其实里面有很多关于神经网络以及深度学习的知识点很有用,但是只是学习深度学习的话有一些内容就有点多余,所以想整理一个笔记,记录下神经网络到深度学习的一些知识点。整个教材已经非常好,网上有原版的英文版,也有翻译的中文版,这个只是自己的学习笔记,对原来教程中的内容进行了梳理,有些图也是引用的原来的教程,若内容上有任何错误,希望与我联系,若内容有侵权,同样也希望告知,原创 2015-11-09 14:54:00 · 2000 阅读 · 0 评论 -
深度学习算法原理——Attention-Based BiLSTM
论文地址:Attention-Based Bidirectional Long Short-Term Memory Networks for Relation Classification文章中提到使用双向的LSTM(Bidirectional LSTM)加上Attention的机制处理文本分类的相关问题,以解决CNN模型不适合学习长距离的语义信息的问题。1. 网络结构在Attention...原创 2019-07-01 23:31:55 · 9501 阅读 · 1 评论 -
深度学习在NLP中的应用——TextCNN
论文地址:Convolutional Neural Networks for Sentence Classification这篇文章是首次将CNN模型应用在文本分类中,在我的工作中,也是经常需要使用到TextCNN这样的文本分类方法。1. TextCNN的网络结构TextCNN的模型结构中主要包含如下的几个部分:Embedding层:将词映射成对应的向量。以上图为例,7个词被影射到对应...原创 2019-06-29 16:04:21 · 1483 阅读 · 0 评论 -
深度学习算法原理——循环神经网络RNN
1. 概述循环神经网络(Recurrent Neural Networks, RNN)主要用于时序数据,最常见的时序数据如文章,视频等,ttt时刻的数据与t−1t-1t−1时刻的数据存在内在的联系。RNN模型能够对这样的时序数据建模。2. 算法原理RNN模型的基本结构如下所示(图片来自参考文献):如上图所示,循环神经网络通过使用自带反馈的神经元,能够处理任意长度的时序数据,对此结构按照时间展开的形式如下所示(图片来自参考文献):2.1. RNN的结构上图中给出了RNN的内部结构,RNN根据原创 2020-09-17 19:52:15 · 915 阅读 · 0 评论 -
深度学习算法原理——LSTM
1. 概述在循环神经网络RNN一文中提及到了循环神经网络RNN存在长距离依赖的问题,长短期记忆(Long Short-Term Memory,LSTM)网络便是为了解决RNN中存在的梯度爆炸的问题而提出。在LSTM网络中,主要依靠引入“门”机制来控制信息的传播。2. 算法原理2.1. LSTM的网络结构LSTM的网络结构如下所示(图片来自参考文献):与循环神经网络RNN相比,LSTM的网络结构要复杂的多。在LSTM网络中,通过引入三个门来控制信息的传递,这三个门分别为遗忘门(forget ga原创 2020-09-20 23:54:33 · 801 阅读 · 0 评论 -
推荐系统中的常用算法——Wide & Deep
这篇文章是阅读《Wide & Deep Learning for Recommender Systems》后的总结,该文章中提出结合Wide模型和Deep模型的组合方法,对于提升推荐系统(Recommendation System)的性能有很重要的作用。1、背景本文提出Wide & Deep模型,旨在使得训练得到的模型能够同时获得记忆(memorization)...原创 2017-10-07 20:10:16 · 32929 阅读 · 5 评论 -
Facebook搜索的向量搜索
1. 概述不管是搜索系统还是推荐系统中,向量召回都是一个不可或缺的一个部分,担负着重要的作用。为应对大规模数据问题,通常采用多阶段的架构,分为召回,粗排,精排,重排等多个步骤,每一个阶段的数据量会极大较少,为后续的精细化排序节约大量的时间,可以由下图所示:而向量召回属于召回阶段,以搜索为例,传统的搜索以文本匹配为主,通过query中的词(如果是中文,需要首先对query进行分词)检索所有的候选doc,如果doc中出现了query中的词,则表示命中,最后返回所有命中的doc。在文本匹配中存在一些问题,如原创 2022-04-23 17:42:25 · 1369 阅读 · 0 评论 -
GPT:Generative Pre-Training
1. 概述随着深度学习在NLP领域的发展,产生很多深度网络模型用于求解各类的NLP问题,从word2vec词向量工具的提出后,预训练的词向量成了众多NLP深度模型中的重要组成部分。然而传统的word2vec生成的词向量都是上下文无关的,其生成的词向量式固定,不会随着上下文的改变而改变,这种固定的词向量无法解决一词多义的问题。比如“bank”这个词,既可以表示“河岸”,也可以表示“银行”。Embeddings from Language Models(ELMo)[1]是2018年提出的一种基于上下文的预训练原创 2022-04-23 16:15:51 · 1080 阅读 · 0 评论 -
深度兴趣网络DIN
1. 概述用户兴趣是推荐系统中非常重要的trigger,在召回阶段,通过召回与用户兴趣相匹配的item,在排序阶段,用户兴趣作为很重要的一个特征维度,与用户兴趣越相似的item将会被排到越靠前的位置。因此,在推荐系统中,对于用户兴趣的建模显得尤为重要。在目前为止,通常采用的方法是对用户的历史行为挖掘,实现对用户兴趣的建模。在实际生活中,一个人的兴趣通常是多方面的,不是单一的,传统的建模方式是将用户的行为序列转成固定长度的embedding形式,这样的方式却限制了对用户兴趣的建模能力。其主要原因是用户的兴原创 2022-04-23 10:46:23 · 137 阅读 · 0 评论 -
文本生成seq2seq框架
1. 概述之前在工作中用到BERT算法,对其中的Attention机制追根溯源发现,NLP中比较早提出使用Attention机制是在Seq2Seq框架中。Seq2Seq是Sequence to Sequence的缩写,在Seq2Seq中包含了一个encoder模块和一个decoder模块。这种同时包含encoder和decoder的结构不禁让笔者回忆起最初学习深度学习时的一个模型——AutoEncoder,AutoEncoder模型是将输入通过encoder的网络生成中间的结果,并通过decoder对中间原创 2022-04-13 02:36:51 · 348 阅读 · 0 评论 -
Multi-gate Mixture-of-Experts(MMoE)
1. 概述在工业界经常会面对多个学习目标的场景,如在推荐系统中,除了要给用户推荐刚兴趣的物品之外,一些细化的指标,包括点击率,转化率,浏览时长等等,都会作为评判推荐系统效果好坏的重要指标,不同的是在不同的场景下对不同指标的要求不一样而已。在面对这种多任务的场景,最简单最直接的方法是针对每一个任务训练一个模型,显而易见,这种方式带来了巨大的成本开销,包括了计算成本和存储成本。多任务学习(Multi-task Learning)便由此而生,在多任务学习中,希望通过一个模型可以同时学习多个目标。然而在多任务学习原创 2022-04-07 12:33:08 · 165 阅读 · 0 评论 -
Embeddings from Language Models(ELMo)
1. 概述随着深度学习在NLP领域的发展,产生很多深度网络模型用于求解各类的NLP问题,在这众多的网络模型中,无疑都会使用到词向量的概念,这就不得不提及word2vec[1]词向量生成工具。从word2vec词向量工具的提出后,预训练的词向量成了众多NLP深度模型中的重要组成部分。然而传统的word2vec生成的词向量都是上下文无关的,其生成的词向量式固定,不会随着上下文的改变而改变,这种固定的词向量无法解决一词多义的问题。比如“bank”这个词,既可以表示“河岸”,也可以表示“银行”。Embedding原创 2022-04-05 17:57:07 · 1331 阅读 · 0 评论 -
Neural Factorization Machines(NFM)
相对于DeepFM和DCN对于Wide&Deep Wide部分的改进,NFM可以看作是对Deep部分的改进。NFM的全称是Neural Factorization Machines,如果我们从深度学习网络架构的角度看待FM,FM也可以看作是由单层LR与二阶特征交叉组成的Wide&Deep的架构,与经典W&D的不同之处仅在于Deep部分变成了二阶隐向量相乘的形式。再进一步,NFM从修改FM二阶部分的角度出发,用一个带Bi-interaction Pooling层的DNN替换了FM的特征原创 2022-04-05 15:32:54 · 1167 阅读 · 0 评论 -
Deep Learning Recommendation Model(DLRM)
1. 概述DLRM(Deep Learning Recommendation Model)[1]是Facebook在2019年提出的用于处理CTR问题的算法模型,与传统的CTR模型并没有太大的差别,文章本身更注重的是工业界对于深度模型的落地,在文中介绍了很多深度学习在实际落地过程中的细节,包括如何高效训练。在此我们更多的是关注模型本身,尝试揭开DLRM模型的本质。在DLRM模型中,突出解决两个问题:第一,如何处理离散特征。CTR的训练样本中包含了大量的离散的类别特征,这样的数据是不能直接放入到深度学习原创 2022-04-03 23:35:57 · 3106 阅读 · 0 评论 -
DeepFM
参考文献Guo H, Tang R, Ye Y, et al. DeepFM: A Factorization-Machine based Neural Network for CTR Prediction[J]. 2017:1725-1731.CTR预估算法之FM, FFM, DeepFM及实践推荐系统遇上深度学习(三)–DeepFM模型理论和实践...原创 2022-04-03 00:28:48 · 220 阅读 · 0 评论 -
Deep&Cross Network(DCN)
Google 2017年发表的Deep&Cross Network(DCN)同样是对Wide&Deep的进一步改进,主要的思路使用Cross网络替代了原来的Wide部分。其中设计Cross网络的基本动机是为了增加特征之间的交互力度,使用多层cross layer对输入向量进行特征交叉。单层cross layer的基本操作是将cross layer的输入向量xl与原始的输入向量x0进行交叉,并加入bias向量和原始xl输入向量。DCN本质上还是对Wide&Deep Wide部分表达能力原创 2022-03-30 21:42:11 · 241 阅读 · 0 评论 -
人脸识别系统FaceNet原理
引入随着深度学习的出现,CV领域突破很多,甚至掀起了一股CV界的创业浪潮,当次风口浪尖之时,Google岂能缺席。特贡献出FaceNet再次刷新LFW上人脸验证的效果记录。本文是阅读FaceNet论文的笔记,所有配图均来自于论文。转载请注明:http://blog.csdn.net/stdcoutzyx/article/details/46687471FaceNet与其他的深度学习方法在人脸上的应用不同,FaceNet并没有用传统的softmax的方式去进行分类学习,然后抽取其中某一层作为特征,而原创 2022-03-29 10:00:33 · 6275 阅读 · 0 评论 -
Deep Crossing
1. 概述算法原理它涵盖了深度CTR模型最典型的要素,即通过加入embedding层将稀疏特征转化为低维稠密特征,用stacking layer,或者叫做concat layer将分段的特征向量连接起来,再通过多层神经网络完成特征的组合、转换,最终用scoring layer完成CTR的计算。跟经典DNN有所不同的是,Deep crossing采用的multilayer perceptron是由残差网络组成的,这无疑得益于MSRA著名研究员何恺明提出的著名的152层ResNet。参考文献[1]原创 2022-03-24 17:06:27 · 1536 阅读 · 0 评论 -
PNN网络(Product-based Neural Network)
1. 概述PNN的全称是Product-based Neural Network,PNN的关键在于在embedding层和全连接层之间加入了Product layer。传统的DNN是直接通过多层全连接层完成特征的交叉和组合的,但这样的方式缺乏一定的“针对性”。首先全连接层并没有针对不同特征域之间进行交叉;其次,全连接层的操作也并不是直接针对特征交叉设计的。但在实际问题中,特征交叉的重要性不言而喻,比如年龄与性别的交叉是非常重要的分组特征,包含了大量高价值的信息,我们急需深度学习网络能够有针对性的结构能够表原创 2022-03-20 10:34:52 · 1837 阅读 · 0 评论