面試題:隱語義模型是在推薦系統中的應用的嗎?

2021-02-16 七月在線實驗室

文 | 七月在線
編 | 小七

解析:



本篇記錄在學習隱語義模型的一些總結,隱語義建模;隱語義模型的核心思想;隱語義模型在推薦系統中的應用;隱語義模型與推薦系統的關係;工程中常用的矩陣分解方法

前言

推薦系統中一個重要的分支,隱語義建模。隱語義模型LFM:Latent Factor Model,其核心思想就是通過隱含特徵聯繫用戶興趣和物品。

過程分為三個部分,將物品映射到隱含分類,確定用戶對隱含分類的興趣,然後選擇用戶感興趣的分類中的物品推薦給用戶。它是基於用戶行為統計的自動聚類。

隱語義模型在Top-N推薦中的應用十分廣泛。常用的隱語義模型,LSA(Latent Semantic Analysis),LDA(Latent Dirichlet Allocation),主題模型(Topic Model),矩陣分解(Matrix Factorization)等等。

這些模型是本質上是相通的,目的就是找出潛在的主題或分類。這些技術一開始實在文本挖掘中提出來的。從netflix推薦大賽之後,這些技術被用在推薦領域,並且得到明顯的效果。比如,在推薦系統中,能夠用這些模型將用戶的行為(用戶的偏好)對item進行自動聚類,也就是把item劃分到不同類別/主題,這些主題/類別可以理解為用戶的興趣。

憑藉這種思想,著名的推薦領域大神Yehuda Koren更是憑藉矩陣分解模型勇奪Netflix Prize推薦比賽冠軍,以矩陣分解為基礎,Yehuda Koren在數據挖掘和機器學習相關的國際頂級會議(SIGIR,SIGKDD,RecSys等)發表了很多文章,將矩陣分解模型的優勢發揮得淋漓盡致。實驗結果表明,在個性化推薦中使用矩陣分解模型要明顯優於傳統的基於鄰域的協同過濾(又稱基於記憶的協同過濾)方法,如UserCF、ItemCF等,這也使得矩陣分解成為了之前個性化推薦研究領域中的主流模型。
基本算法與UserCF和ItemCF對比
首先通過一個例子來理解一下這個模型,比如說有兩個用戶A和B,目前有用戶的閱讀列表,用戶A的興趣涉及偵探小說,科普圖書以及一些計算機技術書,而用戶B的興趣比較集中在數學和機器學習方面。
那麼如何給A和B推薦圖書呢?

對於UserCF,首先需要找到和他們看了同樣書的其他用戶(興趣相似的用戶),然後在給他們推薦那些用戶喜歡的其他書。
對於ItemCF,需要給他們推薦和他們已經看的書相似的書,比如用戶B 看了很多數據挖掘方面的書,那麼可以給他推薦機器學習或者模式識別方面的書。

還有一種方法,可以對書和物品的興趣進行分類。對於某個用戶,首先得到他的興趣分類,然後從分類中挑選他可能喜歡的物品。

基於興趣分類的方法大概需要解決的問題:

如何給物品進行分類?
如何確定用戶對哪些類的物品感興趣,以及感興趣的程度?
對於一個給定的類,選擇哪些屬於這個類的物品推薦給用戶,以及如何確定這些物品在一個類中的權重?

對於第一個問題最簡單的解決方案是找編輯給物品打標籤,或者採用豆瓣的方式,讓用戶自己打標籤。這樣做的確定是,這種打標籤不自動發現類比,還有一點就是編輯的意見並不能達標各種用戶的意見,比如一些書目的劃分是模稜兩可的。這就涉及到分類的粒度不易控制的問題。另外,編輯很難決定一個物品在某一個分類中的權重,比如編輯可以很容易的決定《數據挖掘導論》屬於挖掘類的圖書,但是這本書在這類書中的定位是什麼樣的,編輯就很難給出一個準確的數字來標示。

為了解決上面的問題,研究人員提出:為什麼我們不從數據出發,自動地找到那些類,然後進行個性化推薦,隱語義分析技術因為採取基於用戶行為統計的自動聚類,較好地解決了上面的問題。隱語義分析技術從誕生到今天產生了很多著名的模型和方法,其中和推薦技術相關的有pLSA,LDA,隱含類別模型(latent class model), 隱含主題模型(latent topic model), 矩陣分解(matrix factorization)。


