色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

FFM理論與FFM實(shí)現(xiàn)細(xì)節(jié)

lviY_AI_shequ ? 來(lái)源:未知 ? 作者:李倩 ? 2018-07-20 16:10 ? 次閱讀

1、FFM理論

在CTR預(yù)估中,經(jīng)常會(huì)遇到one-hot類型的變量,one-hot類型變量會(huì)導(dǎo)致嚴(yán)重的數(shù)據(jù)特征稀疏的情況,為了解決這一問(wèn)題,在上一講中,我們介紹了FM算法。這一講我們介紹一種在FM基礎(chǔ)上發(fā)展出來(lái)的算法-FFM(Field-aware Factorization Machine)。

FFM模型中引入了類別的概念,即field。還是拿上一講中的數(shù)據(jù)來(lái)講,先看下圖:

在上面的廣告點(diǎn)擊案例中,

“Day=26/11/15”、“Day=1/7/14”、“Day=19/2/15”這三個(gè)特征都是代表日期的,可以放到同一個(gè)field中。同理,Country也可以放到一個(gè)field中。簡(jiǎn)單來(lái)說(shuō),同一個(gè)categorical特征經(jīng)過(guò)One-Hot編碼生成的數(shù)值特征都可以放到同一個(gè)field,包括用戶國(guó)籍,廣告類型,日期等等。

在FFM中,每一維特征 xi,針對(duì)其它特征的每一種field fj,都會(huì)學(xué)習(xí)一個(gè)隱向量 v_i,fj。因此,隱向量不僅與特征相關(guān),也與field相關(guān)。也就是說(shuō),“Day=26/11/15”這個(gè)特征與“Country”特征和“Ad_type"特征進(jìn)行關(guān)聯(lián)的時(shí)候使用不同的隱向量,這與“Country”和“Ad_type”的內(nèi)在差異相符,也是FFM中“field-aware”的由來(lái)。

假設(shè)樣本的 n個(gè)特征屬于 f個(gè)field,那么FFM的二次項(xiàng)有 nf個(gè)隱向量。而在FM模型中,每一維特征的隱向量只有一個(gè)。FM可以看作FFM的特例,是把所有特征都?xì)w屬到一個(gè)field時(shí)的FFM模型。根據(jù)FFM的field敏感特性,可以導(dǎo)出其模型方程。

可以看到,如果隱向量的長(zhǎng)度為 k,那么FFM的二次參數(shù)有 nfk 個(gè),遠(yuǎn)多于FM模型的 nk個(gè)。此外,由于隱向量與field相關(guān),F(xiàn)FM二次項(xiàng)并不能夠化簡(jiǎn),其預(yù)測(cè)復(fù)雜度是 O(kn^2)。

下面以一個(gè)例子簡(jiǎn)單說(shuō)明FFM的特征組合方式。輸入記錄如下:

這條記錄可以編碼成5個(gè)特征,其中“Genre=Comedy”和“Genre=Drama”屬于同一個(gè)field,“Price”是數(shù)值型,不用One-Hot編碼轉(zhuǎn)換。為了方便說(shuō)明FFM的樣本格式,我們將所有的特征和對(duì)應(yīng)的field映射成整數(shù)編號(hào)。

那么,F(xiàn)FM的組合特征有10項(xiàng),如下圖所示。

其中,紅色是field編號(hào),藍(lán)色是特征編號(hào)。

2、FFM實(shí)現(xiàn)細(xì)節(jié)

這里講得只是一種FFM的實(shí)現(xiàn)方式,并不是唯一的。

損失函數(shù)

FFM將問(wèn)題定義為分類問(wèn)題,使用的是logistic loss,同時(shí)加入了正則項(xiàng)

