NLP中经常用到hashing trick,和一般分类或者回归问题中使用的hashing trick是一回事吗?
1个回答
本质上其实是一回事。也是通过合并来降维的。
语句1: "There is a dog. The dog is running."
语句2: "There is a cat. It is running, too."
1 there
2 is
3 a
4 dog
5 the
6 running
7 cat
8 it
9 too
语句1: "1 2 3 4 5 4 2 6"
语句2: "1 2 3 7 8 2 6 9"
如果用OneHotEncode的话,我们需要两个9维的向量存放这两句话。如果有其他m个语句,出现k个单词,那么我们就需要一个长度为k的向量来表示每个语句。这样的话,维数会特别大,数据也会特别sparse。
如果我们采用hashing trick,比如用mod 4作为hashing function,那么
1 there
2 is
3 a
0 dog
1 the
2 running
3 cat
0 it
1 too
语句1: "1 2 3 0 1 0 2 2"
语句2: "1 2 3 3 0 2 2 1"
不管是多大的词汇量,语句都可以被表示为一个四维向量
v1 = [2, 2, 3, 1]
v2 = [1, 2, 3, 2]
SofaSofa数据科学社区DS面试题库 DS面经