如何利用用戶畫像進行個性化推薦|數據理解


                               


 

 之前開的坑一直沒有完成,有要開新的坑了,最近在做關於個性化推薦的項目,所以想對目前的工作有個總結。現階段的話,仍然處於熟悉數據的過程中,還沒有正式的走到算法這一層。主要的原因有兩點,第一:數據不是很全,關於用戶、item的信息都很少,數據之間存在很大的斷層情況;第二:我們部門之前沒有做這一方面,所以是大家做這個屬於嘗試,到底能夠做到哪一個步驟都是未知的。 總之,挑戰真的很大。下面我將從推薦算法的模型到數據做一個簡單的梳理。

一、推薦算法模型

  推薦算法有很多的相關模型,從最簡單的協同過濾到矩陣分解再到基於神經網絡。一個完整的推薦系統分為召回階段和排序階段,召回階段常用的方法為:協同過濾、矩陣分解,排序階段常用的方法為:FM、GBDT+LR 、FTRL+LR (Wide&Deep)、DeepFm。總的來說:

  • 矩陣分解(SVD、SVD++、TrustSVD),主要通過填充評分矩陣來進行推薦
  • 神經網絡的推薦算法:進行各種特征組合、embedding來進行CTR估計

  一般來收,都是采用多路召回的方法,從眾多的item中獲取到用戶很能會喜歡的成百個item,但是這么多的item如何有效的推送給用戶,需要使用到排序階段,排序階段則是通過預測用戶點擊item的概率來進一步刪選item,這一步選擇出了用戶最有可能點擊的item。但是,排序階段是否是每一個推薦系統都需要,還得進一步按照業務情況、活動、商品情況來進行判斷,我的觀點是,如果item真的很多,那確實需要進行排序,如果是想提高商品、活動的點擊、曝光情況則需要進行排序。

二、數據理解

  就召回階段來說,可以使用以下幾種方法來做:

    • 基於用戶畫像:此時則需要大量用戶的屬性特征,如:用戶的人口特征屬性、用戶的愛好特征屬性、用戶的愛好特征、用戶的偏好特征、用戶的商業屬性(比如:消費能力、消費頻率等),還有一些可以通過業務邏輯抽象出來可以反應一個人對於商品偏好的信息等(如購買時間),基於這些數據,我們可以對用戶進行分群,后面則可以針對不同的用戶進行不同的有針對性的推薦;(分群推薦)
    • 基於協同過濾、矩陣分解:

  在這種情況是模型需要的數據有:user-item-rating 、item-list 、user-list 信息,但是很多情況下,並不能夠直接得到user-item-rating評分信息,大部分情況是隱式反饋的用戶行為信息的;能夠直接獲取到的用戶評分信息的場景有:電商評分、電影評分、外賣評分,除此之外大部分是無法直接得到的,就我目前所接觸到的活動數據來看,推送一個活動,用戶能夠留下點擊、分享、使用的痕跡,此時如何得到評分信息呢?只能夠通過用戶行為來得到一個評分信息;首先需要去定義涉及到的用戶行為,其次設置每一個行為所對應的權重,最后通過所有行為的權重之和即可得到一個評分;如果用戶多次進行了以上的操作我的想法是,是不是直接可以累計之類的,或者只選擇最重要的行為進行打分,還木有實踐,都是一些想法,有大神看見的話可以留言;對了,還有一個問題,就是當用戶之前有多次的用戶行為時,如何進行構造呢?我看到過有基於用戶行為序列來得到模型結果;但是對於一個個性化要求沒有那么高的場景應該如何選擇呢? 是通過時間加權嗎?時間越近用戶的行為更加重要,但是如何權重設置呢? 這又是一個問題!!! 求看到的大神可以回答一下下,真的很重要😂 。

  我所接觸的是基於活動的推薦,雖然數據上有很多的缺失,所以不能止步不前啊,要推動項目需求過程,我目前只能按照我所理解到的數據以及模型中要使用的數據先列出來數據需求,只能這樣了;

       在梳理算法數據需求這一階段的時候,在此之前,你已經是對於你所接觸的數據有了一個大概的了解,列舉出來你想要的算法的數據會幫助你很好的理解算法的整個流程以及你接觸的數據。我在梳理數據時從每個算法的數據要求進行羅列,遇到沒有的數據則進行可以向前后端提需求(經理說),我目前還是個剛剛入職的菜鳥。

 

  經過多方溝通,最后決定基於用戶分群進行個性化推薦,所以上面提到的排序什么的用不到了,主要的思路是想通過建立用戶標簽庫,構造用戶畫像,再在此基礎上對各個群體的用戶的信息進行分析,進而實現個性化推薦。

      要做用戶畫像的話,則需要構造用戶標簽庫,這個怎么說呢?如果數據一致且完整且多,那做起來就沒什么難的了,重點是,當你遇到的數據斷層、不全,整個人真的會炸掉的(我目前就是這樣子,社畜太難了😭),關於完整的搭建用戶畫像可以借鑒阿里onedata體系、華為用戶畫像體系等;我在這就說一說我整個過程中的感受,畢竟只是一個菜鳥,在梳理用戶標簽時,需要考慮以下幾方面:

  • 人口特征信息: 這個不用過多解釋吧,大家都懂的
  • 設備信息:用戶的手機設備相關信息
  • 位置信息:用戶的常住城市、城市等級、出生城市、如果是電商的話,還有默認的簽收地址等(不過一般互聯網才搭建用戶畫像體系)
  • 用戶偏好信息: 體現一個用戶相關愛好的標簽,如:愛好的商品類型、用戶喜歡商品的標簽、用戶喜歡的商品的價格范圍
  • 會員信息:用戶會員等級、用戶賬號總的積分、用戶消耗掉的積分
  • 用戶行為特征: 由於我接觸到的是活動相關數據,涉及到的用戶行為有:用戶點擊、用戶抽獎、用戶使用的信息,因此用戶行為的設定都是依據以上來進行的;除了一些常見的指標、還可以從用戶發生行為的事件出發、利用相關算法來進行用戶購買水平、消費水平等的界定,如果你接觸到的數據還涉及到活動的簽到信息、做任務、玩游戲的數據還可以結合進行考慮;
  • 用戶賬號活躍情況的數據:用戶參與的平次、日均參與情況、日均核銷情況等

  總的來說,是深度挖掘用戶、用戶 和行為之間的各種信息,我目前的工作大致才到這一步,剛入職的社畜不容易啊😭  

       當然在考慮用戶指標的時候,最主要的還得看自己拿到的數據以及能夠獲取到的數據,如果沒有數據,任何東西都是白扯😂 ,而數據的話,則需要考慮是否各個表/業務線的數據一致,以下是我考慮的一些點(如果不對還請大佬指點):

  • 各個表的分區是否一致
  • 各個表之間的用戶數據是否存在斷層
  • 對於所有的用戶行為數據,是否都可以獲取到
  • 從埋點數據中,是否能夠很明確的看出用戶點擊所對應的各類事件(活動、獎品、商品、任務、廣告等)
  • 是否所有類型的數據都有落進來
  • 是否現有的表中,你想要的指標有,如果沒有,確認是否這些數據可以如何得到,如果是一些棄用的數據,那真的很傷人

  大致就這些吧,其他內容下次更新,寫到這個地方,我要吐血了😂😝,感覺自己還有一部分數據沒有考慮到,所以我還得去研究研究😁。

  大家如果有什么比較好一點的參考資料、想法、方法希望寫在評論區,讓我借鑒一下下😁

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM