Add Two Numbers
Question
- leetcode: Add Two Numbers | LeetCode OJ
- lintcode: Add Two Numbers
Google Play 用的深度神经网络推荐系统,主要思路是将 Memorization(Wide Model) 和 Generalization(Deep Model) 取长补短相结合。论文见 Wide & Deep Learning for Recommender Systems
log-linear 模型在自然语言处理上使用非常广泛,其最主要的原因在于其灵活性,允许很多特征被使用在该模型上,相比于之前的简单估计技术(比如HMMs的标记问题,PCFGs的解析问题)。
在计算机科学领域,CYK算法(也称为Cocke–Younger–Kasami算法)是一种用来对上下文无关文法(CFG,Context Free Grammar)进行语法分析(parsing)的算法。该算法最早由John Cocke, Daniel Younger and Tadao Kasami分别独立提出,其中John Cocke还是1987年度的图灵奖得主。CYK算法是基于动态规划思想设计的一种自底向上语法分析算法。
隐马尔科夫模型(Hidden Markov Model,以下简称HMM)是比较经典的机器学习模型了,它在语言识别,自然语言处理,模式识别等领域得到广泛的应用。当然,随着目前深度学习的崛起,尤其是RNN,LSTM等神经网络序列模型的火热,HMM的地位有所下降。但是作为一个经典的模型,学习HMM的模型和对应算法,对我们解决问题建模的能力提高以及算法思路的拓展还是很好的。
这部分讲机器翻译,尤其是在统计机器翻译(SMT)系统上,此部分关注IBM翻译模型。这里以翻译法语(源语言)为英语(目标语言)为例,用\(f\)表示法语句子,即\(f_1,f_2...f_m\),其中m为句子的长度;用e表示英语句子,即\(e_1,e_2...e_l\),其中l表示英语句子的长度。用\((f^{(k)},e^{k})\)表示第k个法语句子和英语句子。
在两年半之前作过梯度提升树(GBDT)原理小结,但是对GBDT的算法库XGBoost没有单独拿出来分析。虽然XGBoost是GBDT的一种高效实现,但是里面也加入了很多独有的思路和方法,值得单独讲一讲。因此讨论的时候,我会重点分析和GBDT不同的地方。