有一个包含大量项目(~500,000)的数据库,每个项目都有一定数量的属性(~20),由整数标识。有大约 50,000 种不同的属性。
我想编写一个程序,根据项目的属性找到项目之间的最佳匹配。有一个指标可以定义匹配的好坏,但仅在匹配完成后的一段时间内。仅仅因为两个项目共享相同的属性并不意味着它会是一个很好的匹配。该程序必须从一组已经进行的匹配中学习(对于每个匹配项的度量是已知的),哪些属性组可以组合在一起并进行最佳匹配。
在学习过程之后,它应该能够为新项目进行最佳匹配,这些新项目部分具有与从中学习的项目相同的属性。此外,一旦指标可用以改进自身,程序就应该从它所做的每一次匹配中学习。
我该如何接受?我不确定这属于 AI 的哪个领域(因此得名),但我认为程序会开始按项目的属性对项目进行分类,因为这就是我手动执行的方式......我应该使用什么算法肯定看进去了?
编辑:我想到了 hopfield 网络,其中一个项目的部分或全部属性会将其引导到一个类别,但我不确定这是否适用于这个规模。