word2vec

目标是算出v(w),即o(wh+b),h和b要提取字词信息
基本假设:某词所出现的上下文与该词有较高的corr

CBOW:context(w)->w(用Linear(context(w))的平均值作为上下文信息,粗暴地使用one-hot直接评估
skip-gram:w->context(w)
原版都很暴力,编码、解码全是Linear
所以要同时训练h,b和评估器,以下两种方法接入了新的评估器:

分层softmax:在隐藏层传给输出层的过程中,对语料库建哈夫曼树,用二分类的sigmoid按照树路径累乘结果代替多分类的softmax算概率。其核心思想为转化多分类为二分类。(一个常用的替换softmax的trick)

负采样:
为了优化时间,不对所有单词的概率进行预测,而是只取一部分负样本,规定其得分为负,而正例(中心词)得分为正。用linear“展开”上下文信息x(维度扩回词汇表大小),且只需正负两类展开器(当然,linear后的信息都与样本的One-hot点积了一下,这也是以数学形式定义的“corr”),并使用sigmoid(二分类,作用是使 得分关联上正负性),当然为了防止sigmoid梯度消失还得log一下。(用正负得分代替交叉熵损失)

https://zhuanlan.zhihu.com/p/11335442818

posted @   Anticipator  阅读(9)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
点击右上角即可分享
微信分享提示