2018-07-03

推荐算法

一、推荐问题

  在推荐问题中,我们通常需要根据一系列的特征预测出一定的目标。比如一个电影网站要给用户推荐合适的电影,则推荐什么电影以及推荐电影的排序就是我们的目标,而user ID、电影名称、用户以往观看过的电影、用户以往给出的电影评分、观影时间等等就是我们可能会用到的特征。

目标 特征
推荐的电影、电影排序 user ID、电影名称、以往观看的电影、以往的电影评分、观影时间

  对于特征的表示,常用的一种方式是one-hot encoding:一个特征,若其有N个状态,则用N位寄存器来表示它,其中每一个状态都占用一个独立的寄存器位。假设有一群大学生,其特征包括了性别、学校、专业:

  • 性别:[male, female]
  • 学校:[THU, PKU, ZJU, MIT, Harvard, Stanford]
  • 专业:[EE, CS, ME, IEOR, Physics, Mathmatics]

  对于一个学生,若性别为male表示为[1, 0],就读于THU表示为[1, 0, 0, 0, 0, 0],专业为EE的学生表示为[1, 0, 0, 0, 0, 0],其所有特征可以表示为[1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0],可以想象用这种方式得到的特征将会是非常稀疏的向量。

二、推荐算法

1. Factorization Machine (FM)算法

优势
1 可以对非常稀疏的数据做参数估计
2 FM算法为线性复杂度,能处理非常大的数据量
3 对任何形式的数据,FM都有很好的适应性

  假设特征向量为x = [x1, x2, ..., xn],则在FM模型下,输出与特征的关系为:

  其中

  下图是利用特征,预测目标的示意图,图中1-4列蓝色部分表示user ID,接下来5列红色部分表示当前用户正要评价的电影,后面5列黄色部分表示其他用户评价过的电影的分数,后面一列绿色部分表示用户数据收集自2009年1月后所经历的月份,后面5列棕色部分表示用户上一个评价的电影,最后结果部分表示用户对这部电影的评分。

  FM可以间接分析出在原表中不直接相关的两个因素,比如在上图中xA和xST不直接相关,二者的直接关联因子应为wA,ST=0。但是通过factorization interaction参数<VA, VST>,我们能够估计出xA和xST之间的关系:
  1. xB和xC有相似的因子向量VB和VC,因为他们在预测Star War电影评分时,和VSW有相似的交互关系,即<VB, VSW>和<VC, VSW>是相似的;
  2. 因子向量VA和VC是不同的,因为A给TI的评分为5,给SW的评分为1,而C给TI的评分为1,给SW的评分为5;
  3. 因子向量VSW和VST是相似的,因为B在给二者评分时是相似的;
  4. 所以<VA, VST>和<VA, VSW>应该是相似的,也就是说通过间接的方式估计出了,xA和xST应该与xA和xSW的关系相似。

学习方法
  主要训练的参数有w0,w和V,采用梯度下降的算法进行训练,关于不同参数的梯度如下所示。

2. DeepFM——for click through rate (CTR) prediction

  在很多推荐系统中,推荐的目标是使得链接点击的数量最高,因此给用户推荐的内容应按照预测的用户点击量来排序。有时候不同链接的点击量的收益是不同的,对于每一个点击我们可以赋予一个权重或者出价(bid),则排序的目标变为CTR*bid。
现有的方法在对特征交互关系分析时或是只能分析高维相关性或是只能处理低维相关性。DeepFM是一种结合FM和深度神经网络的结构,能够同时考虑低维和高维特征交互。其网络结构如下所示:

DeepFM

  整个网络包括了FM和Deep两个子网络,设二者的输出分别为yFM和yDNN,则最终的输出为:y=sigmoid(yFM+yDNN)。DeepFM网络将输入的一阶特征以及二阶交互特征交于FM层处理,更高阶的特征交互则交于深度隐层处理。
输入特征:网络的输入为x=[xfield1, xfield2, ..., xfieldm],其中m为输入特征的数量,每一个特征,若是离散的,则用one-hot encoding方式来表示,若是连续的则用其连续值来表示。

Dense Embedding:Embedding层是将每一个特征xi(注意不是每一个字段)乘上一个隐含向量vi,其中vi的维度为k1,k是认为设定的一个值。即通过Embedding层后,我们能得到V={v1x1, v2x2, ..., vnxn}。对于输入的每一个字段(field),Embedding层与输入层是全连接的。具体的网络结构如下图所示。每一个特征字段都有一个对应的Embedding,比如Field 1对应e1,此Embedding的包含k个元素,比如e1,其第i个元素(i=1, 2, ..., k)值为v1ix1+v2ix2+...+vfield1ixfield1i

FM Layer: FM层起的作用和前面提到的FM算法中一样,但值得注意的是,根据DeepFM结构图,在做FM时,同一个字段内的两个特征并不会做内积,只有不同字段之间的特征才会做内积。但奇怪的是文献中并没有明确说到提到这一点,仍然采用原有所有特征两两做内积的公式。

Hidden Layer:深层网络隐层的输入为Embedding的每一个元素,比如input1=v11x1+v21x2+...+vfield11xfield11

Embedding

  总结而言:DeepFM结构通过将Embedding后的特征数据同时输入了一个FM网络和一个Deep隐层网络,其中FM网络考虑特征的低阶交互关联,Deep隐层网络考虑特征的高阶交互关联。此外,此网络结构可以自动从输入的特征中选择出强关联性的特征,而不需要人为挑选关联特征。

3. NeuralFM

  NeuralFM网络的结果如下所示

NeuralFM

  此图中没有包括输出与输入特征的线性关联部分,但在网络中其仍然是存在的。网络的主要创新点在于提出了Bi-Interaction Pooling层,事实上,这层完成的事情就是计算特征的二阶交互关联,得到一个k维的向量,并将此向量输入至全连接网络中。
  网络在Frappe和MovieLens两个数据集上进行了测试,相较于其余FM方法,比如LibFM,Wide&Deep等网络,NeuralFM的效果是最好的,但好的不明显,预测精度提升有限。

参考文献

  1. S. Rendle. Factorization machines. In ICDM, 2010.
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,185评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,445评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,684评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,564评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,681评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,874评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,025评论 3 408
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,761评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,217评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,545评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,694评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,351评论 4 332
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,988评论 3 315
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,778评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,007评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,427评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,580评论 2 349

推荐阅读更多精彩内容