论文|万物皆可vector之语言模型:从n-gram到nnlmrnnlm

搜索与推荐Wiki 搜索与推荐Wiki     2022-10-21     151

关键词:

Word2vec的出现改变了OneHot的高维稀疏的困境,自此之后各种xxx2vec如雨后春笋般冒了出来,用来解决各种嵌入式编码,包括后来的各种Embedding方式其实很多本质上都是Word2vec的延伸和优化。在本公众号「搜索与推荐Wiki」上也发布了不少Embedding相关的文章,后续也会持续的发布相关文章,欢迎关注。

万物皆可Embedding系列会结合论文和实践经验进行介绍,前期主要集中在论文中,后期会加入实践经验和案例,目前已更新:

后续会持续更新Embedding相关的文章,欢迎持续关注「搜索与推荐Wiki


1.1、基础知识

a)定义

语言模型(Language model)是自然语言处理的重要技术,自然语言处理中最常见的是文本数据,我们可以把一段自然语言文本看作是一段离散的时间序列,假设一段长度为 T T T的文本中的词依次是 w 1 , w 2 , . . . , w T w_1, w_2, ..., w_T w1,w2,...,wT,语言模型就是计算他的概率:
P ( w 1 , w 2 , . . . , w T ) P(w_1, w_2,..., w_T) P(w1,w2,...,wT)
也就是说语言模型是对语句的概率分布的建模。

语言模型可以分为:统计语言模型和神经网络语言模型。

b)概率表示

假设 S S S 表示一个有意义的句子,eg:今天天气晴朗,适合户外爬山,可以将这个句子表示为: S = w 1 , w 2 , . . . , w n S = w_1, w_2, ..., w_n S=w1,w2,...,wn,换成例子中的句子: w 1 = 今 天 , w 2 = 天 气 , w 3 = 晴 朗 , w 4 = 适 合 , w 5 = 户 外 , w 6 = 爬 山 w_1=今天, w_2=天气, w_3=晴朗, w_4=适合, w_5=户外, w_6=爬山 w1=,w2=,w3=,w4=,w5=,w6=

P ( S ) P(S) P(S) 表示这个句子出现的概率,展开为:
P ( S ) = P ( w 1 , w 2 , . . . , w n ) P(S)=P(w_1, w_2, ..., w_n) P(S)=P(w1,w2,...,wn)
利用条件概率可以转化为:
P ( S ) = P ( w 1 , w 2 , . . . , w n ) = P ( w 1 ) P ( w 2 ∣ w 1 ) P ( w 3 ∣ w 1 , w 2 ) . . . P ( w n ∣ w 1 , w 2 , . . . , w n − 1 ) P(S) = P(w_1, w_2, ..., w_n) = P(w_1) P(w_2|w_1)P(w_3|w_1,w_2) ... P(w_n|w_1, w_2,...,w_n-1) P(S)=P(w1,w2,...,wn)=P(w1)P(w2w1)P(w3w1,w2)...P(wnw1,w2,...,wn1)
其中 P ( w 1 ) P(w_1) P(w1) 表示第一个词出现的概率,即「今天」在整个语料库中出现的概率, P ( w 2 ∣ w 1 ) P(w_2|w_1) P(w2w1) 表示在给定第一个词的情况下,第二个词出现的概率,即在整个语料库中给定「今天」这个词,「天气」这个词也出现的概率,后边的依次类推。

其中的 P ( w 1 ) P(w_1) P(w1) P ( w 2 ∣ w 1 ) P(w_2|w_1) P(w2w1)很容易计算得到,但是 P ( w 3 ∣ w 1 , w 2 ) P(w_3|w_1,w_2) P(w3w1,w2)及以后涉及变量较多,计算的复杂度也会变得更加复杂。

1.2、统计语言模型——N-gram模型

a)马尔可夫假设

为了解决上面的过于复杂难以计算的问题,需要引入马尔可夫假设,马尔科夫假设中很重要的一点是有限视野假设,即每一个状态只与它前面的 n − 1 n-1 n1个状态有关,这被称为 n n n 阶马尔可夫链

