我正在尝试有关keras的推荐问题 我的模型如下
def build_model(n_users, n_movies, n_factors, min_rating, max_rating):
user = Input(shape=(1,))
u = EmbeddingLayer(n_users, n_factors)(user)
movie = Input(shape=(1,))
m = EmbeddingLayer(n_movies, n_factors)(movie)
x = Concatenate()([u, m])
x = Dropout(0.05)(x)
x = Dense(10, kernel_initializer='he_normal')(x)
x = Activation('relu')(x)
x = Dropout(0.5)(x)
x = Dense(1, kernel_initializer='he_normal')(x)
x = Activation('sigmoid')(x)
x = Lambda(lambda x: x * (max_rating - min_rating) + min_rating)(x)
model = Model(inputs=[user, movie], outputs=x)
opt = Adam(lr=0.001)
model.compile(loss='mean_squared_error', optimizer=opt)
return model
当用户数量随时间变化而没有从头开始时,总有一种方法可以重新训练模型,因为如果我对嵌入的理解正确,那么嵌入层将无法正常工作。当用户或电影的数量发生变化时,我将不得不从头开始重新训练模型,是否有任何方法可以保留在密集层上学习到的权重。