作者姓名作为输入的神经网络架构?

人工智能 神经网络
2021-11-10 00:18:11

我正在构建一个神经网络来预测一件具有广泛输入(尺寸、艺术媒介等)的艺术品的价值,我也想将作者作为输入(它通常是一个巨大的单件艺术品的价值因素)。

我目前担心的是,作者的名字不是 NN 的理想数字输入(即,如果我只是用递增的整数值对每个作者进行编码,我将间接地为列表下方的作者分配更多价值-_-) . 我的想法是为我的数据集中的所有作者创建单独的输入,然后只使用一种热编码来更好地表示 NN 的输入。

然而,当我的训练数据中未包含的作者用作 NN 的输入(即新作者)时,这种方法会遇到问题。我可以使用“其他作者”输入字段来解决这个问题,但我担心这会不准确,因为我不会为这个输入训练 NN(所有具有估价的艺术品都有作者)。

我还没有完全考虑到这一点,但我想可能训练 2 个 NN,一个用于没有作者的评估,一个用于有作者的评估,以确保我有足够的训练数据来进行“无作者评估”以保持合理准确。

在我陷入实现之前,我仍在尝试概念化最好的 NN 架构,所以如果有人有任何建议/意见,我将非常感激!

在此先感谢,文斯

PS我这样做是为了与朋友进行一场小型比赛,以测试神经网络与传统的商业估值技术。请帮助我赢得计算机科学胜过精算科学。

2个回答

我推荐的最直接的方法是没有“其他作者”功能的单热编码解决方案。如果您在训练期间使用 drop-out,网络应该学习如何处理没有将任何作者特征设置为 1 的输入向量。然后,只要您有一个未知作者,您就根本没有任何 1作者的特征,它仍然应该学会如何处理它。

另一种可能的方法是具有“其他作者”功能的一次性编码。为了仍然获得该权重的训练数据,您可以简单地使用数据增强。最直接的数据增强方法是在训练数据中创建实例的副本,但对于这些副本,将“其他作者”特征设置为 1,而不是实际作者。

我能想到的最复杂的解决方案是获取作者的字符串表示,尝试让您的程序在线查找有关该作者的信息(例如尝试查找维基百科页面),通过 LSTM 推送所有文本。然后可以将 LSTM 的“输出层”与您的其他特征合并(这两个一起将成为您的“输入向量”),在其上再堆叠几层,然后训练整个事物结束-到结束。除非与您的朋友的竞争涉及大量金钱,否则这可能太复杂而不值得。

我会尝试找到关于作者的一些代理特征,而不是对作者的身份进行编码。一位作者可能的优秀特征包括作品其他特征的平均值(例如大小、媒体类型等),并且对于您的预测而言至关重要的是任何作品之前的销售价格的一些统计数据。请记住,历史训练数据要包括在销售时出现的代理数据。

拥有这些代理可能比一次性编码作者身份并让 ML 算法仅根据身份分配权重要好得多,特别是对于只有少量数据来表示它们的作者。

据我所知,几乎没有理由期望作者姓名的字符串与艺术品的价值相关。可能会有一些好与坏的品牌名称效应,但我认为即使与其他因素隔离,也很难预测,包括历史销售数据应该考虑到这种效应和类似效应,除了没有已知历史的艺术家。