请教embedding和fc层的区别
Created by: HugoLian
我看到book中推荐系统的网络结构,从用户、电影的原始输入,到feature之间,都是embedding_layer + fc_layer:
usr_gender_id = paddle.layer.data(name='gender_id', type=paddle.data_type.integer_value(2))
usr_gender_emb = paddle.layer.embedding(input=usr_gender_id, size=16)
usr_gender_fc = paddle.layer.fc(input=usr_gender_emb, size=16)
请问: 1)这里embedding的作用是什么? 2)embedding和fc有什么区别呢?
另外我了解的embedding层,主要作用除了降维之外,embedding的输出结果还可以近似表达词之间的相关程度,这就需要训练的时候将输入切分成:context -> target的训练对语料: 实际上这样是一个三层的网络(输入,隐藏,输出),当使用的时候舍去输出层,用隐藏层的矩阵作为输出结果 请问: 3)咱们paddle的embedding_layer,是上述的概念么? 还有一个问题: 4)我看推荐这个例子中,用户的职业,性别等,都是one-hot,如果加入一个用户兴趣,那么兴趣可能是一组多个维度为1的vector,那么这中vector的输入,在embedding和fc层的输出结果,有什么区别呢?
问题比较多,希望各位大侠赐教!