美文网首页机器学习-算法理论
low rank,DNN在NLP领域的瓶颈

low rank,DNN在NLP领域的瓶颈

作者: shudaxu | 来源:发表于2019-03-12 20:23 被阅读0次

    在“深度学习中的特征工程”的notes中,表述了一个观点,DNN对低秩的特征表达,有较好的学习能力。其实,对于NLP目前的一些问题似乎也有着对应的一些思考。

    对于nlp领域的概率语言模型中,例如w2v中,学习出词语的embedding,然后做点积+softmax得出概率。其本质等价于求解矩阵分解(1)。而语言本身非常依赖于语境以及上下文,所以ground truth的矩阵应该是一个高秩矩阵(2)。该方法本身,对一个高秩矩阵做分解,其真实值(无法获得,穷举)分解出来的U*V矩阵本身对应的维度应该远远高于目前常用的量级(目前vector常用在10^2量级)。对有缺失值(不可能穷举)的矩阵分解本身是NP难问题,只能通过其秩(rank)的上确界假设(3)来逼近求解。单纯加大rank假设值,可以提升效果(4)但会使得模型难以学习

    因而dnn在nlp领域,并没有像在CV领域一样带来如此彻底的变革。

    (1)见最下。w2v的传统做法
    (2)在Breaking the softmax bottleneck: a high-rank rnn language model一文中有相应论述
    (3)其实目前的方法,例如w2v设定为10^2量级维度,就已经是进行了低秩假设
    (4)高秩语言模型经验上优于低秩语言模型

    w2v的传统做法:
    传统的词向量模型,使用矩阵分解的方法训练。源矩阵为统计出来的词共生矩阵(co-occurrence matrix)。C矩阵为V x V大小(V是词表的大小),Cij的值为语料中Vi和Vj两个词出现的次数。之后做矩阵分解,即可得到词向量(SVD分解中U矩阵)
    但这样的传统做法有很多问题:

    1. 由于很多词没有出现,导致矩阵极其稀疏,因此需要对词频做额外处理来达到好的矩阵分解效果;
    2. 矩阵非常大,维度太高(通常达到106×106的数量级);
    3. 需要手动去掉停用词(如although, a,...),不然这些频繁出现的词也会影响矩阵分解的效果。

    相关文章

      网友评论

        本文标题:low rank,DNN在NLP领域的瓶颈

        本文链接:https://www.haomeiwen.com/subject/rqhopqtx.html