本专栏致力于探索和讨论当今最前沿的技术趋势和应用领域,包括但不限于ChatGPT和Stable Diffusion等。我们将深入研究大型模型的开发和应用,以及与之相关的人工智能生成内容(AIGC)技术。通过深入的技术解析和实践经验分享,旨在帮助读者更好地理解和应用这些领域的最新进展
2. 经典匹配模型
已经提出了使用传统的机器学习技术进行搜索中的查询文档匹配和推荐中的用户项目匹配的方法。这些方法可以在一个更通用的框架内形式化,我们称之为“学习匹配”。除了搜索和推荐外,它还适用于其他应用,例如释义,问题解答和自然语言对话。本节首先给出学习匹配的正式定义。然后,它介绍了传统学习以匹配为搜索和推荐而开发的方法。最后,它提供了该方向的进一步阅读。
2.1 匹配学习
2.1.1 匹配函数
匹配问题的学习可以定义如下。假设存在两个空间X和Y。在两个空间 x ∈ X x∈X x∈X和 y ∈ Y y∈Y y∈Y的两个对象上定义了一个匹配函数 F = f ( x , y ) F = {f(x,y)} F=f(x,y),其中每个函数 f : X × Y → R f:X×Y →R f:X×Y→R表示两个对象x和y之间的匹配程度。两个对象x和y及其关系可以用一组特征 Φ ( x , y ) Φ(x,y) Φ(x,y)来描述。
匹配函数f(x,y)可以是特征的线性组合:
其中w是参数向量。它也可以是广义线性模型,树模型或神经网络。
2.1.2 匹配学习函数
可以采用监督学习来学习匹配函数f的参数,如图2.1所示。
监督学习的匹配通常包括两个阶段:离线学习和在线匹配。在离线学习中,给出了一组训练实例 D = { ( x 1 , y 1 , r 1 ), . . . ,( x N , y N , r N ) } D = \{ (x_1,y_1,r_1),...,(x_N,y_N,r_N)\} D={
(x1,y1,r1),...,(xN,yN,rN)},其中 r i r_i ri是指示对象之间匹配程度的布尔值或实数 x i x_i xi和 y i y_i yi,N是训练数据的大小。进行学习以选择可以在匹配中表现最好的匹配函数f∈F。在在线匹配中,给定一个测试实例(一对对象) ( x , y ) ∈ X × Y (x,y)∈X×Y (x,y)∈X×Y,学习到的匹配函数f用来预测对象对之间的匹配度,表示为 f ( x , y ) f(x,y) f(x,y)。
与其他监督学习问题类似,我们可以将学习匹配的目标定义为最小化损失函数,该函数表示匹配函数在训练数据和测试数据上可以达到多少精度。更具体地,给定训练数据D,学习等于解决以下问题:
目标由两部分组成:经验损失 L ( D , f ) L(D,f) L(D,f)衡量匹配函数f对训练数据产生的总损失,而正则化器 Ω ( f ) Ω(f) Ω(f)防止过拟合训练数据。通常选择 Ω ( f ) Ω(f) Ω(f)来惩罚f的复杂度。流行的正则化器包括l1,l2以及它们的混合。
经验损失函数 L ( D , f ) L(D,f) L(D,f)的不同定义导致不同类型的学习以匹配算法。文献中已广泛使用三种类型的损失函数,分别称为点向损失函数(pointwise loss function),成对损失函数(pairwise loss function)和列表损失函数(listwise loss function)【1】。接下来,我们简要描述三种类型的损失函数。
Pointwise Loss Function
Pointwise Loss Function 仅在一个实例(即源对象和目标对象)上定义。假设存在一对真正匹配度为r的对象 ( x , y ) (x,y) (x,y)。此外,假设由匹配模型给出的 ( x , y ) (x,y) (x,y)的预测匹配度是 f ( x , y ) f(x,y) f(x,y)。逐点损失函数定义为表示匹配度之间差异的度量,表示为 l p o i n t ( r , f ( x , y )) l^{point}(r,f(x,y)) lpoint(r,f(x,y))。$ f(x,y)$与r越近,损失函数的值越小。
在学习中,给定训练数据集 D = { ( x 1 , y 1 , r 1 ), . . . ,( x N , y N , r N ) } D = \{(x_1,y_1,r_1),... ,(x_N,y_N,r_N)\} D={ (x