| 第198行: |
第198行: |
| | | | |
| | ===== 技术原理: ===== | | ===== 技术原理: ===== |
| − | GloVe 不是基于上下文预测,而是通过统计词与词之间的'''共现频率''',利用整个语料库构造一个共现矩阵 <math>X</math> ,并以此矩阵为基础优化词向量。其基本思想是:两个词之间的语义关系可以通过它们与其他词的共现比值来建模。 | + | GloVe 是一种'''基于全局共现信息'''来学习词向量的方法,与 Word2Vec 不同,它'''不依赖上下文窗口中的预测任务''',而是采用词与词之间在整个语料库中'''共现频率的统计信息'''来构造词语之间的关系。 |
| | + | |
| | + | GloVe 的设计灵感来自以下关键观察:'''词语的语义关系可以通过它们与其他词共现的比例来表达,而不是仅通过是否共现或是否邻近'''。例如,“ice” 和 “steam” 都与 “water” 有很强的共现关系,但 “ice” 更倾向与 “cold” 共现,而 “steam” 更倾向与 “hot” 共现。GloVe 试图让词向量之间的'''差异或比例'''能反映出这种语义关系。 |
| | + | |
| | + | 在训练之前,GloVe 首先对整个语料库构建一个 '''共现矩阵<math>X</math>''': |
| | + | |
| | + | 每个元素 '''<math>X_{ij}</math>''' 表示词'''<math>j</math>'''在词 '''<math>i</math>''' 的上下文窗口中出现的次数; |
| | + | |
| | + | 这个矩阵是稀疏且高维的,规模为 '''<math>V \times V</math>''',其中'''<math>V</math>'''是词汇表大小。 |
| | | | |
| | 损失函数如下: | | 损失函数如下: |