如何把词转换为向量
图2:词向量查询表
上述过程也可以使用一个字典数据结构实现。事实上如果不考虑计算效率,使用字典实现上述功能是个不错的选择。然而在进行神经网络计算的过程中,需要大量的算力,常常要借助特定硬件(如GPU)满足训练速度的需求。但是GPU仅支持以张量(tensor)为单位计算,因此在实际场景中,我们需要把Embedding Lookup的过程转换为张量计算,如 图3 所示。
图3:张量计算示意图
假设对于句子"我,爱,人工,智能",把Embedding Lookup的过程转换为张量计算的流程如下:
。在这个张量里共有4行、50000列,从上到下,每一行分别代表了“我”、“爱”、“人工”、“智能”四个单词的One-Hot Encoding。最后,我们把这个张量
和另外一个稠密张量
相乘,其中
张量的形状为50000 128(50000表示词表大小,128表示每个词的向量大小)。经过张量乘法,我们就得到了一个4128的张量,从而完成了把单词表示成向量的目的。