tf_repos icon indicating copy to clipboard operation
tf_repos copied to clipboard

deepFM中的field_size

Open drfilter opened this issue 7 years ago • 4 comments

你好,我看代码中的field_size是固定死的,但实际中如果遇到每行的field 大小不确定,因为是稀疏的, 所以就不能直接reshape了,请问有相应的解决方案吗? feat_ids = features['feat_ids'] feat_ids = tf.reshape(feat_ids,shape=[-1,field_size]) feat_vals = features['feat_vals'] feat_vals = tf.reshape(feat_vals,shape=[-1,field_size])

drfilter avatar Jun 11 '18 03:06 drfilter

参考一下DIN的代码:Feature_pipeline/get_aliccp_tfrecord.py & Model_pipeline/DIN.py 暂时没调出效果,先放出来吧,欢迎一起DEBUG

lambdaji avatar Jul 09 '18 12:07 lambdaji

这个field_size盯死的问题,现在有解决方案嘛

iverson476ers avatar Nov 26 '19 08:11 iverson476ers

这个field_size盯死的问题,现在有解决方案嘛

在NN里面filed_size一般是固定的,feature_size可以不固定,可能存在多值filed;多值特征的问题可以通过padding+mask解决,Model_pipeline/DIN.py里面有一个例子

lambdaji avatar Nov 29 '19 02:11 lambdaji

常见的情况是每行特征数不一致,一般会划分到固定数目的field_size里,每个field再生成定长的表达

shimin3x avatar Jan 03 '20 08:01 shimin3x