什么,這是logisitc loss?第一眼看到我是懵逼的,邏輯回歸的損失函數(shù)我很熟悉啊,不是長(zhǎng)這樣的啊?其實(shí)是我目光太短淺了。邏輯回歸其實(shí)是有兩種表述方式的損失函數(shù)的,取決于你將類別定義為0和1還是1和-1。大家可以參考下下面的文章:https://www.cnblogs.com/ljygoodgoodstudydaydayup/p/6340129.html。當(dāng)我們將類別設(shè)定為1和-1的時(shí)候,邏輯回歸的損失函數(shù)就是上面的樣子。

隨機(jī)梯度下降

訓(xùn)練FFM使用的是隨機(jī)梯度下降方法,即每次只選一條數(shù)據(jù)進(jìn)行訓(xùn)練,這里還有必要補(bǔ)一補(bǔ)梯度下降的知識(shí),梯度下降是有三種方式的,截圖取自參考文獻(xiàn)3:

總給人一種怪怪的感覺(jué)。batch為什么是全量的數(shù)據(jù)呢,哈哈。

3、tensorflow實(shí)現(xiàn)代碼

本文代碼的github地址:https://github.com/princewen/tensorflow_practice/tree/master/recommendation-FFM-Demo

這里我們只講解一些細(xì)節(jié),具體的代碼大家可以去github上看:

生成數(shù)據(jù)這里我沒(méi)有找到合適的數(shù)據(jù),就自己產(chǎn)生了一點(diǎn)數(shù)據(jù),數(shù)據(jù)涉及20維特征,前十維特征是一個(gè)field,后十維是一個(gè)field:

def gen_data(): labels = [-1,1] y = [np.random.choice(labels,1)[0] for _ in range(all_data_size)] x_field = [i // 10 for i in range(input_x_size)] x = np.random.randint(0,2,size=(all_data_size,input_x_size)) return x,y,x_field

定義權(quán)重項(xiàng)在ffm中,有三個(gè)權(quán)重項(xiàng),首先是bias,然后是一維特征的權(quán)重,最后是交叉特征的權(quán)重:

def createTwoDimensionWeight(input_x_size,field_size,vector_dimension): weights = tf.truncated_normal([input_x_size,field_size,vector_dimension]) tf_weights = tf.Variable(weights) return tf_weights def createOneDimensionWeight(input_x_size): weights = tf.truncated_normal([input_x_size]) tf_weights = tf.Variable(weights) return tf_weights def createZeroDimensionWeight(): weights = tf.truncated_normal([1]) tf_weights = tf.Variable(weights) return tf_weights

計(jì)算估計(jì)值估計(jì)值的計(jì)算這里不能項(xiàng)FM一樣先將公式化簡(jiǎn)再來(lái)做,對(duì)于交叉特征,只能寫兩重循環(huán),所以對(duì)于特別多的特征的情況下,真的計(jì)算要爆炸呀!

def inference(input_x,input_x_field,zeroWeights,oneDimWeights,thirdWeight): """計(jì)算回歸模型輸出的值""" secondValue = tf.reduce_sum(tf.multiply(oneDimWeights,input_x,name='secondValue')) firstTwoValue = tf.add(zeroWeights, secondValue, name="firstTwoValue") thirdValue = tf.Variable(0.0,dtype=tf.float32) input_shape = input_x_size for i in range(input_shape): featureIndex1 = I fieldIndex1 = int(input_x_field[I]) for j in range(i+1,input_shape): featureIndex2 = j fieldIndex2 = int(input_x_field[j]) vectorLeft = tf.convert_to_tensor([[featureIndex1,fieldIndex2,i] for i in range(vector_dimension)]) weightLeft = tf.gather_nd(thirdWeight,vectorLeft) weightLeftAfterCut = tf.squeeze(weightLeft) vectorRight = tf.convert_to_tensor([[featureIndex2,fieldIndex1,i] for i in range(vector_dimension)]) weightRight = tf.gather_nd(thirdWeight,vectorRight) weightRightAfterCut = tf.squeeze(weightRight) tempValue = tf.reduce_sum(tf.multiply(weightLeftAfterCut,weightRightAfterCut)) indices2 = [I] indices3 = [j] xi = tf.squeeze(tf.gather_nd(input_x, indices2)) xj = tf.squeeze(tf.gather_nd(input_x, indices3)) product = tf.reduce_sum(tf.multiply(xi, xj)) secondItemVal = tf.multiply(tempValue, product) tf.assign(thirdValue, tf.add(thirdValue, secondItemVal)) return tf.add(firstTwoValue,thirdValue)

定義損失函數(shù)損失函數(shù)我們就用邏輯回歸損失函數(shù)來(lái)算,同時(shí)加入正則項(xiàng):

lambda_w = tf.constant(0.001, name='lambda_w') lambda_v = tf.constant(0.001, name='lambda_v') zeroWeights = createZeroDimensionWeight() oneDimWeights = createOneDimensionWeight(input_x_size) thirdWeight = createTwoDimensionWeight(input_x_size, # 創(chuàng)建二次項(xiàng)的權(quán)重變量 field_size, vector_dimension) # n * f * k y_ = inference(input_x, trainx_field,zeroWeights,oneDimWeights,thirdWeight) l2_norm = tf.reduce_sum( tf.add( tf.multiply(lambda_w, tf.pow(oneDimWeights, 2)), tf.reduce_sum(tf.multiply(lambda_v, tf.pow(thirdWeight, 2)),axis=[1,2]) ) ) loss = tf.log(1 + tf.exp(input_y * y_)) + l2_norm train_step = tf.train.GradientDescentOptimizer(learning_rate=lr).minimize(loss)

訓(xùn)練接下來(lái)就是訓(xùn)練了,每次只用喂一個(gè)數(shù)據(jù)就好:

input_x_batch = trainx[t] input_y_batch = trainy[t] predict_loss,_, steps = sess.run([loss,train_step, global_step], feed_dict={input_x: input_x_batch, input_y: input_y_batch})

跑的是相當(dāng)?shù)穆覀儊?lái)看看效果吧:

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 編碼
    +關(guān)注

    關(guān)注

    6

    文章

    957

    瀏覽量

    54933
  • 函數(shù)
    +關(guān)注

    關(guān)注

    3

    文章

    4345

    瀏覽量

    62911
  • 代碼
    +關(guān)注

    關(guān)注

    30

    文章

    4823

    瀏覽量

    68955

