操屁眼的视频在线免费看,日本在线综合一区二区,久久在线观看免费视频,欧美日韩精品久久综

新聞資訊

    3. 聊天記錄(不要慌,我舉個例子而已,你在微信上說的話還是安全的)。

    物品這一端也有大量文本信息,可以用于構建物品畫像( Item ),并最終幫助豐富 用戶畫像(User ),這些數據舉例來說有:

    1. 物品的標題、描述;

    2. 物品本身的內容(一般指新聞資訊類);

    3. 物品的其他基本屬性的文本。

    文本數據是互聯網產品中最常見的信息表達形式,數量多、處理快、存儲小,因為文本數據的特殊地位,所以今天我專門介紹一些建立用戶畫像過程中用到的文本挖掘算法。

    構建用戶畫像

    要用物品和用戶的文本信息構建出一個基礎版本的用戶畫像,大致需要做這些事:

    1. 把所有非結構化的文本結構化,去粗取精,保留關鍵信息;

    2. 根據用戶行為數據把物品的結構化結果傳遞給用戶,與用戶自己的結構化信息合并。

    第一步最關鍵也最基礎,其準確性、粒度、覆蓋面都決定了用戶畫像的質量。仿佛如果真的要繪制一個用戶的模樣,要提前給他拍照,這個拍照技術決定了后面的描繪情況,無論是采用素描、油畫、工筆還是寫意。這一步要用到很多文本挖掘算法,稍后會詳細介紹。

    第二步會把物品的文本分析結果,按照用戶歷史行為把物品畫像( Item )傳遞給用戶。

    一、結構化文本

    我們拿到的文本,常常是自然語言描述的,用行話說,就是“非結構化”的,但是計算機在處理時,只能使用結構化的數據索引,檢索,然后向量化后再計算;所以分析文本,就是為了將非結構化的數據結構化,好比是將模擬信號數字化一樣,只有這樣才能送入計算機,繼續計算。

    從物品端的文本信息,我們可以利用成熟的 NLP 算法分析得到的信息有下面幾種。

    1. 關鍵詞提?。鹤罨A的標簽來源,也為其他文本分析提供基礎數據,常用 TF-IDF 和 。

    2. 實體識別:人物、位置和地點、著作、影視劇、歷史事件和熱點事件等,常用基于詞典的方法結合 CRF 模型。

    3. 內容分類:將文本按照分類體系分類,用分類來表達較粗粒度的結構化信息。

    4. 文本 :在無人制定分類體系的前提下,無監督地將文本劃分成多個類簇也很常見,別看不是標簽,類簇編號也是用戶畫像的常見構成。

    5. 主題模型:從大量已有文本中學習主題向量,然后再預測新的文本在各個主題上的概率分布情況,也很實用,其實這也是一種聚類思想,主題向量也不是標簽形式,也是用戶畫像的常用構成。

    6. 嵌入:“嵌入”也叫作 ,從詞到篇章,無不可以學習這種嵌入表達。嵌入表達是為了挖掘出字面意思之下的語義信息,并且用有限的維度表達出來。

    下面我來介紹幾種常用的文本結構化算法。

    1關鍵詞提取算法 TF-IDFTF

    全稱就是 Term ,是詞頻的意思,IDF 就是 是逆文檔頻率的意思。TF-IDF 提取關鍵詞的思想來自信息檢索領域,其實思想很樸素,包括了兩點:在一篇文字中反復出現的詞會更重要,在所有文本中都出現的詞更不重要。非常符合我們的直覺,這兩點就分別量化成 TF 和 IDF 兩個指標:

    1. TF,就是詞頻,在要提取關鍵詞的文本中出現的次數;

    2. IDF,是提前統計好的,在已有的所有文本中,統計每一個詞出現在了多少文本中,記為 n,也就是文檔頻率,一共有多少文本,記為 N。

    IDF 就是這樣計算:

    短文本情感分類數據集_短文本分類算法優化_短文本相似度算法

    計算過程為:詞出現的文檔數加 1,再除總文檔數,最后結果再取對數。

    IDF 的計算公式有這么幾個特點:

    1. 所有詞的 N 都是一樣的,因此出現文本數越少 (n) 的詞,它的 IDF 值越大;

    2. 如果一個詞的文檔頻率為 0,為防止計算出無窮大的 IDF,所以分母中有一個 1;

    3. 對于新詞,本身應該 n 是 0,但也可以默認賦值為所有詞的平均文檔頻率。

    計算出 TF 和 IDF 后,將兩個值相乘,就得到每一個詞的權重。根據該權重篩選關鍵詞的方式有:

    1. 給定一個 K,取 Top K 個詞,這樣做簡單直接,但也有一點,如果總共得到的詞個數少于 K,那么所有詞都是關鍵詞了,顯然這樣做不合理;

    2. 計算所有詞權重的平均值,取在權重在平均值之上的詞作為關鍵詞;

    另外,在某些場景下,還會加入以下其他的過濾措施,如:只提取動詞和名詞作為關鍵詞。

    2關鍵詞提取算法

    這個名字看上去是不是和著名的 有點親戚關系?是的, 是 的私生子之一,著名的 算法是 用來衡量網頁重要性的算法, 算法的思想也與之類似,可以概括為:

    1. 文本中,設定一個窗口寬度,比如 K 個詞,統計窗口內的詞和詞的共現關系,將其看成無向圖。圖就是網絡,由存在連接關系的節點構成,所謂無向圖,就是節點之間的連接關系不考慮從誰出發,有關系就對了;

    2. 所有詞初始化的重要性都是 1;

    3. 每個節點把自己的權重平均分配給“和自己有連接“的其他節點;

    4. 每個節點將所有其他節點分給自己的權重求和,作為自己的新權重;

    5. 如此反復迭代第 3、4 兩步,直到所有的節點權重收斂為止。

    通過 計算后的詞語權重,呈現出這樣的特點:那些有共現關系的會互相支持對方成為關鍵詞。

    3 內容分類

    在門戶網站時代,每個門戶網站都有自己的頻道體系,這個頻道體系就是一個非常大的內容分類體系,這一做法也延伸到了移動互聯網 UGC 時代,圖文信息流 App 的資訊內容也需要被自動分類到不同的頻道中,從而能夠得到最粗粒度的結構化信息,也被很多推薦系統用來在用戶冷啟動時探索用戶興趣。

    在門戶時代的內容分類,相對來說更容易,因為那時候的內容都是長文本,長文本的內容分類可以提取很多信息,而如今 UGC 當道的時代,短文本的內容分類則更困難一些。短文本分類方面經典的算法是 SVM ,在工具上現在最常用的是 開源的 。

    4 實體識別

    命名實體識別(也常常被簡稱為 NER,Named- )在 NLP 技術中常常被認為是序列標注問題,和分詞、詞性標注屬于同一類問題。

    所謂序列標注問題,就是給你一個字符序列,從左往右遍歷每個字符,一邊遍歷一邊對每一個字符分類,分類的體系因序列標注問題不同而不同:

    1. 分詞問題:對每一個字符分類為“詞開始”“詞中間”“詞結束”三類之一;

    2. 詞性標注:對每一個分好的詞,分類為定義的詞性集合的之一;

    3. 實體識別:對每一個分好的詞,識別為定義的命名實體集合之一。

    對于序列標注問題,通常的算法就是隱馬爾科夫模型(HMM)或者條件隨機場(CRF),我們在推薦系統中主要是挖掘出想要的結構化結果,對其中原理有興趣再去深入了解。

    短文本分類算法優化_短文本相似度算法_短文本情感分類數據集

    實體識別還有比較實用化的非模型做法:詞典法。提前準備好各種實體的詞典,使用 trie-tree 數據結構存儲,拿著分好的詞去詞典里找,找到了某個詞就認為是提前定義好的實體了。

    以實體識別為代表的序列標注問題上,工業級別的工具上 spaCy 比 NLTK 在效率上優秀一些。

    5 聚類

    傳統聚類方法在文本中的應用,今天逐漸被主題模型取代,同樣是無監督模型,以 LDA 為代表的主題模型能夠更準確地抓住主題,并且能夠得到軟聚類的效果,也就是說可以讓一條文本屬于多個類簇。

    作為初創公司或初創產品,我知道你的時間寶貴,也知道你的公司處處節儉,以至于沒有業務專家為你的應用制定分類體系,這時候如果能在文本數據上跑一個 LDA 模型,那世界就顯得非常美好了。

    LDA 模型需要設定主題個數,如果你有時間,那么這個 K 可以通過一些實驗來對比挑選,方法是:每次計算 K 個主題兩兩之間的平均相似度,選擇一個較低的 K 值;如果你趕時間,在推薦系統領域,只要計算資源夠用,主題數可以盡量多一些。

    另外,需要注意的是,得到文本在各個主題上的分布,可以保留概率最大的前幾個主題作為文本的主題。LDA 工程上較難的是并行化,如果文本數量沒到海量程度,提高單機配置也是可以的,開源的 LDA 訓練工具有 ,PLDA 等可供選擇。

    6 詞嵌入

    關于嵌入,是一個數學概念。以詞嵌入為例來說吧。詞嵌入,也叫作 Word 。前面講到的結構化方案,除了 LDA,其他都是得到一些標簽,而這些標簽無一例外都是稀疏的,而詞嵌入則能夠為每一個詞學習得到一個稠密的向量。

    這樣說可能很抽象,換個說法,一個詞可能隱藏很多語義信息,比如北京,可能包含“首都、中國、北方、直轄市、大城市”等等,這些語義在所有文本上是有限的,比如 128 個,于是每個詞就用一個 128 維的向量表達,向量中各個維度上的值大小代表了詞包含各個語義的多少。

    拿著這些向量可以做以下的事情:

    1. 計算詞和詞之間的相似度,擴充結構化標簽;

    2. 累加得到一個文本的稠密向量;

    3. 用于聚類,會得到比使用詞向量聚類更好的語義聚類效果。

    這方面當然就屬大名鼎鼎的 了。 是用淺層神經網絡學習得到每個詞的向量表達, 最大的貢獻在于一些工程技巧上的優化,使得百萬詞的規模在單機上可以幾分鐘輕松跑出來,得到這些詞向量后可以聚類或者進一步合成句子向量再使用。

    二、標簽選擇

    前面說到,用戶端的文本,物品端的文本如何結構化,得到了諸如標簽(關鍵詞、分類等)、主題、詞嵌入向量。接下來就是第二步:如何把物品的結構化信息給用戶呢?

    我們想一想,用戶在產品上看到了很多我們用各種邏輯和理由展示給他的物品,他只從中消費了一部分物品?,F在問題就是,到底是那些特性吸引了他消費呢?

    一種簡單粗暴的辦法是直接把用戶產生過行為的物品標簽累積在一起,但是這里要說的是另一種思路。

    我們把用戶對物品的行為,消費或者沒有消費看成是一個分類問題。用戶用實際行動幫我們標注了若干數據,那么挑選出他實際感興趣的特性就變成了特征選擇問題。

    最常用的是兩個方法:卡方檢驗(CHI)和信息增益(IG)?;舅枷胧牵?/p>

    1. 把物品的結構化內容看成文檔;

    2. 把用戶對物品的行為看成是類別;

    3. 每個用戶看見過的物品就是一個文本集合;

    4. 在這個文本集合上使用特征選擇算法選出每個用戶關心的東西。

    1 卡方檢驗

    CHI 就是卡方檢驗短文本分類算法優化,本身是一種特征選擇方法。

    短文本分類算法優化_短文本情感分類數據集_短文本相似度算法

    前面的 TF-IDF 和 都是無監督關鍵詞提取算法,而卡方檢驗(CHI)則是有監督的,需要提供分類標注信息。

    為什么需要呢?在文本分類任務中,挑選關鍵詞就得為了分類任務服務,而不僅僅是挑選出一種直觀上看著重要的詞。

    卡方檢驗本質上在檢驗“詞和某個類別 C 相互獨立”這個假設是否成立,和這個假設偏離越大,就越說明這個詞和類別 C 暗中有一腿,那當然這個詞就是關鍵詞了。

    計算一個詞 Wi 和一個類別 Cj 的卡方值,需要統計四個值:

    1. 類別為 Cj 的文本中出現詞 Wi 的文本數 A;

    2. 詞 Wi 在非 Cj 的文本中出現的文本數 B ;

    3. 類別為 Cj 的文本中沒有出現 Wi 的文本數 C ;

    4. 詞 Wi 在非 Cj 的文本中沒有出現的文本數 D 。

    聽起來有點繞,我把它畫成一個表格更加一目了然。

    然后按照如下公式計算每一個詞和每一個類別的卡方值:

    關于這個卡方值計算,我在這里說明幾點:

    1. 每個詞和每個類別都要計算,只要對其中一個類別有幫助的詞都應該留下;

    2. 由于是比較卡方值的大小,所以公式中的 N 可以不參與計算,因為它對每個詞都一樣,就是總的文本數;

    3. 卡方值越大,意味著偏離“詞和類別相互獨立”的假設越遠,靠“詞和類別互相不獨立”這個備擇假設越近。

    2 信息增益

    IG 即 Gain,信息增益,也是一種有監督的關鍵詞選擇方法,也需要有標注信息。要理解信息增益,理解了信息熵就差不多了。

    信息熵,一批文本被標注了類別,那么任意挑出一條文本問你,“猜猜這是什么類別?”如果原來每個類別的文本數量都一樣,那你肯定最不好猜,如果其中一個類別的文本 C 數遠遠多于其他類別,那么你猜這條文本屬于類別 C 就很可能猜對。這兩個情況區別就在于信息熵不同:

    1. 各個類別的文本數量差不多時,信息熵就比較大。

    2. 其中少數類別的文本數量明顯較多時,信息熵就較小。

    進一步再想一件事,如果從這一堆文本中再挑出包含有詞 W 的文本數,再來猜任意一條文本的類別時,仍然會有上面兩種情況。這時候考慮一個情況:如果在整個文本上的情況是 1,但挑出包含詞 W 后的情況變成 2 了,那么你想,這個詞 W 是不是非常有用?因為有了它,我們就能以較高的成功率猜對任意一條文本的類別了。對,上面這個思考過程就是信息增益的思想,信息增益計算也是分成三步:

    1. 統計全局文本的信息熵;

    2. 統計每個詞的條件熵,就是知道了一個詞后再統計文本的信息熵,只不過這里要分別計算包含詞和不包含詞兩部分的信息熵,再按照各自文本比例加權平均;

    3. 兩者相減就是每個詞的信息增益。

    信息增益應用最廣就是數據挖掘中的決策樹分類算法,經典的決策樹分類算法挑選分裂節點時就是計算各個屬性的信息增益,始終挑選信息增益最大的節點作為分裂節點。

    卡方檢驗和信息增益不同之處在于:前者是針對每一個行為單獨篩選一套標簽出來,后者是全局統一篩選。這些方法都是在離線階段批量完成的,把用戶的畫像生成配置成離線任務,每天更新一遍,次日就可以使用新的用戶畫像。

    短文本分類算法優化_短文本相似度算法_短文本情感分類數據集

    那么對于一個新用戶,能不能在他剛剛進入產品時就能夠快速生成一個簡單的畫像呢?

    答案是:當然可以。這在后面的專欄中會講到的 MAB 問題。

    超越標簽的內容推薦系統

    基于內容的推薦一般是推薦系統的起步階段,而且會持續存在,它的重要性不可取代。因為:

    1. 內容數據始終存在并且蘊含豐富的信息量,不好好利用就可惜了;

    2. 產品冷啟動階段,沒有用戶行為,別無選擇;

    3. 新的物品要被推薦出去短文本分類算法優化,首選內容推薦。

    基于內容的整體框架也是很清晰的,其中對內容的分析最為重要,推薦算法這一款可以考慮先使用糙快猛的相似度計算,也可以采用機器學習思路訓練預估模型,當然這必須得有大量的用戶行為做保證。

    我曾在不同公司里都聽到過,他們的產品經理或者大佬問過這樣的問題:我們的推薦系統標簽夠不夠?相信你也遇到過類似的問題。這其實是一個很大的誤區:基于內容的推薦系統,標簽只是很小一部分。而且就算是標簽,衡量質量的方式也不是數目夠不夠;所以,今天我要講的內容,就是說一說脫離標簽定式思維的內容推薦。

    為什么要做好內容推薦

    所謂的基于內容推薦,通俗一點來講,就是一個包裝成推薦系統的信息檢索系統。這聽上去有點殘酷,但通常一個復雜的推薦系統很可能是從基于內容推薦成長起來的。可以說,基于內容的推薦系統是一個推薦系統的孩童時代,所以,我們不能讓自己的推薦系統輸在起跑線上,得富養才行。那么,首先我就來講一講如何養成一個基于內容的推薦系統。

    為什么基于內容的推薦系統這么重要呢?

    因為內容數據非常易得,哪怕是在一個產品剛剛上線,用心找的話總能找到一些可以使用的內容,不需要有用戶行為數據就能夠做出推薦系統的第一版。內容數據尤其是文本,只要深入挖掘,就可以挖掘出一些很有用的信息供推薦系統使用。另外,著名的流媒體音樂網站 ,其音樂推薦系統背后的“音樂基因工程”,實質上就是人工為音樂標注了各種維度的屬性,這樣,即便使用基于內容推薦的方式,也做出了很好的推薦效果。

    聽上去,上面這段話特別像是在安慰還處在冷啟動階段的你,事實上呢,其實并不全是,內容推薦的方式還有它的必要性。推薦系統總是需要接入新的物品,這些新的物品在一開始沒有任何展示機會,顯然就沒有用戶反饋,這時候只有內容能幫它。

    基于內容的推薦能把這些新物品找機會推薦出去,從而獲得一些展示機會,積累用戶反饋、走上巔峰、占據熱門排行榜。要把基于內容的推薦做好,需要做好“抓、洗、挖、算”四門功課。它們分別是對應了下面的內容。

    1. 抓:大廠們從來不公開說的一件事是,他們一直在持續抓數據豐富自己的內容,所以做好一個基于內容的推薦,抓取數據補充內容源,增加分析的維度,兩者必不可少。

    2. 洗:抓來的數據,相當于撿別人掉地上的東西吃,我們也得注意衛生,洗洗更健康,數據也一樣,冗余的內容、垃圾內容、政治色情等敏感內容等等都需要被洗出去。

    3. 挖:不管是抓來的數據,還是自家的數據,如果不深入挖掘,那就和捧著金飯碗去要飯一樣,浪費了大好資源??梢哉f,很多推薦系統提升效果并不是用了更復雜的推薦算法,而是對內容的挖掘做得更加深入。

    4. 算:匹配用戶的興趣和物品的屬性,計算出更合理的相關性,這是推薦系統本身的使命,不僅僅是基于內容的推薦才要做的。

    那么,這四門功課到底如何分布在基于內容的推薦系統中呢?

    下面我和你一起來看看,基于內容推薦的框架

    一個典型基于內容推薦的框架圖是下面這樣的:

    簡要介紹一下這張圖的流程和基本元素。

    內容這一端:內容源經過內容分析,得到結構化的內容庫和內容模型,也就是物品畫像。

    用戶這一端:用戶看過推薦列表后,會產生用戶行為數據,結合物品畫像,經過用戶分析得到用戶畫像。

    以后對于那些沒有給用戶推薦過的新內容,經過相同的內容分析過程后就可以經過推薦算法匹配,計算得到新的推薦列表給用戶。如此周而復始,永不停息。

    短文本相似度算法_短文本分類算法優化_短文本情感分類數據集

    內容源

    在互聯網中,抓數據是一件可做不可說的事情,哪怕是市值幾千億的大廠,也有專門的小分隊抓數據,補充推薦系統每天的內容消耗。因為,只有當內容有多樣性了,一個推薦系統才有存在的合法性,所以大廠職工們抓數據也是為了保住自己的飯碗。爬蟲技術本身非常復雜、非常有學問,比推薦算法難多了,這里就不展開講了。

    不論是抓來的數據還是自家用戶產生的數據,都離不開清洗數據。由于各家都在相互借鑒來借鑒去,所以抓到重復的內容也是很有可能的,去重與識別垃圾內容、色情內容、政治敏感內容等都是必修課。

    內容分析和用戶分析

    基于內容的推薦,最重要的不是推薦算法,而是內容挖掘和分析。內容挖掘越深入,哪怕早期推薦算法僅僅是非常硬的規則,也能取得不俗的效果。舉個例子,如果推薦物品是短視頻,我們分幾種情況看:

    1. 如果短視頻本身沒有任何結構化信息,如果不挖掘內容,那么除了強推或者隨機小流量,沒有別的合理曝光邏輯了;

    2. 如果對視頻的文本描述,比如標題等能夠有內容分類,比如是娛樂類,那么對于喜歡娛樂的用戶來說就很合理;

    3. 如果能夠進一步分析文本的主題,那么對于類似主題感興趣的用戶就可能得到展示;

    4. 如果還能識別出內容中主角是吳亦凡,那就更精準鎖定一部分用戶了;

    5. 如果再對內容本身做到嵌入分析,那么潛藏的語義信息也全部抓住,更能表達內容了。

    舉這個例子是為了說明:隨著內容分析的深入,能抓住的用戶群體就越細致,推薦的轉化率就越高,用戶對產品的好感度也就增加了。上一篇中我列舉了文本數據——這也是內容數據最常見形式的分析方法。

    內容分析的產出有兩個:

    1. 結構化內容庫;

    2. 內容分析模型。

    結構化的內容庫,最重要的用途是結合用戶反饋行為去學習用戶畫像,具體的方法在上一篇中已經介紹了。容易被忽略的是第二個用途,在內容分析過程中得到的模型,比如說:

    1. 分類器模型;

    2. 主題模型;

    3. 實體識別模型;

    4. 嵌入模型。

    這些模型主要用在:當新的物品剛剛進入時,需要實時地被推薦出去,這時候對內容的實時分析,提取結構化內容,再于用戶畫像匹配。

    內容推薦算法

    對于基于內容的推薦系統,最簡單的推薦算法當然是計算相似性即可,用戶的畫像內容就表示為稀疏的向量,同時內容端也有對應的稀疏向量,兩者之間計算余弦相似度,根據相似度對推薦物品排序。

    你別嫌糙,如果你內容分析做得深入的話,通常效果還不錯,而且基于內容的推薦天然有一個優點:可解釋性非常強。

    如果再進一步,要更好地利用內容中的結構化信息,因為一個直觀的認識是:不同字段的重要性不同。

    比如說,一篇新聞,正文和標題中分析出一個人物名,評論中也分析出其他用戶討論提及的一些人物名,都可以用于推薦。直觀上新聞的正文和標題中更重要。

    那么,我們可以借鑒信息檢索中的相關性計算方法來做推薦匹配計算:BM25F 算法。常用的開源搜索引擎如 中已經實現了經典的 BM25F 算法,直接拿來使用即可。前面提到的兩種辦法雖然可以做到快速實現、快速上線,但實際上都不屬于機器學習方法,因為沒有考慮推薦的目標,而我們在之前的專欄中就專門強調了目標思維,那么,按照機器學習思路該怎么做呢?

    一種最典型的場景:提高某種行為的轉化率,如點擊、收藏、轉發等。那么標準的做法是:收集這類行為的日志數據,轉換成訓練樣本,訓練預估模型。

    每一條樣本由兩部分構成:一部分是特征,包含用戶端的畫像內容,物品端的結構化內容,可選的還有日志記錄時一些上下文場景信息,如時間、地理位置、設備等等,另一部分就是用戶行為,作為標注信息,包含“有反饋”和“無反饋”兩類。

    用這樣的樣本訓練一個二分類器,常用模型是邏輯回歸( )和梯度提升樹(GBDT)或者兩者的結合。在推薦匹配時,預估用戶行為發生的概率,按照概率排序。這樣更合理更科學,而且這一條路可以一直迭代優化下去。

網站首頁   |    關于我們   |    公司新聞   |    產品方案   |    用戶案例   |    售后服務   |    合作伙伴   |    人才招聘   |   

友情鏈接: 餐飲加盟

地址:北京市海淀區    電話:010-     郵箱:@126.com

備案號:冀ICP備2024067069號-3 北京科技有限公司版權所有