隱語義模型的應用


向用戶推薦物品
在推薦系統中,可以通過隱含語義模型將用戶(user)和物品(item)自動分類,這些類別是自動生成的,這些類比也可以叫做「隱含的分類」,或許我們看不懂分類後的結果。但是採用這種技術後,每個用戶或者物品會被分到多個類別中,屬於某個類別的權重會被計算出來。

假設現在有一個大小為m×n的評分矩陣V,包含了m個用戶對n個物品的評分,評分從0到5,值越大代表越喜歡,0代表沒有打分。設定共有r個隱含的分類。通過一些方法,將V展開為兩個相乘的矩陣:

V = W*H

其中,W的大小為m×r,H的大小為r×n。在隱語義模型中,W(i,j)被解釋為用戶i屬於類別j的權重,H(a,b)被解釋為物品b屬於類別a的的權重。

如果用戶u對物品i沒有評分,可以將這個評分r(u,i)預測為:

r(u,i) = sum(W(i, :) .* H(:, i)) // 向量點乘

據此可以構建一個推薦系統。


文本分類

隱語義模型的另一個常見的應用領域是文本分類,這個類似於上面的推薦系統。在文本分類領域,將文檔和詞用一個矩陣表示,如常見的詞袋模型,文檔-詞矩陣。我們將數據集中的一堆文本構造成文檔-詞矩陣V,如果共有m個文本,n個單詞,那麼V的大小為m*n,V(i,j)表示文檔i中出現單詞j的次數。

設定共有r個隱含的分類。

通過一些方法,將V展開為兩個相乘的矩陣:

V = W*H

其中,W的大小為m×r,H的大小為r×n。在隱語義模型中,W(i,j)被解釋為文檔i屬於類別j的權重,H(a,b)被解釋為單詞b屬於類別a的的權重。
對於一個文檔,其權重最大的類別被看作是該文檔的類別。由於設定共有r個隱含的分類,分類結果也是r個份分類。


採用矩陣分解技術發現兩種實體見潛在的特徵
使用矩陣分解來預測評分的思想來源於,我們可以通過矩陣分解來發現一些用戶打分的潛在特徵,比如兩個人都喜歡某一演員,那他們就傾向於給該演員演的電影打高分;或者兩個都喜歡動作片,假如我們能夠發現這些特徵,我們就能夠預測特定用戶對特定電影的打分。

為了發現不同的特徵,我們假設特徵的數量少於用戶和電影的數量,矩陣分解算法的數學理論基礎是矩陣的行列變換。在《線性代數》中,我們知道矩陣A進行行行變換相當於A左乘以一個矩陣,矩陣A進行列變換等價於矩陣A右乘以一個矩陣,因此矩陣A可以進行矩陣分解,一方面可以起到降低數據維度的作用,另一方面也可以找到潛在的特徵。

矩陣分解可以開來非常好的結果,而且可以充分地考慮各種因素的影響,有非常好的擴展性,因為要考慮各種因素的綜合作用,往往需要構造cost function來將矩陣分解轉換為優化問題。根據要考慮的因素為優化問題其他限制條件,然後通過迭代的方法進行矩陣分解,原來評分矩陣中的missing value可以通過分解後得到的矩陣求得。


pureSVD
其實,矩陣分解的核心是將一個非常稀疏的評分矩陣分解為兩個矩陣,一個表示用戶user的特性,一個表示item的特性,將兩個矩陣各自取一行一列向量做內積就可以得到對應評分。那麼如何將一個矩陣分解為兩個矩陣就是唯一的問題啦。

這裡可以借用在線性代數和數值分析中學到的各種矩陣分解方法,如QR, Jordan,三角分解,SVD。這裡說明下 svd方法的大概意思:將一個任意實矩陣分解為桑格矩陣U,S,V,其中U , V 是兩個正交矩陣,稱為左右奇異矩陣,S是個對稱陣,稱為奇異值矩陣。


Latent Factor Model
這是真正的矩陣分解算法,經過實踐檢驗,具有非常高的準確性和易擴展性。正如上面提到的,實現推薦系統結果的目標是將那個稀疏的評分矩陣分解成為兩個矩陣,一個表示user的feature,一個表示item的feature,然後做內積得到預測。

當然要實現滿足一定約束條件的矩陣分解,不像上面的pureSVD那麼容易,需要構造一個優化問題,用一些複雜的算法求最優化問題。而這些最優化問題往往是NP問題,只有局部最優解。首先構造一個優化目標函數,考慮到最後的評價指標是預測分值與實際分值之間的誤差的平方(RMSE),所以構造的目標函數也是誤差的平方的函數。為什麼這樣的算法可以得到更優的結果呢?因為算法可以很容易地擴展很多的feature進來,更加出色地考慮了多種影響推薦效果的實實在在的因素。

Biases 用戶評分的偏見:
因為有的用戶總是會打出比別人高的分,或者說有的用戶他的評價尺度比較寬鬆,同樣有的item總是被打高分,所以在真正實
踐中,構造目標函數需要增加幾項:所有評分的平均值miu,user的偏見分數,item的偏見分數。

implicit feedback 隱式反饋數據
用戶在使用web應用的時候,會產生大量的行為,充分挖掘這部分的價值,將會很好的提升推薦的效果,利用用戶的隱式反
饋,相當於充分的利用評分矩陣中的missing value的價值,用戶在頁面的停留時間,檢索,瀏覽,點擊等等各種行為都可
以建模到目標函數中。在看到的論文中,這裡,可以將簡單的用一個boolean來描述一種行為有還是沒有。補過在使用的使用
需要進行歸一化處理。

User-associated attributes
基於用戶的社會化屬性進行推薦也是一種很基本的推薦,當然也可以考慮到目標函數中。

Temporal dynamics
用戶的興趣包括長期和短期,動態地考慮一段時間內用戶的興趣是很有必要的。

Confidence level
因為在處理上述的因素的時候,很多都是比較主觀的,所以需要給每個因素添加一個置信權重,以平衡整個結果。

通過構造出這個目標函數,然後添加相應的約束條件,接下來的問題就是求解這個優化問題,通常比較好的方法是 隨機梯度下降算法(Stochastic gradient desent)

這種方法在學術上主流的方法,參考http:research.yahoo.com/Yehuda_Koren以及上海交大在kddcup的論文集開源系統http://apex.sjtu.edu.cn/apex_wiki/svdfeature


非負矩陣分解
基本原理:NMF,非負矩陣分解,它的目標很明確,就是將大矩陣分解為兩個小矩陣,使得這兩個小矩陣相乘後能夠還原到大矩陣。而非負表示分解的矩陣都不包含負值。從應用的角度來說,矩陣分解能夠用於發現兩種實體間的潛在特徵,一個最常見的應用就是協同過濾中的預測打分值,而從協同過濾的這個角度來說,非負也很容易理解:打分都是正的,不會出現負值。

考慮到svd或者latent factor model 會得到負值的情況,所以非負矩陣分解的物理意義比較明確。同樣的道理,NMF也是將評分矩陣的轉置矩陣分解成兩個矩陣。*不同的是這兩個矩陣有著和上面的矩陣不同的物理意義。其中一個是基矩陣W,另一個是投影矩陣H,即R(nm)=W(nr)H(r*m)。
W:每一列包含一個基向量,這組基向量構成一個r維的空間。
H:每一列則近似為原始數據對應的列向量在該r維空間的投影。

做這個分解的方法也是構造一個目標函數和一些約束條件,然後用梯度下降的算法計算得到一個局部最優解。這種方法的大概思路
1 將評分矩陣轉置然後分解稱為兩個矩陣W和H。
2 根據基矩陣W,可以計算得到目標用戶評分向量a對基矩陣W的投影向量h.
3 計算投影向量h與投影矩陣H各行之間的歐氏距離,將其中距離最小的前k個用戶組成目標用戶a的最近鄰集合。
4 然後用皮爾遜講最近鄰集合中的數據進行加權計算,然後拍下進行推薦。

這種方法的思路和上面的兩種還是不同相同的,主要是在計算目標用戶的最近鄰集合,主要思想還是knn,只是在中間用了矩陣分解的方法降低了計算的時間複雜度。

參考:blog.csdn.net/zyvscc/article/details/7551842
www.cnblogs.com/LeftNotEasy/archive/2011/01/19/svd-and-applications.html


