what is word2vec

本文介绍了Word2vec模型及其两种变体:连续Bag-of-Words (CBOW) 和 Skip-Gram。详细阐述了这两种模型如何利用神经网络进行词向量的学习,并通过具体的例子解释了其工作原理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

什么是Word2vec?Skip-Gram和Continuous Bag of Words(CBOW)又是什么模型?

什么是Word2vec?

  用来学习文字向量表达的模型(相关文本文字的特征向量)。

两种Word2vec

  • 连续Bag-of-Words(CBOW)
    • 从上下文来预测一个文字
  • Skip-Gram
    • 从一个文字来预测上下文

  其实,用一个向量标识word已经提出有一段时间了,Tomas Mikolov的word2vec算法的一个不同之处在于,他把一个word映射到高维(50到300维),并且在这个维度上有了很多有意思的语言学特性,比如单词”Rome”的表达vec(“Rome”),可以是vec(“Paris”)-vec(“France”)+vec(“Italy”)的计算结果。

  Word2vec的示意图如下:
word2vec|center|200*150
  显然,word2vec是只有一个隐层的全连接神经网络,用来预测给定单词的关联度大的单词。

  WI的大小是V*N,V是单词词典的大小,每次输入是一个单词,N是你自己设定的隐层大小。

  举个例子,如果我们语料中仅仅有这3句话:“the dog saw a cat”,“the dog chased the cat”,“the cat climbed a tree”。那么单词词典中只有8个单词:the, dog, saw, a, cat, chased, climbed, tree。

  那么V=8,输入层的初始就是:
[0,0,0,0,0,0,0,0]代表:[“the”,”dog”,”saw”,”a”,”cat”,”chased”,”climbed”,”tree”]。输入[“”,”dog”,”“,”“,”“,”“,”“,”“]就可以表示为:[0,1,0,0,0,0,0,0],输入[“”,”“,”saw”,”“,”“,”“,”“,”“]就可以表示为:[0,0,1,0,0,0,0,0],如果是在字典中有的,就用1表示。

  WO的大小是N*V,于是,通过训练完毕的WI和WO,只要输入单词,就能预测出最符合这个上下文的下一个单词。当然这个单词一定是字典中有的,也就是说在大小为V的字典中选出概率最大的那个单词。

  那么,连续Bag-of-Words(CBOW)又是怎么从上下文来预测一个文字呢?其实就是它就是通过拷贝上面word2vec的输入层做到的:
continuous bag-of-words|center|150*100

  这样,拷贝次数C就是这个上下文短语的长度,即单词个数,每一个输入\(X_i\)就是一个单词。输入层和隐含层之间就多了好多个WI矩阵,每个矩阵就代表了这个单词对隐层的影响和贡献。最后N*V矩阵依然能预测出最可能的下一个单词。

  Skip-Gram就是把上图颠倒过来,如果你要预测的输出上下文的单词个数是C,那么就像CBOW一样,拷贝C次输出矩阵就可以了。

内容概要:本文深入探讨了Kotlin语言在函数式编程和跨平台开发方面的特性和优势,结合详细的代码案例,展示了Kotlin的核心技巧和应用场景。文章首先介绍了高阶函数和Lambda表达式的使用,解释了它们如何简化集合操作和回调函数处理。接着,详细讲解了Kotlin Multiplatform(KMP)的实现方式,包括共享模块的创建和平台特定模块的配置,展示了如何通过共享业务逻辑代码提高开发效率。最后,文章总结了Kotlin在Android开发、跨平台移动开发、后端开发和Web开发中的应用场景,并展望了其未来发展趋势,指出Kotlin将继续在函数式编程和跨平台开发领域不断完善和发展。; 适合人群:对函数式编程和跨平台开发感兴趣的开发者,尤其是有一定编程基础的Kotlin初学者和中级开发者。; 使用场景及目标:①理解Kotlin中高阶函数和Lambda表达式的使用方法及其在实际开发中的应用场景;②掌握Kotlin Multiplatform的实现方式,能够在多个平台上共享业务逻辑代码,提高开发效率;③了解Kotlin在不同开发领域的应用场景,为选择合适的技术栈提供参考。; 其他说明:本文不仅提供了理论知识,还结合了大量代码案例,帮助读者更好地理解和实践Kotlin的函数式编程特性和跨平台开发能力。建议读者在学习过程中动手实践代码案例,以加深理解和掌握。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值