原文標(biāo)題:推薦系統(tǒng)遇上深度學(xué)習(xí)(二)--FFM模型理論和實(shí)踐

文章出處:【微信號(hào):AI_shequ,微信公眾號(hào):人工智能愛(ài)好者社區(qū)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    D類放大器原理及EMI抑制

    的音頻放大器有AB類和D類兩種。通常,AB類放大器能夠提供好的音質(zhì),但效率欠佳,耗電較大;而D類放大器具有高效、低溫升效應(yīng)和高輸出功率等特點(diǎn)。2. 理論分析:AB類放大器的工作原理類似于線性調(diào)節(jié)器
    發(fā)表于 10-16 15:55

    UCC28600準(zhǔn)諧振反激節(jié)制IC 引腳功能

    接入。此端電壓節(jié)制著IC的三個(gè)工作模式:準(zhǔn)諧振(QR)模式、頻率折返(FFM)模式及猝發(fā)模式(Borst Mode)。  3PIN CS:電流檢測(cè)輸入端。調(diào)節(jié)功率限制,可調(diào)制過(guò)流珍愛(ài),CS端電壓輸人除夜電流檢測(cè)電阻接人,再用兩端之間的電譸arty?剮〉鶻詮β氏拗啤
    發(fā)表于 07-08 17:07

    簡(jiǎn)單線性回歸代碼實(shí)現(xiàn)細(xì)節(jié)分析

    機(jī)器學(xué)習(xí)100天-簡(jiǎn)單線性回歸 [代碼實(shí)現(xiàn)細(xì)節(jié)分析]
    發(fā)表于 05-22 10:16

    深度學(xué)習(xí)入門之基于python的理論實(shí)現(xiàn)

    深度學(xué)習(xí)入門-基于python的理論實(shí)現(xiàn)(2)
    發(fā)表于 06-19 11:22

    分立器件的實(shí)現(xiàn)細(xì)節(jié)

    ?概述負(fù)載開(kāi)關(guān)電路日常應(yīng)用比較廣泛,主要用來(lái)控制后級(jí)負(fù)載的電源開(kāi)關(guān)。此功能可以直接用IC也可以用分立器件搭建,分立器件主要用PMOS加三極管實(shí)現(xiàn)。本文主要討論分立器件的實(shí)現(xiàn)細(xì)節(jié)。電路分析如下圖所示R5模擬后級(jí)負(fù)載,Q1為開(kāi)關(guān),
    發(fā)表于 10-28 08:28

    數(shù)字信號(hào)處理-理論算法與實(shí)現(xiàn)

    本內(nèi)容提供了數(shù)字信號(hào)處理-理論算法與實(shí)現(xiàn) 電子書,歡迎大家下載學(xué)習(xí)
    發(fā)表于 07-22 11:34 ?0次下載
    數(shù)字信號(hào)處理-<b class='flag-5'>理論</b>算法與<b class='flag-5'>實(shí)現(xiàn)</b>

    遺傳算法理論、應(yīng)用與軟件實(shí)現(xiàn)

    遺傳算法——理論、應(yīng)用與軟件實(shí)現(xiàn)-2002-1西安交通大學(xué)出版社-王小平。
    發(fā)表于 04-12 14:33 ?0次下載

    FM和FFM原理的探索和應(yīng)用的經(jīng)驗(yàn)

    FM和FFM模型是最近幾年提出的模型,憑借其在數(shù)據(jù)量比較大并且特征稀疏的情況下,仍然能夠得到優(yōu)秀的性能和效果的特性,屢次在各大公司舉辦的CTR預(yù)估比賽中獲得不錯(cuò)的戰(zhàn)績(jī)。美團(tuán)點(diǎn)評(píng)技術(shù)團(tuán)隊(duì)在搭建DSP
    發(fā)表于 10-12 17:25 ?0次下載
    FM和<b class='flag-5'>FFM</b>原理的探索和應(yīng)用的經(jīng)驗(yàn)

    現(xiàn)階段對(duì)尾氣的處理方法

    SCR系統(tǒng)的廠家較多,常用的有東風(fēng)添藍(lán)系統(tǒng)、威孚利達(dá)系統(tǒng)、格蘭富系統(tǒng)、依米泰克(Emitec)系統(tǒng)、CES的FFM版后處理系統(tǒng)、博世后處理系統(tǒng)、三立后處理系統(tǒng)、天納克后處理系統(tǒng)、派格力后處理系統(tǒng)等等。
    的頭像 發(fā)表于 12-08 14:21 ?3649次閱讀

    數(shù)字信號(hào)處理——理論、算法與實(shí)現(xiàn)

    數(shù)字信號(hào)處理——理論、算法與實(shí)現(xiàn)說(shuō)明。
    發(fā)表于 04-26 09:17 ?42次下載

    利用FFM機(jī)制進(jìn)行的極微細(xì)機(jī)械加工

    隨著超精密加工技術(shù)的發(fā)展,在機(jī)械加工中也需要納米級(jí)的加工控制技術(shù),從這個(gè)觀點(diǎn)出發(fā),近年來(lái),利用掃描型探針顯微鏡(SPM)的極微細(xì)加工技術(shù)被廣泛研究1)~5)。為了確立納米級(jí)的機(jī)械加工技術(shù), 考慮到化學(xué)效果,理解加工現(xiàn)象是重要的研究課題。
    發(fā)表于 03-30 14:34 ?660次閱讀
    利用<b class='flag-5'>FFM</b>機(jī)制進(jìn)行的極微細(xì)機(jī)械加工

    表面貼裝快速恢復(fù)整流器FFM101 THRUFFM107 SOD-123FL規(guī)格書下載

    FFM101 THRUFFM107 SOD-123FL規(guī)格書下載
    發(fā)表于 04-01 16:51 ?0次下載

    華為EUV光刻解決相干光無(wú)法勻光問(wèn)題

    該照明系統(tǒng)3包括視場(chǎng)復(fù)眼鏡31(field flyeye mirror,FFM)、光闌復(fù)眼鏡 32(diaphragm flyeye mirror,PFM)、中繼鏡組33;其中,中繼鏡組33通常可以包括兩個(gè)或者兩個(gè)以上的中繼鏡。
    的頭像 發(fā)表于 11-21 11:09 ?956次閱讀

    ATV 320同步與異步電機(jī)變頻器編程手冊(cè)

    當(dāng)變頻器熱態(tài)達(dá)到最大熱態(tài)的 70%,并且如果 [ 風(fēng)扇模式 ] (FFM) 被設(shè)置為 [ 標(biāo)準(zhǔn) ] (Std),則風(fēng)扇會(huì)自動(dòng) 起動(dòng)。 對(duì)于 ATV320pppppW(S), [ 風(fēng)扇模式 ](FFM) 被強(qiáng)制設(shè)為 [ 強(qiáng)制模式 ] (run), 將始終激活風(fēng)扇。
    發(fā)表于 05-24 15:36 ?2次下載

    大模型部署框架FastLLM實(shí)現(xiàn)細(xì)節(jié)解析

    接著 大模型部署框架 FastLLM 簡(jiǎn)要解析 這篇文章首先梳理了一下FastLLM的調(diào)用鏈和關(guān)鍵的數(shù)據(jù)結(jié)構(gòu),然后解析了 FastLLM 的一些實(shí)現(xiàn)細(xì)節(jié)和CPU/GPU后端實(shí)現(xiàn)采用的優(yōu)化技巧。
    的頭像 發(fā)表于 07-27 10:48 ?1395次閱讀
    大模型部署框架FastLLM<b class='flag-5'>實(shí)現(xiàn)</b><b class='flag-5'>細(xì)節(jié)</b>解析
    主站蜘蛛池模板: 国产一区二区在线免费观看 | 菠萝菠萝蜜视频在线看1 | 高清无码中文字幕在线观看视频 | 91看片淫黄大片.在线天堂 | 秋霞电影院午夜伦高清 | 忘忧草在线影院WWW日本二 | 被窝伦理电影午夜 | 张津瑜的9分58秒7段免费 | 最新果冻传媒在线观看免费版 | 台湾果冻传媒在线观看 | 亚洲AV无码专区国产精品麻豆 | 国产伦精品一区二区三区免费观看 | 色偷偷网址 | 亚洲免费在线播放 | 国产日韩在线欧美视频 | 日本福利片午夜免费观着 | 色综合伊人色综合网站中国 | 国内精品久久久久影院网站 | 99精品久久 | 亚洲一区综合图区 | 久久国产精品久久国产精品 | 成年人在线视频免费观看 | 色一欲一性一乱一区二区三区 | 羞羞麻豆国产精品1区2区3区 | 永久adc视频 | 扒开老师大腿猛进AAA片邪恶 | 草莓视频免费看 | 欧美人与善交大片 | 国内一级一级毛片a免费 | 神马电影院午 夜理论 | 欧美日韩永久久一区二区三区 | 刺激一区仑乱 | 久久精品视频在线直播6 | 99视频免费观看 | 久久高清一本无码 | 99热.com | 99re8久久热在线视频 | 大肥婆丰满大肥奶bbw肥 | 一本色道久久综合亚洲精品 | 美女议员被泄裸照 | 欧美高清视频www夜色资源网 |