Dan*_*lly 5 python recommendation-engine machine-learning neural-network tensorflow
阅读了有关推荐系统的广泛和深入模型的论文后,我有兴趣尝试类似的东西。然而,我正在努力概念化他们在论文中使用的跨产品转换是如何完成的。DNNLinearCombinedClassifier 的教程演示了如何使用 tensorflow.feature_columns.crossed_columns 来执行该转换,但是该实现仅在要交叉的两列之间的一对一关系中才有意义(即创建交叉列“workclass_x_education”时) ,对于数据集中的每个样本,只有一个工作类别值和一个教育值)。在谷歌的论文中他们说:
广泛组件包括用户安装应用程序和印象应用程序的跨产品转换
另外:
每个示例对应一个印象。标签是应用程序获取:如果安装了印象深刻的应用程序,则为 1,否则为 0。
据我所知,每个样本都是一次印象,并且有一个“印象深刻的应用程序”功能,详细说明了该印象所营销的应用程序。在这种情况下,不可能有一个“已安装的应用程序”的功能,因为用户在印象时可能有数百个已安装的应用程序。这很令人困惑,因为论文中的数字确实暗示它是一个单一的特征:
我是否应该将“用户安装的应用程序”分类功能解释为不作为单个功能,而实际上作为其数据集,每个应用程序都有一个功能,并带有二进制标志,表示用户是否安装了该应用程序,以及复制此功能在张量流中我需要做类似的事情......
app_list = ['app1', 'app2', 'app3', 'app4', ...]
installed_app_features = ['app1_installed', 'app2_installed', 'app3_installed', 'app4_installed', ...]
impressed_app = tf.feature_column.categorical_column_with_vocabulary_list(key='impressed_app', vocabulary_list=app_list)
installed_apps = []
crossed_features = []
for app in installed_app_features:
feature = tf.feature_column.categorical_column_with_vocabulary_list(key='app', vocabulary_list=[0,1])
installed_apps.append(feature)
crossed_features.append(
tf.feature_column.crossed_column(
[impressed_app, feature],
100
)
)
Run Code Online (Sandbox Code Playgroud)
...或者我只是完全错过了一些东西并且需要以不同的方式思考这个问题?
非常感谢您提供的任何帮助。
担
归档时间: |
|
查看次数: |
745 次 |
最近记录: |