赞
踩
用与或非等推理方式构成推理模块一部分,这样可以利用逻辑表达式表示神经网络。
这里u表示用户,v,a,b,c表示项目
(a)表示,通过函数f()计算用户u与项目v之间的相关性分数。
(b)表示,基于用户历史行为的相关分数
(c)表示,用户喜欢a或者b,且不喜欢c,那么他可能喜欢v
使得推荐系统,基于数据进行逻辑推理,从而预测用户未来行为。
这里作者采用霍恩子句的方式建立逻辑推理的神经模型。
这里说明一下霍恩子句,霍恩子句是包含至多一个正文字的子句,子句是多个文字的析取,其中文字是应用到项上的任意谓词或谓词否定。
这里项是任意常量、任意变量、或任意函数值。
谓词是一种表示属性或关系的符号。
那么我们可以看到,霍恩子句的形式如下:
其等价形式如下:
用逻辑表述便是,如果p,q…t等成立,则u成立。
实现该功能的方式:按照(c)图的形式,使p,q…t等数据转化为嵌入向量(这里可以理解,嵌入向量是我们提取出的特征),同时对应逻辑运算关系转化为神经模块。
按照上述方式,我们可以将一个表达式转化为一个神经结构,参照图(c)
下面开始介绍神经协作推理,先简述框架:
u也即是黄色圆圈表示用户特征,v表示项目特征。
Events Encoder将用户项目交互编码为事件嵌入向量(提取事件特征)
也即是,使用一个神经网络将用户项目交互转化为一个事件特征值。
利用事件特征值输入到逻辑神经网络,其中not与or是神经模块,这里虚线箭头表示输入每一轮的输入顺序随机。
隐式反馈推理:
我们知道,根据数据可以确定用户项目是否发生交互,但无法根据交互确定用户是否喜欢项目。
这里u表示用户,v表示项目。
我们训练I(u,vx)这个函数,表述上是根据过去的用户项目交互,预测用户u是否会与vx交互,这里就是根据用户历史数据v1…vr
这里我们利用逻辑表达式特点,转化为霍恩子句的形式
这样我们就可以利用or和not来实现推理,过程参照框架部分。
这里e表示交互事件,也即是I(u,v)。
这里通过霍恩子句的形式来预测点击。
为了分析用户项目交互中用户对项目的喜欢与否,我们通过交互事件前加非操作,表示交互为负反馈,没有加非操作的部分表示用户的正反馈,来表示用户对于项目的喜欢与否的情绪。
这里转化为霍恩子句:
根据隐式反馈(a)和显示反馈(b),构建逻辑模型
先使用两层神经网络对用户项目进行编码,转换为事件交互e
其实这里就可以看出事件交互e与单纯的uv交互关系。
其中w和b是对应的权重和偏置,根据事件向量e来表述逻辑关系表达式。
如果值为T则表示推荐vx,值为F则不推荐。
表1:每个逻辑模块应该满足的逻辑法则和相应的等式。通过将显式逻辑正则化器添加到训练损失函数中来保证一些规律,而通过在模型训练期间随机改组逻辑变量来保证其他规律。Sim()表示相似性度量函数。
上述是训练达成逻辑表达式的正则化部分。
根据输出的exp来判断逻辑表达式的真假,T值随机初始化,但不随着训练更行。代表真的向量,应该接近真向量T否则要远离。这里采用余弦相似性度量,来比较exp与真向量T。
上述表示隐式反馈推理结构,同样的我们通过加入非,来完成显示反馈推理。
同时,我们来设定逻辑框架。
设定x为事件嵌入向量,x可以为最初用户项目交互事件,也可以是后续逻辑神经网络处理时的中间事件。
sim()计算相似度,这里采用余弦相似度,T是随机初始化,且不随训练改变的量。
以双重否定为例子,分析:
我们可以知道双重否定后,值依旧是其本身,所以我们在正则化时,要使双重否定后的值与该值本身相似度最大,但我们知道,训练是要使得总值最小,故而这里1-sim()达到相似最大化。
同时,对于事件正则化,不单单要针对初始事件,后续神经网络处理中的事件也要符合逻辑关系,故而要按照如下方式
同样的我们知道,单否定需要x与否定x之间的相似度最小,所以相似度构造存在差异,但构造方法相同。
同时我们也要考虑结合律与交换律,所以这里采用随机输入事件的顺序,来满足两条定律。
这里从i-1到i-r以及i均是发生交互的,而j是没有发生交互的。
C+表示真是交互,C-是负采样交互的结果,所以可产生下式:
这里LNN是图2的神经网络,sim计算与真值的相似度
这里计算相似度差异,同时采用优化算法,扩大i和j差异。
v+表示观测到的样本集合,v-为负样本集合
ln附近是激活函数,1/(1+e^(-x)),采用L2正则化,对模型参数Θ优化
成对正则化与逻辑损失模型合并。
也即是逻辑关系式成立,样本差异扩大。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。