電商推薦系統特訓

8 節實訓課➕共享社群答疑➕源碼

六大實戰項目,從零開始

1月20日開課(下周三)

火熱報名中

課程詳情

戳一戳

購買,諮詢,查看課程,請點擊【閱讀原文

↓ ↓ ↓ 

相關焦點

  • 機器學習面試中最常考的樹模型(附答案)
    樹模型可以說在機器學習的面試中,是面試官最喜歡問的一類問題,今天小編就帶你一起回顧一下去年校招中我所經歷的樹模型相關的問題,這次帶答案呦~~(答案是小編的理解,如果有遺漏的地方,歡迎大家在留言區指正,同時,如果有更多關於樹模型的題目,也歡迎在留言區補充)1、決策樹的實現、ID3、C4.5、CART(貝殼)2
  • 多目標學習在推薦系統中的應用
    當然,通過LTR(Learning To Rank)方法優化Item的重要性可以解決多目標要解決的問題,但是由於工程實現、推薦框架調整等方面的困難,相關方法在實際應用中比較少。下面我們重點梳理一下一個模型預估多個目標的多任務學習模型的發展進程。5.
  • ESA系列新書推薦:《生態系統分析中的生物物理模型及應用(英文版)》
    高等教育出版社與美國密西根州立大學出版社合作出版入選「十二五」國家重點圖書和「經典中國」國際出版工程英文書名:Biophysical Models and Applications in Ecosystem Analysis中文書名:生態系統分析中的生物物理模型及應用
  • DuerQuiz:一個面向智能招聘筆試、面試的個性化試題推薦系統
    隨後我們提出一種基於歷史招聘數據下的一種啟發式個性化試題推薦方法。實驗結果表明我們的系統可以在招聘環節中有效的選取人才。為此,在本文中,我們開發了一種新穎的個性化問題推薦系統DuerQuiz,以增強人才招聘中的工作筆試、面試評估。圖1顯示了我們的推薦系統的動機示例。可以看出,在數據科學家的職位描述中,分別有三個通用要求,分別是編程,機器學習和大數據分析。根據兩位候選人的簡歷,他們在滿足相應要求方面具有不同的個人技能背景。
  • 軍轉幹行測備考:隔板模型在行測排列組合題中的應用
    軍轉幹行測備考:隔板模型在行測排列組合題中的應用 2019-07-19 10:18:59| 福建軍轉網
  • 推薦系統丨YouTube召回模型設計
    隨著網際網路行業的高速發展,人們獲取信息的方式越來越多。人
  • 深度學習在推薦系統上的應用
    確實深度學習很火,近期深度學習的戰火燒到推薦系統,其強大的表徵能力和低準入門檻,已經成為各大高校和中國人改網絡發paper的紅利時代。可是我還沒能發上那麼幾篇,之前面試大廠的AI labs被總監虐,感覺工作之後被壓榨太多,快幹了。推薦系統為什麼引入深度學習?
  • LSTM模型在問答系統中的應用
    在問答系統的應用中,用戶輸入一個問題,系統需要根據問題去尋找最合適的答案。1、採用句子相似度的方式。根據問題的字面相似度選擇相似度最高的問題對應的答案,但是採用這種字面相似度的方式並不能有效的捕獲用戶意圖的能力有限。
  • 從理論到實踐,一文詳解 AI 推薦系統的三大算法
    由於信息的爆炸式增長,對信息獲取的有效性,針對性的需求也就自然出現了。推薦系統應運而生。  推薦系統的架構推薦系統常見的架構體系如下: 結果展示:對推薦結果進行展示  主要算法以及介紹本章節主要介紹 協同過濾,SVD, K-Means 三種算法協同過濾模型模型介紹協同過濾Collaborative Filtering (CF)算法是推薦算法的一個大分支,基本思想是推薦相似的物品,
  • 深度學習推薦模型DeepFM技術剖析:助力華為應用市場APP推薦
    今年8月下旬,在澳大利亞墨爾本召開的IJCAI2017會議上,來自華為伏羲推薦團隊的專家發表了他們在深度學習推薦算法方面的最新成果。伏羲推薦引擎是華為應用市場聯合華為諾亞方舟實驗室開發的一款推薦系統。針對華為應用市場的業務特點和數據特徵,伏羲推薦算法團隊提出的端到端的深度學習推薦模型DeepFM,助力華為應用市場更加精準、個性化的推薦體驗。
  • 2020年自考《管理系統中計算機應用》真題練習題
    自考管理系統中計算機應用是自考的一門公共課,小編整理了一些模擬試題及答案,供大家參考。點擊進入:自考報名有疑問、不知道如何選擇主考院校及專業、自考當地政策不了解,點擊立即報考諮詢》》   2020年自考《管理系統中計算機應用》真題練習題一、單項選擇題:本大題共30小題,每小題1分,共30分。在每小題列出的備選項中只有一項是最符合題目要求的,請將其選出。
  • 2020Web前端面試題匯總-開課吧
    Web前端面試題說說前端中的事件流?在DOM標準事件模型中,是先捕獲後冒泡。但是如果要實現先冒泡後捕獲的效果,對於同一個事件,監聽捕獲和冒泡,分別對應相應的處理函數,監聽到捕獲事件,先暫緩執行,直到冒泡事件被捕獲後再執行捕獲之間。eval是做什麼的?
  • 推薦系統經典模型 Wide & Deep 論文剖析
    它發表於2016年,作者是Google App Store的推薦團隊。這年剛好是深度學習興起的時間。這篇文章討論的就是如何利用深度學習模型來進行推薦系統的CTR預測,可以說是在推薦系統領域一次深度學習的成功嘗試。著名的推薦模型Wide & deep就是出自這篇論文,這個模型因為實現簡單,效果不俗而在各大公司廣泛應用。因此它同樣也可以認為是推薦領域的必讀文章之一。
  • 高考考點:雙星系統;學會應用「雙星」模型解決複雜問題
    本題求解要應用「雙星」模型的相關規律,你若是在高考考場上一著急想不起來,這二十分就沒了。還有第二問,我已經試過多次了,每次讓學生做這道題,百分之八十以上的學生都會出錯。我們先複習有關「雙星」的相關知識。
  • 面試題:如何設計一個權限系統?
    在用戶基數小的系統,比如20個人的小系統,管理員可以直接把用戶和權限關聯,工作量並不大,選擇一個用戶勾選下需要的權限就完事了。但是在實際企業系統中,用戶基數比較大,其中很多人的權限都是一樣的,就是個普通訪問權限,如果管理員給100人甚至更多授權,工作量巨大。
  • 2020最新Java後端面試題(帶答案),重點都給畫出來了!你不看?
    前言金九銀十,金三銀四確實是跳槽旺季,但是拋除這個之外,每天都有人在面試,有些人迷茫,有些人躊躇滿志,可能人們總在想,如果能知道面試內容就好了,其實我們可以從網上找到80%的面試題,自己去提前準備。有準備的面試總是讓人信心滿滿的。
  • RS Meet DL(69)-youtube視頻推薦中的多任務排序模型
    除此之外,本文還介紹了如何消除推薦系統中常見的位置偏置因素以及在應用深度學習模型中的一些實踐經驗,一起來學習一下。1、背景視頻推薦的任務可以描述為根據用戶當前所觀看的視頻,來預測用戶下一個可能觀看的視頻。傳統的推薦系統往往是兩階段的設計模式,即召回和精排階段。本文主要介紹精排階段的模型。
  • 基於SpringCloud的面試刷題系統,項目經驗統統搞定
    來源:https://mp.weixin.qq.com/s/WWND70GFun2W9Dei5YAAyQ今天給小夥伴們推薦一個朋友開源的面試刷題系統。這篇文章我會從系統架構設計層面詳細介紹這個開源項目,並且會把微服務常用的一些技術都介紹一下。即使你對這個項目不感興趣,也能了解到很多微服務相關的知識。美滋滋!
  • 這三個數學模型是解初中數學應用題的萬能公式,你掌握了嗎?
    分析近幾年中考應用性問題不難得出,試題從實際出發提供公平背景,設問新穎、靈活,而解決這些問題根據各個量的關係,進行數學化設計,即建立數學模型,將實際問題轉化為數學問題。本節課結合實例介紹幾種解實際問題常用的數學模型。
  • 科普篇 | 推薦系統之矩陣分解模型
    導語:本系列文章一共有三篇,分別是《科普篇 | 推薦系統之矩陣分解模型