AI内参_69_066_高级推荐模型之三优化复杂目标函数
你好,我是洪亮杰。
今天我和你分享的主题是高级推荐模型之三,优化复杂目标函数。
周三我们讨论了协同矩阵分解,其主要思想就是解决多个两两关系的矩阵分解,并且希望能够建立隐变量之间的共享。
今天我们来看一个稍微不一样的话题,那就是如何优化更加复杂的目标函数。
为什么需要复杂的目标函数呢?在介绍更复杂的目标函数之前,我们首先来回想一下,在之前的分享中都接触到了哪些目标函数。
对于基于流行度或者相似度的推荐系统来说,其实并没有真正的目标函数的概念。
这些推荐模型都是某种直观的翻译。
这也导致了这些推荐系统很难直接使用。
在真实的应用中,往往是被当做特性。
很在其他模型中,基于信息的推荐系统,本质上就是监督学习在推荐系统中的应用。
因为是监督学习,那自然就需要目标函数。
这里经常是对点击率或者购买率进行建模,也就是说经常使用二分分类的目标函数。
当我们使用矩阵分解的架构来对用户和物品的关系进行建模时,绝大多数情况下,我们是在讨论评分。
对于评分信息常用的其实是线性回归,也有学者使用破松回归。
因为破松回归,对于整数变量的建模要好于线性回归。
当然了,矩阵分解也可以扩展到对点击率或者购买率的建模。
当年netflix x进赛之NETFL lix公司把获奖的矩阵分解拿来进行实现放入线上系统中,结果发现并没有本质性的提高推荐效果,这其实就和目标函数有关。
虽然netflix竞赛造就了矩阵分解等类似模型的流行,但是逐渐的研究人员和工业界从业人员也意识到,用户对物品的评分并不是矩阵系统需要优化的目标,也就是说目标函数选错了。
那么我们需要什么样的目标函数呢?直接对评分进行建模的最大问题就是,这和真实的推荐场景并不相符。
不管是电商平台还是新闻系统,我们并不是只在意用户对于某一些物品的评分,真实的应用场景往往是这样的。
用户打开应用,然后浏览一系列物品,由上往下进行翻阅,然后从中找到喜欢的物品。
这是不是很像?我们在讨论搜索的时候,用户对于搜索结果的浏览回忆一下。
在搜索的场景中,我们首先输入关键字,然后搜索算法会返回一系列的结果。
大多数情况下,我们会对返回的结果逐一检查。
在推荐场景下,我们虽然没有搜索关键词,但是整个从上往下的场景是类似的。
于是我们就可以从搜索排序中得到启发,尝试对推荐结果进行排序。
换句话说,我们并不在意用户的真实评分,或者我们是否能对用户和物品的喜好度进行完美的估计。
我们在意的是能否把用户可能喜欢的物品排到前面去。
把搜索系统中的排序思想利用到推荐系统中,是推荐系统的一个重大进步。
这也让推荐系统和真实场景逐渐挂钩。
那么很直观的要想更改推荐系统的行为,从评分的预测到排序学习,我们需要更改目标函数。
文末,我列了一个参考文献。
这篇论文提出了一种叫VPR的方法,是把配对法引入到推荐系统中的一个重要工作。
我们快速回忆一下,已经在搜索系统中介绍过的配对排序。
学习简单说来,配对法就是希望对于某一个查询关键词来说,学习到每一对文档之间的关系,然后通过把所有的两两关系都预测正确,从而建立一个完整的排序。
结果很明显,在推荐系统的场景下没有查询关键词,但是我们依然可以通过构造绘画来学习排序。
简单来说,我们针对用户来到应用后产生的绘画,对用户交互过的物品进行建模训练。
我们期望能把有正交互信息的物品排到负交互信息的物品之前。
值得注意的是,和搜索不一样,推荐系统往往没有明确的反馈信息。
意思就是在搜索系统中,我们有已知的标签信息,也就是哪一个文档是相关的,哪一个是不相关的。
然而,在推荐系统中,我们并没有这样的信息,因此所有用户和物品的交互都是隐回馈,我们必须依靠假设来找到相关的物品。
在这里,我们假定有正交互信息的物品是比其他物品更加相关,于是正交互的物品的预测值要高。
这里的正交互可以是点击购买或者其他信息,这就是BPR的基本思路。
需要强调的一点是,BPR仅仅是一种思路框架,我们可以应用到矩阵分解中,以及基于信息的推荐系统。
中等不同的模型中,我们可以把矩阵分解中的对于评分的目标函数换成基于BPR的目标函数,也就是进行配对法训练,得到的推荐系统,能够更好的对物品进行排序。
有了这个思路,我们就可以打开一系列的想法了。
比如我们在前面的搜索模块中讲过,其实还可以直接优化类似NDCGMAP这样的指标。
那能不能把这些想法也搬运到推荐系统中去呢?简单的回答是能,但是这个流程也不是那么显而易见的,毕竟我们没有直接的标签信息。
而且一般来说,这些目标函数本身就已经很难优化了,我们还要嫁接到矩阵分解或者是分解机等模型上,这就会让优化的难度继续攀升,今天我们就不展开讨论这部分内容了。
今天我为你讲了推荐系统的另外一个问题呢,就是目标函数。
一起来回顾一下要点。
第一,我们分析了为什么要关注目标函数,以评分为基础的目标函数的问题。
第二,我们详细介绍了BPR这种非常经典的配对法的目标函数。
最后给你留一个思考题,最果我们能够对所有物品的喜好度进行精准预测,是不是就不需要BPR了呢?学习排序和对物品喜好度的预测是完全不同的两件事,还是相互之间有联系呢?欢迎你给我留言,还是一起讨论。