劉展


摘要:構建文章推薦系統需要把文章向量化,然后組建一個推薦矩陣,矩陣里的元數據(數值)會影響推薦效果,如何使文章推薦矩陣元數據更好地與用戶行為關聯起來,這里提出了基于TFIDF算法關聯到用戶行為的表示和更新機制,根據用戶行為的特點,給予不同的權重,最終會影響到元數據的取值,進而能量化用戶行為標簽的興趣值,另一方面也能產生更好的推薦效果。
關鍵詞:TFIDF算法;余弦相似度;文章推薦系統;推薦矩陣;數據建模
中圖分類號:TP391 文獻標識碼:A
文章編號:1009-3044(2019)07-0017-04
Abstract: Static Building the article recommendation system needs to vectorize the article, and then form a recommendation matrix. The metadata (value) in the matrix will affect the recommendation effect. How to make the article recommendation matrix metadata better correlated with user behavior, here is based on TFIDF, The algorithm is associated with the representation and update mechanism of the user's behavior. According to the characteristics of the user's behavior, different weights are given, which ultimately affects the value of the metadata, thereby enlightening the interest value of the user's behavior tag, and on the other hand, it can produce better recommended effect.
Key words: TFIDF algorithm; cosine similarity; article recommendation system; recommendation matrix;data modeling
1 背景與意義
隨著移動互聯網的發展和智能手機的廣泛普及,越來越多的人選擇在智能手機端或者平板設備上閱讀,網絡中的資源數量增長非常迅猛,比如微博、微信公眾號、各種自媒體等,在海量資源用戶面前,用戶很難從中找到自己真正感興趣的內容,或者要耗費大量的時間和精力才能找到自己所需要的資源。
如何在眾多資源中,快速地找到我們真正感興趣的資源呢? 個性化推薦系統就是在這種背景下誕生的。個性化推薦系統是通過建立用戶與信息產品之間的二元關系,利用已有的選擇過程或相似性關系,挖掘每個用戶潛在感興趣的對象,進而進行個性化推薦。高效的推薦系統可以挖掘用戶潛在的消費傾向,為眾多的用戶個性化服務[1]。
個性化推薦系統目前已被廣泛應用于電子商務、廣告推送、電影推薦等包含海量信息并需要提供個性化服務的應用領域。因此,研究個性化推薦技術與系統具有非常重要的意義。
2 推薦系統的概念和分類
推薦系統的定義有不少,但被廣泛接受的推薦系統的概念和定義是Resnick 和Varian在1997[2]年給出的:“它是利用電子商務網站向客戶提供商品信息和建議,幫助用戶決定應該購買什么產品,模擬銷售人員幫助客戶完成購買過程”。
推薦算法(或叫推薦策略)是整個推薦系統中最核心和關鍵的部分,在很大程度上決定了推薦系統類型和性能的優劣[3]。常見的推薦系統可以分為基于內容的推薦系統、基于協同過濾的推薦系統以及混合型推薦系統。
2.1 基于內容的推薦系統(Content-based Recommendation)
基于內容的推薦算法利用信息內容(如文本文檔)和用戶興趣的相似性來過濾信息[4]。根據物品或內容的數據,發現物品或內容的相關性,然后基于用戶以前的喜好記錄推薦給用戶相似的物品。如圖1所示:
圖1是基于內容推薦的一種示例,電影推薦系統。通過比較電影內容的相似度進行推薦,電影的類型很大程度能代表用戶關注的興趣方向。這里簡單地描述了一下電影的類型,把類型轉換成元數據,通過元數據計算電影間的相似度,因為電影一和電影三的類型都是關于“愛情”,用戶看了電影一而沒有看電影三,所以我們可以把電影三推薦給用戶,這也就是用戶在交互界面常見的 “您也可能喜歡...”。
2.2 基于協同過濾的推薦系統(Collaborative Filtering-based Recommendation)
協同過濾是一種基于一組興趣相同的用戶或項目進行的推薦,它根據鄰居用戶(與目標用戶興趣相似的用戶) 的偏好信息產生對目標用戶的推薦列表。而基于協同過濾推薦又分為以下三類:
2.2.1 基于用戶的協同過濾推薦(User-based Collaborative Filtering Recommendation)
基于用戶的協同過濾推薦算法是先尋找與目標用戶有相同喜好的鄰居,然后根據目標用戶的鄰居的喜好產生向目標用戶的進行推薦?;驹砭褪抢糜脩粼L問行為的相似性來互相推薦用戶可能感興趣的資源,如圖2所示:
圖2示意出基于用戶的協同過濾推薦機制的基本原理。用戶A喜歡物品一、物品三。用戶C喜歡物品一、物品三和物品四。用戶A 和用戶C的偏好是比較類似的,因為都喜歡物品一和物品三。同時用戶C還喜歡物品四,那么我們可以推斷用戶A可能也會喜歡物品四,因此可以將物品四推薦給用戶A。在電商網站常??梢钥吹筋愃啤百徺I了某產品的用戶,還購買了某某產品”的廣告語。
2.2.2 基于項目的協同過濾推薦(Item-based Collaborative Filtering Recommendation)
根據所有用戶對物品或者信息的評價,發現物品和物品之間的相似度,然后根據用戶的歷史偏好信息將類似的物品推薦給該用戶,如圖所示:
圖3示意出基于項目的協同過濾推薦機制的基本原理。用戶A喜歡了物品一和物品三,可以理解為因為它們兩者相似才會同時喜歡,而用戶C也喜歡物品一,卻沒有發現有物品三和它類似,所以把物品三推薦給用戶C。
2.2.3 基于模型的協同過濾推薦(Model-based Collaborative Filtering Recommendation)
基模型的協同過濾推薦就是基于樣本的用戶喜好信息,訓練一個推薦模型,然后根據實時的用戶喜好的信息進行預測推薦。
2.3 混合型推薦系統
混合型推薦系統就是把多種不同的推薦算法結合起來,利用不同算法的優點而避免相關的缺點,提高推薦系統的性能和質量。
3 相關算法
3.1 TFIDF算法
TF-IDF(term frequency–inverse document frequency)算法是權重計算中經典的算法之一 ,如今其應用領域已從單純的權重計算拓展到特征選擇,領域詞典的構造,用戶興趣模板的構建等[5] 。 對該算法最通俗的理解就是:一個詞語在一篇文章中出現次數越多, 同時在所有文章中出現次數越少, 越能夠代表該文章。
3.2 余弦相似度
余弦相似度是計算相似度的一種方法,該方法首先將個體的指標數據映射到向量空間,然后通過測量兩個個體向量之間的內積空間夾角余弦值來度量它們之間的相似性。兩個個體向量夾角越接近0°,即夾角余弦值越大,說明兩個個體的相似度越高,而兩個個體夾角越接近180°,夾角余弦值越小,說明相似度越低。 如圖4所示,與向量B相比,向量A與向量C的相似度更高[6]。
4 基于TFIDF算法的建模方法
4.1中文分詞和關鍵詞提取
對文章進行分詞和關鍵詞提取,這里用到了jieba分詞,它能很好支持中文分詞、關鍵詞提取、詞性標等功能。提取關鍵詞后根據詞性標注對關鍵詞進行篩選,一般會剔除不必要的動詞。
4.2 對TFIDF算法的理解
對于整個文本庫,文本的數量和關鍵詞的數量都是事先確定好的,所以逆向文件頻率IDF是確定的,很顯然這個文本庫越大,越能反映這個詞的權重。在github開源項目有現成統計好的數據可以用,這些詞都是去掉停用詞的,其中jieba分詞也集成該部分數據。
所以求取TFIDF值,就是確定詞頻TF部分,它的值可看似一個概率,取值在[0,1],取值越大越反映該詞T在這個文章D出現的次數越多,可能影響越大,關鍵詞的提取也是利用了該特性,它是根據TFIDF的值從大到小排列,取值越大越能體現該詞T的關鍵性。
4.3 文章-關鍵詞矩陣
在文章推薦系統中,往往需要找出內容相似的文章,內容相似可作為推薦的一個很重要的維度。在與用戶的交互中表述為:“你可能也喜歡...”。為了做到這一點,可采用“文章-關鍵詞”推薦矩陣,如表1所示,D1、D2、...D3代表了不同的文章,T1、T2、...T5代表了所有文章出現的關鍵詞。如果關鍵詞T1在文章D1中并沒那么重要或者沒有出現,那它的對應的值就是0,因為我們可以認為詞頻TF=0,根據公式可知它的TFIDF值也是[v1]。對于一篇文章,所出現的所有關鍵詞加和應該是1。也就是如果求與文章D2最為相似的5篇文章,可通過KNN算法即可得到,也可通過求余弦相似度值來從大到小的top5來確定。
4.4 用戶推薦矩陣
4.4.1 用戶行為數據源
現在移動端APP可以收集很多有用的用戶行為數據,這些數據可以為運營決策,改善用戶體驗等起重要作用,這些用戶數據我們一般稱之為“埋點數據”。
4.4.2 用戶行為權重
在用戶閱讀行為數據中,對文章的收藏、評論、閱讀時長、轉發、點贊、點擊等這些行為,對于用戶而言可以認為是重要性或者興趣度不一樣,如表2,給出不同的權重得分,得分越高認為重要或者興趣越高,同理,如同表3,在用戶閱讀速度方面,結合用戶大數據分析,綜合給出一個閱讀速度的均值然后再定義其權重得分。如果一個用戶僅僅只是點擊了文章,然后再迅速關閉,前后花費時間不到1秒,我們一般可以認為這個行為的權重是很低的,甚至是0。
4.4.3 行為權重策略
權重得分應該會受時間影響,這點不難理解,用戶今天感興趣的文章可能因為今天已經閱讀,到了明天或者將來就不再那么感興趣,因此對于權重得分要引入時間衰減機制,如同表4,時間越長,曾經較高的權重得分項目,現在因為減去了較高的衰減分值,最終得到一個較低或者是0的權重得分。具體的衰減分值要結合大數據分析以及結合具體業務綜合給出。
4.4.4 建模表
通過累積用戶行為歷史,可計算出某個用戶不同關鍵詞(標簽)的得分,如同表5,該表是在實際應用中截取的表結構的一個片段,下面對字段簡單加以介紹。
l 主鍵:數據表的唯一索引。
l 設備ID: 是指用戶設備的標識,android,ios智能(手機)設備都會有自己唯一的ID,一般都是字符串形式,比如:34D5DEB9-8F84-4BE4-B565-7DC00E0314E0
在軟件開發中,這個字符串也是作用一個用戶的唯一標識。特殊的情況是一個用戶可能有多個設備(手機),在數據上要做好映射關系即可。
l 標簽權重:采用json格式表示數據,key表示標簽指文章提取出來的關鍵詞,value表示權重也就是標簽后面對應的取值。
l 用戶向量:向量的長度是整個文章提取關鍵詞數量,與表1的列數是一樣的,同時關鍵詞的排列也是有順序的,向量里的每個值代表了該標簽的TFIDF值。
4.4.5 建模過程
用戶向量是根據用戶標簽權重計算出來的,比如以關鍵詞T1(標簽)為例它的具體計算方法:
首先拿到T1標簽權重值v1,再拿到該用戶下所有標簽的權重之和v,然后兩者相除v1/v得到的商,該商就是同詞頻TF等價的數,因為它的意義和詞頻是等價的。該商與T1所對應的IDF值相乘得到它的TFIDF值,最終根據T1在向量中的排序位置放入TFIDF值。
在用戶的閱讀歷史可能有多篇文章,所以有多個標簽,根據上述方法產生和更新多個標簽的TFIDF值,進而更新該用戶向量所有值,除此之外還可以加上其他影響因素,比如時間衰減機制。
4.4.6 用戶推薦矩陣應用
在用戶推薦矩陣中,可以通過近鄰算法或者聚類算法,也可以通過余弦相似度等方法來選擇類似的用戶,這就是達到“閱讀了該文章的用戶還閱讀了某某文章”的效果,解決越推薦選擇面越窄的問。計算相似用戶可從人的特征,環境的特征,文章的特征三個維度去做權重評分。
5 結論
本方法結合了實際生產環境的應用,提出了一種文章推薦系統的數據建模方法,實現起來直接簡單,TFIDF算法也易于理解,數據來源容易獲取,有比較好的實際應用價值。
參考文獻:
[1] 高鳳麗,孫連山.個性化推薦系統概述[J].技術與市場,2015, 22(2):78-79.
[2] Resinick P,Varian H R.Recommender systems[J].Communications of the ACM,1997,40(3):56-58.
[3] 王國霞,劉賀平.個性化推薦系統綜述[J].計算機工程與應用,201248(7):66-76.
[4] GB/T 7714曹小娜.一種適用于禮品推薦領域的基于內容推薦算法[J].中國科技論文在線,2010.
[5] 施聰鶯,徐朝軍,楊曉江.TFIDF算法研究綜述[J].計算機應用,2009,29(b06):167-170.
[6] 陳大力,沈巖濤,謝檳竹,等.基于余弦相似度模型的最佳教練遴選算法[J].東北大學學報(自然科學版), 2014, 35(12):1697-1700.
【通聯編輯:唐一東】