目标;对于一个很稀疏的特征,如onehot,想把它压缩到维度很小,并且不同的one-hot向量之间不再是相互正交的。
实现方式是用神经网络,输入和输出均为one-hot,取中间隐藏层的结果作为该输入对应的embedding特征,以CBOW模型为例。
输入为上下文单词对应的one-hot,来预测当前单词的one-hot,损失函数为y与y_hat的交叉熵,最终得到权重矩阵W 和W'。
训练时,C个上下文单词乘以W得到隐向量后求平均,再乘以W'得到y_hat,与y计算loss,反向传播修正权重W,W'
对于量级比较大的情况,有两个问题:
1. 数据库的数据怎么接入python训练?
2. W维度太高需要大量数据和时间,怎么改善?
参考
https://blog.csdn.net/yu5064/article/details/79601683