b)n-gram

当应用在语言模型中时,就是指每一个词的概率只与前边的 n − 1 n-1 n1 个词有关系,这就被称为 n n n 元语言模型,当 n = 2 n=2 n=2 时,被称为二元模型,此时上述公式展开为:
P ( S ) = P ( w 1 , w 2 , . . . , w n ) = P ( w 1 ) P ( w 2 ∣ w 1 ) P ( w 3 ∣ w 2 ) . . . P ( w n ∣ n 1 ) P(S) = P(w_1, w_2, ..., w_n) = P(w_1) P(w_2|w_1)P(w_3|w_2)...P(w_n|n_1) P(S)=P(w1,w2,...,wn)=P(w1)P(w2w1)P(w3w2)...P(wnn1)
经过马尔可夫假设的简化,计算 P ( S ) P(S) P(S)的概率也会变得容易很多,当然随着 n n n的增加,相应的计算复杂度也会增加,而 n n n 越大,越逼近数据的真实分布, n n n 通常取值为2、3、4、5。

c)概率估计

通过上面的描述,可以明确的是:

  • 每一个句子都可以拆分成不同的词的全排列
  • 每一个句子都可以通过条件概率公式计算得到一个表示该句子的合理性概率
  • 通过引入马尔可夫假设,简化句子的计算概率

