youtube召回邏輯是怎樣的,相信很多沒(méi)有經(jīng)驗(yàn)的人對(duì)此束手無(wú)策,為此本文總結(jié)了問(wèn)題出現(xiàn)的原因和解決方法,通過(guò)這篇文章希望你能解決這個(gè)問(wèn)題。
讓客戶滿意是我們工作的目標(biāo),不斷超越客戶的期望值來(lái)自于我們對(duì)這個(gè)行業(yè)的熱愛(ài)。我們立志把好的技術(shù)通過(guò)有效、簡(jiǎn)單的方式提供給客戶,將通過(guò)不懈努力成為客戶在信息化領(lǐng)域值得信任、有價(jià)值的長(zhǎng)期合作伙伴,公司提供的服務(wù)項(xiàng)目有:域名與空間、虛擬空間、營(yíng)銷軟件、網(wǎng)站建設(shè)、囊謙網(wǎng)站維護(hù)、網(wǎng)站推廣。
上圖是整個(gè)架構(gòu)中的候選集生成模塊, 也就是召回模塊。
下面的這些embedding直接連起來(lái), 效果, 不怎么好, 感覺(jué)只能做base line
example age是當(dāng)前訓(xùn)練時(shí)間-日志時(shí)間, 由于某個(gè)視頻的熱度并不是均勻分布在時(shí)間線上的, 加上這個(gè)特征可以讓分布盡量的與真實(shí)的保持一致, 很有意思的一點(diǎn), 但是原因我沒(méi)想太明白。
之后就是三層Relu, 最后輸出一個(gè)vector, 假設(shè)為 20x1的embedding, 最后輸出的這個(gè)就是 user embedding, 之后softmax然后ANN進(jìn)行最近鄰檢索就行。
問(wèn)題來(lái)了, 為什么能拿這個(gè)DNN最后生成的user embeding 去召回, 進(jìn)行ANN的Item Embedding從哪里來(lái)的? 以及ANN的時(shí)候用的是哪個(gè)距離?
首先, 對(duì)于某一個(gè)輸入的user embedding, 判斷此條件對(duì)某個(gè)item到底點(diǎn)不點(diǎn), 可以理解為一個(gè)多分類問(wèn)題, 即一個(gè)item就是一個(gè)分類, 假設(shè)視頻個(gè)數(shù)為200w, 那么其實(shí)就是使用softmax判斷 20維度的user embedding 到底會(huì)落在 200w中的哪一個(gè)。
所以, softmax會(huì)生成一個(gè)200w x 20 的denser, 那么每一個(gè)item就是一個(gè) 20x1的embedding, 用以表明item的embeding
再看一下softmax的公式, 那就是user embedding 與 item embedding, 然后加和求處理求最大, 但是由于在線上服務(wù)的時(shí)候不可能直接softmax算一遍, 由于softmax的特性, 只需要求兩個(gè)embedding內(nèi)積最大的那些來(lái)召回即可。
所以最后的item embedding為softmax產(chǎn)生的, 由于是一個(gè)softmax多分類問(wèn)題, 所以需要在KNN的時(shí)候,求內(nèi)積最大來(lái)實(shí)現(xiàn),
具體實(shí)現(xiàn)可以采用Faiss, 創(chuàng)建IndexIVFFlat索引, 相似度方法采用 faiss.METRIC_INNER_PRODUCT, 把200w的item embedding放進(jìn)去, 線上服務(wù)的時(shí)候那個(gè)三層模型實(shí)時(shí)反饋生成user embedding, 然后在faiss中做KNN
看完上述內(nèi)容,你們掌握youtube召回邏輯是怎樣的的方法了嗎?如果還想學(xué)到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝各位的閱讀!