图解 · 运行过程 · 工程取舍
新增一个轴,究竟多了什么
[2,3]为什么变成[2,3,4]?
配套正文:F02基础课
动态图解 · F02
新增一个轴,究竟多了什么
[2,3]为什么变成[2,3,4]?
把每个Token位置想成有一张“数值卡”。原来卡上只有词表编号;查表后卡上有四个数字。句子数没有增加,位置数没有增加,只增加了“在这张卡上选第几个数字”这一种选择。
轴选择数据的一层地址:哪句话、哪个位置、第几个特征。
形状每层地址有多少种选择,如[2,3,4]。
特征参与后续计算的数值分量;不保证每格都能命名成一种语义。
输入与适用条件:继续使用正文的两句话、6项词表和4维Embedding表。PAD只占位置;屏蔽它的机制见F12。
1 / 4 · 先数一排编号
第1步,共4步
窄屏可左右滑动图形,或点击“放大图形”。文字解释紧随图后。
[1,2,3]表示一句话里的三个位置。此时选定“位置1”,就取到一个整数2。
IDs = [1,2,3]默认静止。用“下一步”看完解释再继续;播放到最后一步自动停止。键盘聚焦播放器后,可用左右键逐步查看、空格播放/暂停。图中颜色辅助区分,含义同时用文字注明。
逐步说明与计算记录
以下解释全部展开,与播放器使用同一份数据;不是另换输入的第二个算例。
1.先数一排编号
[1,2,3]表示一句话里的三个位置。此时选定“位置1”,就取到一个整数2。
IDs = [1,2,3]2.再摆第二条输入
“你爱”只有两个真实位置,先用PAD占一个格。现在有两行,每行三个编号,所以是[2,3]。
IDs.shape = [2,3]3.把一个格子展开成一排数
选中第二条输入的“爱”,取到编号2,再去Embedding表取第2行。原来的一个格子现在由四个特征格子表示。
2 → [-0.3,0.8,0.1,0.5]4.两张三行四列的表
每句话成为一张表:三行对应三个位置,四列对应四个特征。两句话就是两张这样的表,因此写作[2,3,4]。
X.shape = [2,3,4]为什么需要
把形状理解为地址,后面看矩阵乘法才知道沿哪个方向处理。
怎样实现
固定一句、再固定位置、最后取一个特征,逐层读下标。
可能的代价与误解
把隐藏宽度当作词表大小,会混淆Embedding表和输出概率表。
如何判断是否做对
核对[2,3,4]共24个数,且X[1,1]确实是“爱”的四维向量。