推薦系統中的隱式召回和機器學習1

首先我們談這個話題的時候在談什麼?

管我啥事?

咳咳,兄弟既然你已經點進來了,說明你是一個骨骼驚奇,積極上進,年輕並且 naive …啊不是,是關鍵詞抓進來想學點東西的好少年or好少女唄,開聊~

隨着網絡、自動化的快速發展,這個時代充滿了各種前所未有的大量數據集,如何從中提取有價值的信息,使用明確的指令很明顯已經不再是一個最優的方法了。比如 google / bing / baidu 搜索信息排序、今日頭條/抖音等推薦爲核心的APP,垃圾郵件、惡意電話號碼標記等等,假設以上所有針對個體用戶“量身定做”的行爲都需要依賴明確的程序,那背後代碼量已經大到不可估算,那背後發生了啥,你就不好奇嗎~~~來聽我瞎掰扯掰扯。

啥是機器學習?

明人不說暗話,機器學習的定義:“一種不借助於明確的程序並使用電腦學習的科學”。不要被啥AI熱嚇退,那都是資本主義的噱頭,浪潮來去,有沒有高大上,有沒有逼格那都不重要!解決問題纔是王道!

簡單分類:倆!監督學習 & 無監督學習

1、監督學習算法 Supervised learning
監督學習就是提供給算的訓練數據集是m組“標準輸入”和對應的“標準答案”,希望算法學習標準輸入和標準答案直接的聯繫,這個訓練結果可以用來對新的輸入,給出預測的對應結果。

舉個🌰,咱們的應試教育,這篇文章作者這句話想表達什麼樣的情感?嘿嘿這題你一定答過,你爲啥那麼答,是因爲你知道這樣答包括了幾個得分點。你爲啥知道,因爲你已經找到問題和答案之間的套路,這個套路就是你的學習結果。咳咳,正經說,監督算法的目標是尋找規律,用於給新輸入以正確結果

再細分一點,監督學習包括了迴歸問題or分類問題。
迴歸問題的“套路“是用來得出連續型結果的,比如訓練結果可能是一個連續函數可以根據房子的面積估算價值。
分類問題的”套路“是用來得要一個離散型結果的,比如一個離散函數只有0或者1兩種值,你將來的第一個孩子是男孩還是女孩。

2、無監督學習算法 Unsupervised learning
無監督學習對比上文,顯著的區別就是不給算法標準答案。
讓算法自己在數據集裏找到某種數據結構,分成不同的聚類。聚類算法就是一種典型的無監督學習算法,用來尋找緊密相關的信息,常用在數據量非常大的場景中。例如:

  1. 大型數據中心,大型計算集羣中趨向於協調工作的機器放在一起,以提高運行速度。
  2. 社交網絡分析,識別好友分級的親密度圈子。
  3. 市場用戶數據,自動市場分割,將客戶分割到不同的細分市場。
  4. 天文數據分析。
  5. 推薦系統中常用的最近鄰搜索(NN, NearestNeighborSearch),無監督最近鄰的任務就是從訓練樣本中找到與查詢點在距離上最近的預定數量或範圍的多個點。

啥是隱式召回?

首先簡單介紹一下推薦系統推薦系統是一種信息過濾系統,用於預測用戶對物品的評分或偏好,進而實現個性化推薦。今日頭條、抖音、百度信息流、谷歌信息流等等,其核心都是背後這套推薦系統。

召回是指什麼?

推薦系統本身也是一個非常大的話題體系,其中包括底層的召回、召回之上的粗排、和返回之前的精排,最終億萬信息中選十幾條最終反饋給用戶。所謂召回,在剛接觸推薦系統的時候可能只看字面意思無法理解召回的意思,召回可以理解爲向用戶粗選一批待推薦的商品,相當於提供一批粗排候選集。

咱們說的隱式推薦就是屬於推薦系統中召回模塊的一部分

隱式召回的核心算法:隱式召回的核心就是前文說的無監督學習中的聚類算法。

隱式是指什麼?

隱式是相對於顯示來說的。

顯示召回比較容易理解,可以理解爲關鍵字召回,比如搜索"ANN"這個關鍵字,可能返回一些相關的相似最近鄰算法論文(Approximate Nearest Neighbor,ANN),或者最新的神經網絡相關的報道(Artificial Neural Network,簡稱ANN)。

那麼隱式召回是什麼呢?

提到隱式,首先要講解一下向量支持機,學習算法要使用很多的屬性/特徵/線索來進行預測,這些巨大的信息可能會使內存溢出或者根本無法計算。我們希望通過將這些信息映射成一個多維的向量,這樣單個信息就能被壓縮表達。由於這種向量信息單個看起來是沒有明確意義的,所以也被稱爲"隱式"召回。

單詞向量:爲聚類算法準備數據的常見做法是定義一組公共的數值型數據,可以利用這些屬性對數據項進行比較。

One-hot Vector 獨熱編碼
對應的詞所在的位置置1,其他置0
例如:
King, Queen, Man, Woman 中, Queen 對應的向量可以表示爲
[0,1,0,0]
獨熱編碼的缺點非常明顯,由於它過於稀疏,單個向量維數非常高並且信息含量過低。

爲了解決獨熱編碼的問題,引入了詞向量概念。

詞向量:詞向量可以解決前文提到的獨熱編碼的問題,方法是通過訓練將每個詞都映射到一個較短的向量上

  1. 所有的詞向量構成詞彙表的每個詞。
  2. 詞向量可衡量相似性。(訓練過程中引入了上下文)
    以上這個過程被稱爲詞嵌入(word embedding),即將高維詞向量嵌入一個低維詞向量

Word2Vec是一個工業界常用的用於產生詞向量的模型(語義向量化),它是一個簡單化的神經網絡,將每個詞表徵爲K維的實數向量,(每個實數都對應一個特徵),將相似的單詞分組映射到K維向量空間距離較近的地方。Word2Vec 有兩個重要模型 CBOW 和 Skip-gram。其中 CBOW 的輸入是某特徵詞的上下文相關詞的詞向量,適用於小型庫;Skip-Gram 的輸入是特定詞的詞向量,更適合大型庫。


嘿嘿,總結一下~

隱式召回是推薦召回系統中的一部分,通過語義向量化來檢索最相似的topk對象作爲推薦的候選集

隱式召回的核心用到了聚類等機器學習相關的算法,實現了無監督學習的過程

今天就到這裏啦,後續繼續更新學習筆記~

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章