劉展
摘要:構建文章推薦系統(tǒng)需要把文章向量化,然后組建一個推薦矩陣,矩陣里的元數(shù)據(jù)(數(shù)值)會影響推薦效果,如何使文章推薦矩陣元數(shù)據(jù)更好地與用戶行為關聯(lián)起來,這里提出了基于TFIDF算法關聯(lián)到用戶行為的表示和更新機制,根據(jù)用戶行為的特點,給予不同的權重,最終會影響到元數(shù)據(jù)的取值,進而能量化用戶行為標簽的興趣值,另一方面也能產生更好的推薦效果。
關鍵詞:TFIDF算法;余弦相似度;文章推薦系統(tǒng);推薦矩陣;數(shù)據(jù)建模
中圖分類號: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 背景與意義
隨著移動互聯(lián)網的發(fā)展和智能手機的廣泛普及,越來越多的人選擇在智能手機端或者平板設備上閱讀,網絡中的資源數(shù)量增長非常迅猛,比如微博、微信公眾號、各種自媒體等,在海量資源用戶面前,用戶很難從中找到自己真正感興趣的內容,或者要耗費大量的時間和精力才能找到自己所需要的資源。
如何在眾多資源中,快速地找到我們真正感興趣的資源呢? 個性化推薦系統(tǒng)就是在這種背景下誕生的。個性化推薦系統(tǒng)是通過建立用戶與信息產品之間的二元關系,利用已有的選擇過程或相似性關系,挖掘每個用戶潛在感興趣的對象,進而進行個性化推薦。高效的推薦系統(tǒng)可以挖掘用戶潛在的消費傾向,為眾多的用戶個性化服務[1]。
個性化推薦系統(tǒng)目前已被廣泛應用于電子商務、廣告推送、電影推薦等包含海量信息并需要提供個性化服務的應用領域。因此,研究個性化推薦技術與系統(tǒng)具有非常重要的意義。
2 推薦系統(tǒng)的概念和分類
推薦系統(tǒng)的定義有不少,但被廣泛接受的推薦系統(tǒng)的概念和定義是Resnick 和Varian在1997[2]年給出的:“它是利用電子商務網站向客戶提供商品信息和建議,幫助用戶決定應該購買什么產品,模擬銷售人員幫助客戶完成購買過程”。
推薦算法(或叫推薦策略)是整個推薦系統(tǒng)中最核心和關鍵的部分,在很大程度上決定了推薦系統(tǒng)類型和性能的優(yōu)劣[3]。常見的推薦系統(tǒng)可以分為基于內容的推薦系統(tǒng)、基于協(xié)同過濾的推薦系統(tǒng)以及混合型推薦系統(tǒng)。
2.1 基于內容的推薦系統(tǒng)(Content-based Recommendation)
基于內容的推薦算法利用信息內容(如文本文檔)和用戶興趣的相似性來過濾信息[4]。根據(jù)物品或內容的數(shù)據(jù),發(fā)現(xiàn)物品或內容的相關性,然后基于用戶以前的喜好記錄推薦給用戶相似的物品。如圖1所示:
圖1是基于內容推薦的一種示例,電影推薦系統(tǒng)。通過比較電影內容的相似度進行推薦,電影的類型很大程度能代表用戶關注的興趣方向。這里簡單地描述了一下電影的類型,把類型轉換成元數(shù)據(jù),通過元數(shù)據(jù)計算電影間的相似度,因為電影一和電影三的類型都是關于“愛情”,用戶看了電影一而沒有看電影三,所以我們可以把電影三推薦給用戶,這也就是用戶在交互界面常見的 “您也可能喜歡...”。
2.2 基于協(xié)同過濾的推薦系統(tǒng)(Collaborative Filtering-based Recommendation)
協(xié)同過濾是一種基于一組興趣相同的用戶或項目進行的推薦,它根據(jù)鄰居用戶(與目標用戶興趣相似的用戶) 的偏好信息產生對目標用戶的推薦列表。而基于協(xié)同過濾推薦又分為以下三類:
2.2.1 基于用戶的協(xié)同過濾推薦(User-based Collaborative Filtering Recommendation)
基于用戶的協(xié)同過濾推薦算法是先尋找與目標用戶有相同喜好的鄰居,然后根據(jù)目標用戶的鄰居的喜好產生向目標用戶的進行推薦?;驹砭褪抢糜脩粼L問行為的相似性來互相推薦用戶可能感興趣的資源,如圖2所示:
圖2示意出基于用戶的協(xié)同過濾推薦機制的基本原理。用戶A喜歡物品一、物品三。用戶C喜歡物品一、物品三和物品四。用戶A 和用戶C的偏好是比較類似的,因為都喜歡物品一和物品三。同時用戶C還喜歡物品四,那么我們可以推斷用戶A可能也會喜歡物品四,因此可以將物品四推薦給用戶A。在電商網站常??梢钥吹筋愃啤百徺I了某產品的用戶,還購買了某某產品”的廣告語。
2.2.2 基于項目的協(xié)同過濾推薦(Item-based Collaborative Filtering Recommendation)
根據(jù)所有用戶對物品或者信息的評價,發(fā)現(xiàn)物品和物品之間的相似度,然后根據(jù)用戶的歷史偏好信息將類似的物品推薦給該用戶,如圖所示:
圖3示意出基于項目的協(xié)同過濾推薦機制的基本原理。用戶A喜歡了物品一和物品三,可以理解為因為它們兩者相似才會同時喜歡,而用戶C也喜歡物品一,卻沒有發(fā)現(xiàn)有物品三和它類似,所以把物品三推薦給用戶C。
2.2.3 基于模型的協(xié)同過濾推薦(Model-based Collaborative Filtering Recommendation)
基模型的協(xié)同過濾推薦就是基于樣本的用戶喜好信息,訓練一個推薦模型,然后根據(jù)實時的用戶喜好的信息進行預測推薦。
2.3 混合型推薦系統(tǒng)
混合型推薦系統(tǒng)就是把多種不同的推薦算法結合起來,利用不同算法的優(yōu)點而避免相關的缺點,提高推薦系統(tǒng)的性能和質量。
3 相關算法
3.1 TFIDF算法
TF-IDF(term frequency–inverse document frequency)算法是權重計算中經典的算法之一 ,如今其應用領域已從單純的權重計算拓展到特征選擇,領域詞典的構造,用戶興趣模板的構建等[5] 。 對該算法最通俗的理解就是:一個詞語在一篇文章中出現(xiàn)次數(shù)越多, 同時在所有文章中出現(xiàn)次數(shù)越少, 越能夠代表該文章。
3.2 余弦相似度
余弦相似度是計算相似度的一種方法,該方法首先將個體的指標數(shù)據(jù)映射到向量空間,然后通過測量兩個個體向量之間的內積空間夾角余弦值來度量它們之間的相似性。兩個個體向量夾角越接近0°,即夾角余弦值越大,說明兩個個體的相似度越高,而兩個個體夾角越接近180°,夾角余弦值越小,說明相似度越低。 如圖4所示,與向量B相比,向量A與向量C的相似度更高[6]。
4 基于TFIDF算法的建模方法
4.1中文分詞和關鍵詞提取
對文章進行分詞和關鍵詞提取,這里用到了jieba分詞,它能很好支持中文分詞、關鍵詞提取、詞性標等功能。提取關鍵詞后根據(jù)詞性標注對關鍵詞進行篩選,一般會剔除不必要的動詞。
4.2 對TFIDF算法的理解
對于整個文本庫,文本的數(shù)量和關鍵詞的數(shù)量都是事先確定好的,所以逆向文件頻率IDF是確定的,很顯然這個文本庫越大,越能反映這個詞的權重。在github開源項目有現(xiàn)成統(tǒng)計好的數(shù)據(jù)可以用,這些詞都是去掉停用詞的,其中jieba分詞也集成該部分數(shù)據(jù)。
所以求取TFIDF值,就是確定詞頻TF部分,它的值可看似一個概率,取值在[0,1],取值越大越反映該詞T在這個文章D出現(xiàn)的次數(shù)越多,可能影響越大,關鍵詞的提取也是利用了該特性,它是根據(jù)TFIDF的值從大到小排列,取值越大越能體現(xiàn)該詞T的關鍵性。
4.3 文章-關鍵詞矩陣
在文章推薦系統(tǒng)中,往往需要找出內容相似的文章,內容相似可作為推薦的一個很重要的維度。在與用戶的交互中表述為:“你可能也喜歡...”。為了做到這一點,可采用“文章-關鍵詞”推薦矩陣,如表1所示,D1、D2、...D3代表了不同的文章,T1、T2、...T5代表了所有文章出現(xiàn)的關鍵詞。如果關鍵詞T1在文章D1中并沒那么重要或者沒有出現(xiàn),那它的對應的值就是0,因為我們可以認為詞頻TF=0,根據(jù)公式可知它的TFIDF值也是[v1]。對于一篇文章,所出現(xiàn)的所有關鍵詞加和應該是1。也就是如果求與文章D2最為相似的5篇文章,可通過KNN算法即可得到,也可通過求余弦相似度值來從大到小的top5來確定。
4.4 用戶推薦矩陣
4.4.1 用戶行為數(shù)據(jù)源
現(xiàn)在移動端APP可以收集很多有用的用戶行為數(shù)據(jù),這些數(shù)據(jù)可以為運營決策,改善用戶體驗等起重要作用,這些用戶數(shù)據(jù)我們一般稱之為“埋點數(shù)據(jù)”。
4.4.2 用戶行為權重
在用戶閱讀行為數(shù)據(jù)中,對文章的收藏、評論、閱讀時長、轉發(fā)、點贊、點擊等這些行為,對于用戶而言可以認為是重要性或者興趣度不一樣,如表2,給出不同的權重得分,得分越高認為重要或者興趣越高,同理,如同表3,在用戶閱讀速度方面,結合用戶大數(shù)據(jù)分析,綜合給出一個閱讀速度的均值然后再定義其權重得分。如果一個用戶僅僅只是點擊了文章,然后再迅速關閉,前后花費時間不到1秒,我們一般可以認為這個行為的權重是很低的,甚至是0。
4.4.3 行為權重策略
權重得分應該會受時間影響,這點不難理解,用戶今天感興趣的文章可能因為今天已經閱讀,到了明天或者將來就不再那么感興趣,因此對于權重得分要引入時間衰減機制,如同表4,時間越長,曾經較高的權重得分項目,現(xiàn)在因為減去了較高的衰減分值,最終得到一個較低或者是0的權重得分。具體的衰減分值要結合大數(shù)據(jù)分析以及結合具體業(yè)務綜合給出。
4.4.4 建模表
通過累積用戶行為歷史,可計算出某個用戶不同關鍵詞(標簽)的得分,如同表5,該表是在實際應用中截取的表結構的一個片段,下面對字段簡單加以介紹。
l 主鍵:數(shù)據(jù)表的唯一索引。
l 設備ID: 是指用戶設備的標識,android,ios智能(手機)設備都會有自己唯一的ID,一般都是字符串形式,比如:34D5DEB9-8F84-4BE4-B565-7DC00E0314E0
在軟件開發(fā)中,這個字符串也是作用一個用戶的唯一標識。特殊的情況是一個用戶可能有多個設備(手機),在數(shù)據(jù)上要做好映射關系即可。
l 標簽權重:采用json格式表示數(shù)據(jù),key表示標簽指文章提取出來的關鍵詞,value表示權重也就是標簽后面對應的取值。
l 用戶向量:向量的長度是整個文章提取關鍵詞數(shù)量,與表1的列數(shù)是一樣的,同時關鍵詞的排列也是有順序的,向量里的每個值代表了該標簽的TFIDF值。
4.4.5 建模過程
用戶向量是根據(jù)用戶標簽權重計算出來的,比如以關鍵詞T1(標簽)為例它的具體計算方法:
首先拿到T1標簽權重值v1,再拿到該用戶下所有標簽的權重之和v,然后兩者相除v1/v得到的商,該商就是同詞頻TF等價的數(shù),因為它的意義和詞頻是等價的。該商與T1所對應的IDF值相乘得到它的TFIDF值,最終根據(jù)T1在向量中的排序位置放入TFIDF值。
在用戶的閱讀歷史可能有多篇文章,所以有多個標簽,根據(jù)上述方法產生和更新多個標簽的TFIDF值,進而更新該用戶向量所有值,除此之外還可以加上其他影響因素,比如時間衰減機制。
4.4.6 用戶推薦矩陣應用
在用戶推薦矩陣中,可以通過近鄰算法或者聚類算法,也可以通過余弦相似度等方法來選擇類似的用戶,這就是達到“閱讀了該文章的用戶還閱讀了某某文章”的效果,解決越推薦選擇面越窄的問。計算相似用戶可從人的特征,環(huán)境的特征,文章的特征三個維度去做權重評分。
5 結論
本方法結合了實際生產環(huán)境的應用,提出了一種文章推薦系統(tǒng)的數(shù)據(jù)建模方法,實現(xiàn)起來直接簡單,TFIDF算法也易于理解,數(shù)據(jù)來源容易獲取,有比較好的實際應用價值。
參考文獻:
[1] 高鳳麗,孫連山.個性化推薦系統(tǒng)概述[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] 王國霞,劉賀平.個性化推薦系統(tǒng)綜述[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.
【通聯(lián)編輯:唐一東】