以二元模型为例,如何计算 P ( w i ∣ w i − 1 ) P(w_i|w_i-1) P(wiwi1)?从概率统计中可知:
P ( w i

论文|deepwalk的算法原理代码实现和应用说明(代码片段)

万物皆可Embedding系列会结合论文和实践经验进行介绍,前期主要集中在论文中,后期会加入实践经验和案例,目前已更新:万物皆可Vector之语言模型:从N-Gram到NNLM、RNNLM万物皆可Vector之Word2vec:2个模型、2... 查看详情

论文|doc2vec的算法原理代码实现及应用启发(代码片段)

万物皆可Embedding系列会结合论文和实践经验进行介绍,前期主要集中在论文中,后期会加入实践经验和案例,目前已更新:万物皆可Vector之语言模型:从N-Gram到NNLM、RNNLM万物皆可Vector之Word2vec:2个模型、2... 查看详情

论文|sentence2vec&glove算法原理推导与实​现

万物皆可Embedding系列会结合论文和实践经验进行介绍,前期主要集中在论文中,后期会加入实践经验和案例,目前已更新:万物皆可Vector之语言模型:从N-Gram到NNLM、RNNLM万物皆可Vector之Word2vec:2个模型、2... 查看详情

论文|sentence2vec&glove算法原理推导与实​现

万物皆可Embedding系列会结合论文和实践经验进行介绍,前期主要集中在论文中,后期会加入实践经验和案例,目前已更新:万物皆可Vector之语言模型:从N-Gram到NNLM、RNNLM万物皆可Vector之Word2vec:2个模型、2... 查看详情

论文|item2vec论文中值得细细品味的8个经典tricks和thinks

万物皆可Embedding系列会结合论文和实践经验进行介绍,前期主要集中在论文中,后期会加入实践经验和案例,目前已更新:万物皆可Vector之语言模型:从N-Gram到NNLM、RNNLM万物皆可Vector之Word2vec:2个模型、2... 查看详情

论文|item2vec论文中值得细细品味的8个经典tricks和thinks

万物皆可Embedding系列会结合论文和实践经验进行介绍,前期主要集中在论文中,后期会加入实践经验和案例,目前已更新:万物皆可Vector之语言模型:从N-Gram到NNLM、RNNLM万物皆可Vector之Word2vec:2个模型、2... 查看详情

论文|deepwalk的算法原理代码实现和应用说明(代码片段)

万物皆可Embedding系列会结合论文和实践经验进行介绍,前期主要集中在论文中,后期会加入实践经验和案例,目前已更新:万物皆可Vector之语言模型:从N-Gram到NNLM、RNNLM万物皆可Vector之Word2vec:2个模型、2... 查看详情

论文|doc2vec的算法原理代码实现及应用启发(代码片段)

万物皆可Embedding系列会结合论文和实践经验进行介绍,前期主要集中在论文中,后期会加入实践经验和案例,目前已更新:万物皆可Vector之语言模型:从N-Gram到NNLM、RNNLM万物皆可Vector之Word2vec:2个模型、2... 查看详情

手把手写c++服务器(25):万物皆可文件之socketfd(代码片段)

...【更新中】 前言:大家一定听说过在Linux当中,万物皆是文件,任何客观的存在都是以文件形式呈现。前面讲socket编程的时候(手把手写C++服务器(21):Linuxsocket网络编程入门基础、手把手写C+& 查看详情

万物皆可gancyclegan原理详解

【万物皆可GAN】CycleGAN原理详解概述CycleGAN可以做什么图片转换图片修复换脸CycleGAN网络结构CycleGAN损失函数概述CycleGAN(CycleGenerativeAdversarialNetwork)即循环对抗生成网络.CycleGAN可以帮助我们实现图像的互相转换.CycleGAN不需要数据配对... 查看详情

万物皆可gan生成对抗网络生成手写数字part2(代码片段)

【万物皆可GAN】生成对抗网络生成手写数字Part2概述完整代码模型主函数输出结果生成的图片概述GAN(GenerativeAdversarialNetwork)即生成对抗网络.GAN网络包括一个生成器(Generator)和一个判别器(Discriminator).GAN可以自动提取特征,并判断和... 查看详情

万物皆可gan生成对抗网络生成手写数字part1(代码片段)

【万物皆可GAN】生成对抗网络生成手写数字Part1概述GAN网络结构GAN训练流程模型详解生成器判别器概述GAN(GenerativeAdversarialNetwork)即生成对抗网络.GAN网络包括一个生成器(Generator)和一个判别器(Discriminator).GAN可以自动提取特征,并判... 查看详情

万物皆可电商,生鲜的坎坷之路

  虽然现在还没达到万物皆可电商的地步,但是一些电商平台确实是以此为目标向前迈步。而作为实现这个目标的非常重要的一步,就是生鲜。例如最近的大樱桃不是到季节了嘛,各个电商大企业便开始用其“练手”。650)this.... 查看详情

万物皆可gan给马儿换皮肤(代码片段)

【万物皆可GAN】给马儿换皮肤概述真假斑马实现流程代码执行流程执行结果概述CycleGAN(CycleGenerativeAdversarialNetwork)即循环对抗生成网络.CycleGAN可以帮助我们实现图像的互相转换.真假斑马我们先来看一组图片,大家来猜一猜图上的动... 查看详情

万物皆可集成系列:低代码如何不成为数据孤岛(代码片段)

接口是计算机系统中两个独立的部件进行信息交换的共享边界。这种交换可以发生在计算机软、硬件,外部设备或进行操作的人之间,也可以是它们的结合。翻译一下,就是每个系统都是独立的个体,如果想让不同的系统之间有... 查看详情

万物皆可nft,utonnft正式上线内测

...。如今,NFT成为数字艺术品市场的“顶流”,“万物皆可NFT”正走向现实。数字经济发展迫切需要数字权益确立与保护。NFT的发展存在技术、法律等多重问题,而非同质化权益(NFR)有望成为探索数字权益确... 查看详情

万物皆可cassandra:huaweitag背后的神仙数据库

...现出了非常强大的核心竞争力。本文分享自华为云社区《万物皆可Cassandra——HUAWEITag背后的神仙数据库》,作者:GaussDB 数据库。什么是HUAWEITag?7月4日,华为旗下首个防丢产品——HUAWEITag防 查看详情

万物皆可集成系列:低代码如何不成为数据孤岛(代码片段)

接口是计算机系统中两个独立的部件进行信息交换的共享边界。这种交换可以发生在计算机软、硬件,外部设备或进行操作的人之间,也可以是它们的结合。翻译一下,就是每个系统都是独立的个体,如果想让不... 查看详情