In recommendation systems, the choice of loss function is critical since a good loss may significantly improve the model performance. However, manually designing a good loss is a big challenge due to the complexity of the problem. A large fraction of previous work focuses on handcrafted loss functions, which needs significant expertise and human effort. In this paper, inspired by the recent development of automated machine learning, we propose an automatic loss function generation framework, AutoLossGen, which is able to generate loss functions directly constructed from basic mathematical operators without prior knowledge on loss structure. More specifically, we develop a controller model driven by reinforcement learning to generate loss functions, and develop iterative and alternating optimization schedule to update the parameters of both the controller model and the recommender model. One challenge for automatic loss generation in recommender systems is the extreme sparsity of recommendation datasets, which leads to the sparse reward problem for loss generation and search. To solve the problem, we further develop a reward filtering mechanism for efficient and effective loss generation. Experimental results show that our framework manages to create tailored loss functions for different recommendation models and datasets, and the generated loss gives better recommendation performance than commonly used baseline losses. Besides, most of the generated losses are transferable, i.e., the loss generated based on one model and dataset also works well for another model or dataset. Source code of the work is available at https://github.com/rutgerswiselab/AutoLossGen.
翻译:在建议系统中,损失功能的选择至关重要,因为良好的损失可能会大大改善模型性能。然而,由于问题的复杂性,人工设计良好的损失是一个巨大的挑战。以前工作的很大一部分侧重于手工制造的损失功能,需要大量专门知识和人力投入。在本文件中,由于最近开发的自动机器学习,我们提议了一个自动损失功能生成框架,AutoLossGen,这个框架能够直接从基本的数学操作者那里产生损失功能,而没有事先对损失结构的了解就直接建立这种功能。更具体地说,我们开发了一个控制器模型,通过强化学习来生成损失功能,并开发迭代和交替优化时间表,以更新控制器模型和推荐模型的参数。在建议系统中自动产生损失的一个挑战是建议数据集的极端紧张性,这导致了损失生成和搜索的微弱的奖励问题。为了解决问题,我们进一步开发了一种奖励过滤机制,以便高效地产生损失。实验结果显示,我们的框架能够为不同的建议模型和数据集创建有针对性的损失功能,而产生的损失使得建议模型比通常使用的基线损失模型产生更好的业绩。此外,最易被使用的是生成的数据系统。