導航:首頁 > 電影題材 > 用戶電影喜好行為的分析系統

用戶電影喜好行為的分析系統

發布時間:2023-01-14 22:43:04

1. 根據用戶最近的瀏覽習慣和喜好,給用戶推薦相關信息,即「推薦系統」,試論述其基本原理

根據用戶習慣推薦信息,首先你需要由相關的演算法,能夠分析用戶日常瀏覽搜索閱讀行為和關鍵詞。然後進行信息匹配和對比,根據相應推薦頻率、推薦形式推薦方法,給用戶定時定點發送消息。這就是推薦系統的基本原理。

2. 用戶用電行為分析系統意義

用戶用電行為分析系統意義是電力技術領域。本發明公開了一種用戶用電行為分析系統,屬於電力技術領域。所述用戶用電行為分析系統包括監測設備、智能電表和伺服器,其中:所述監測設備獲取第一用電信息,所述第一用電信息至少包括入戶線路的電壓、電流、功率以及諧波。所述監測設備將所述第一用電信息發送至所述智能電表。所述智能電表將所述第一用電信息發送至所述伺服器:所述伺服器根據所述第一用電信息確定用戶用電行為。

3. 用戶行為分析系統建立所需步驟和所需軟體

Web日誌挖掘分析的方法

日誌文件的格式及其包含的信息
①2006-10-17 00:00:00②202.200.44.43 ③218.77.130.24 80 ④GET ⑤/favicon.ico
⑥Mozilla/5.0+(Windows;+U;+Windows+NT+5.1;+zh-CN;+rv:1.8.0.3)+Gecko/20060426
+Firefox/1.5.0.3。
①訪問時間;②用戶IP地址;③訪問的URL,埠;④請求方法(「GET」、「POST」等);
⑤訪問模式;⑥agent,即用戶使用的操作系統類型和瀏覽器軟體。

一、日誌的簡單分析
1、注意那些被頻繁訪問的資源
2、注意那些你網站上不存在資源的請求。常見的掃描式攻擊還包括傳遞惡意參數等:
3、觀察搜索引擎蜘蛛的來訪情況
4、觀察訪客行為
應敵之策:
1、封殺某個IP
2、封殺某個瀏覽器類型(Agent)
3、封殺某個來源(Referer)
4、防盜鏈
5、文件重命名
作用:
1.對訪問時間進行統計,可以得到伺服器在某些時間段的訪問情況。
2.對IP進行統計,可以得到用戶的分布情況。
3.對請求URL的統計,可以得到網站頁面關注情況。
4.對錯誤請求的統計,可以更正有問題的頁面。

二、Web挖掘
根據所挖掘的Web 數據的類型,可以將Web 數據挖掘分為以下三類:Web 內容挖掘(Web Content Mining)、Web 結構挖掘(Web Structure Mining)、Web 使用挖掘(Web Usage Mining)(也稱為Web日誌挖掘)。
①Web內容挖掘。Web內容挖掘是指從文檔的內容中提取知識。Web內容挖掘又分為文本挖掘和多媒體挖掘。目前多媒體數據的挖掘研究還處於探索階段,Web文本挖掘已經有了比較實用的功能。Web文本挖掘可以對Web上大量文檔集合的內容進行總結、分類、聚類、關聯分析,以及利用Web文檔進行趨勢預測等。Web文檔中的標記,例如<Title>和<Heading>等蘊含了額外的信息,可以利用這些信息來加強Web文本挖掘的作用。
②Web結構挖掘。Web結構挖掘是從Web的組織結構和鏈接關系中推導知識。它不僅僅局限於文檔之間的超鏈接結構,還包括文檔內部的結構。文檔中的URL目錄路徑的結構等。Web結構挖掘能夠利用網頁間的超鏈接信息對搜索引擎的檢索結果進行相關度排序,尋找個人主頁和相似網頁,提高Web搜索蜘蛛在網上的爬行效率,沿著超鏈接優先爬行。Web結構挖掘還可以用於對Web頁進行分類、預測用戶的Web鏈接使用及Web鏈接屬性的可視化。對各個商業搜索引擎索引用的頁數量進行統計分析等。
③Web使用記錄挖掘。Web使用記錄挖掘是指從Web的使用記錄中提取感興趣的模式,目前Web使用記錄挖掘方面的研究較多,WWW中的每個伺服器都保留了訪問日誌,記錄了關於用戶訪問和交互的信息,可以通過分析和研究Web日誌記錄中的規律,來識別網站的潛在用戶;可以用基於擴展有向樹模型來識別用戶瀏覽序列模式,從而進行Web日誌挖掘;可以根據用戶訪問的Web記錄挖掘用戶的興趣關聯規則,存放在興趣關聯知識庫中,作為對用戶行為進行預測的依據,從而為用戶預取一些Web頁面,加快用戶獲取頁面的速度,分析這些數據還可以幫助理解用戶的行為,從而改進站點的結構,或為用戶提供個性化的服務。
通過對Web伺服器日誌中大量的用戶訪問記錄深入分析,發現用戶的訪問模式和興趣愛好等有趣、新穎、潛在有用的以及可理解的未知信息和知識,用於分析站點的使用情況,從而輔助管理和支持決策。當前,web日誌挖掘主要被用於個性化服務與定製、改進系統性能和結構、站點修改、商業智能以及web特徵描述等諸多領域。

三、Web日誌挖掘的方法
(一)首先,進行數據的預處理。
從學習者的訪問日誌中得到的原始日誌記錄並不適於挖掘,必須進行適當的處理才能進行挖掘。因此,需要通過日誌清理,去除無用的記錄;對於某些記錄,我們還需要通過站點結構信息,把URL路徑補充成完整的訪問序列;然後劃分學習者,並把學習者的會話劃分成多個事務。
(二)其次,進行模式發現
一旦學習者會話和事務識別完成,就可以採用下面的技術進行模式發現。模式發現, 是對預處理後的數據用數據挖掘演算法來分析數據。分有統計、分類、聚類、關等多種方法。
① 路徑分析。它可以被用於判定在一個站點中最頻繁訪問的路徑,還有一些其它的有關路徑的信息通過路徑分析可以得出。路徑分析可以用來確定網站上的頻繁訪問路徑, 從而調整和優化網站結構, 使得用戶訪問所需網頁更加簡單快捷, 還可以根據用戶典型的瀏覽模式用於智能推薦和有針對性的電子商務活動。例如:70% 的學習者在訪問/ E-Business /M2時,是從/EB開始,經過/ E-Business /SimpleDescription,/ E-Business /M1;65%的學習者在瀏覽4個或更少的頁面內容後就離開了。利用這些信息就可以改進站點的設計結構。
② 關聯規則。 使用關聯規則發現方法,可以從Web的訪問事務中找到的相關性。關聯規則是尋找在同一個事件中出現的不同項的相關性,用數學模型來描述關聯規則發現的問題:x=>y的蘊含式,其中x,y為屬性——值對集(或稱為項目集),且X∩Y空集。在資料庫中若S%的包含屬性——值對集X的事務也包含屬性——值集Y,則關聯規則X=>Y的置信度為C%。
③ 序列模式。在時間戳有序的事務集中,序列模式的發現就是指那些如「一些項跟隨另一個項」這樣的內部事務模式。它能發現資料庫中如「在某一段時間內,客戶購買商品A,接著會購買商品B,爾後又購買商品C,即序列A→B→C出現的頻率高」之類的信息。序列模式描述的問題是:在給定的交易序列資料庫中,每個序列按照交易的時間排列的一組交易集,挖掘序列函數作用是返回該資料庫中高頻率出現有序列。
④ 分類分析。發現分類規則可以給出識別一個特殊群體的公共屬性的描述,這種描述可以用於分類學習者。分類包括的挖掘技術將找出定義了一個項或事件是否屬於數據中某特定子集或類的規則。該類技術是最廣泛應用於各類業務問題的一類挖掘技術。分類演算法最知名的是決策樹方法,此外還有神經元網路、Bayesian分類等。例如:在/ E-Business /M4學習過的學習者中有40%是20左右的女大學生。
⑤聚類分析。可以從Web訪問信息數據中聚類出具有相似特性的學習者。在Web事務日誌中,聚類學習者信息或數據項能夠便於開發和設計未來的教學模式和學習群體。聚類是將數據集劃分為多個類,使得在同一類中的數據之間有較高的相似度,而在不同類中的數據差別盡可能大。在聚類技術中,沒有預先定義好的類別和訓練樣本存在,所有記錄都根據彼此相似程度來加以歸類。主要演算法有k—means、DBSCAN等。聚類分析是把具有相似特徵的用戶或數據項歸類,在網站管理中通過聚類具有相似瀏覽行為的用戶。基於模糊理論的Web頁面聚類演算法與客戶群體聚類演算法的模糊聚類定義相同,客戶訪問情況可用URL(Uj)表示。有Suj={(Ci,fSuj(Ci))|Ci∈C},其中fSuj(Ci)→[0,1]是客戶Ci和URL(Uj)間的關聯度:式中m為客戶的數量,hits(Ci)表示客戶Ci訪問URL(Uj)的次數。利用Suj和模糊理論中的相似度度量Sfij定義建立模糊相似矩陣,再根據相似類[Xi]R的定義構造相似類,合並相似類中的公共元素得到的等價類即為相關Web頁面。
⑥統計。統計方法是從Web 站點中抽取知識的最常用方法, 它通過分析會話文件, 對瀏覽時間、瀏覽路徑等進行頻度、平均值等統計分析。雖然缺乏深度, 但仍可用於改進網站結構, 增強系統安全性, 提高網站訪問的效率等。
⑦協同過濾。協同過濾技術採用最近鄰技術,利用客戶的歷史、喜好信息計算用戶之間的距離,目標客戶對特點商品的喜好程度由最近鄰居對商品的評價的加權平均值來計算。
(三)最後,進行模式分析。
模式分析。基於以上的所有過程,對原始數據進行進一步分析,找出用戶的瀏覽模式規律,即用戶的興趣愛好及習慣,並使其可視化,為網頁的規劃及網站建設的決策提供具體理論依據。其主要方法有:採用SQL查詢語句進行分析;將數據導入多維數據立方體中,用OLAP工具進行分析並給出可視化的結果輸出。(分類模式挖掘、聚類模式挖掘、時間序列模式挖掘、序列模式挖掘、關聯規則等)

四、關聯規則
(一)關聯規則
顧名思義,關聯規則(association rule)挖掘技術用於於發現資料庫中屬性之間的有趣聯系。一般使用支持度(support)和置信度(confidence)兩個參數來描述關聯規則的屬性。
1.支持度。規則 在資料庫 中的支持度 是交易集中同時包含 , 的事務數與所有事務數之比,記為 。支持度描述了 , 這兩個項集在所有事務中同時出現的概率。
2.置信度。規則 在事務集中的置信度(confidence)是指同時包含 , 的事務數與包含 的事務數之比,它用來衡量關聯規則的可信程度。記為

規則 A Þ C:支持度= support({A}È{C}) = 50%,置信度= support({A}È{C})/support({A}) = 66.6%

(二)Apriori方法簡介
Apriori演算法最先是由Agrawal等人於1993年提出的,它的基本思想是:首先找出所有具有超出最小支持度的支持度項集,用頻繁的(k—1)-項集生成候選的頻繁k-項集;其次利用大項集產生所需的規則;任何頻繁項集的所有子集一定是頻繁項集是其核心。
Apriori演算法需要兩個步驟:第一個是生成條目集;第二個是使用生成的條目集創建一組關聯規則。當我們把最小置信度設為85%,通過關聯規則的形成以及對應置信度的計算,我們可以從中得到以下有用的信息:
1.置信度大於最小置信度時:我們可以這樣認為,用戶群體在瀏覽相關網頁時,所呈列的鏈接之間是有很大關聯的,他們是用戶群的共同愛好,通過網頁布局的調整,從某種意義上,可以帶來更高的點擊率及潛在客戶;
2.置信度小於最小置信度時:我們可以這樣認為,用戶群體對所呈列鏈接之間沒太多的關聯,亦或關聯規則中的鏈接在爭奪用戶。

五、網站中Web日誌挖掘內容
(1)網站的概要統計。網站的概要統計包括分析覆蓋的時間、總的頁面數、訪問數、會話數、惟一訪問者、以及平均訪問、最高訪問、上周訪問、昨日訪問等結果集。
(2)內容訪問分析。內容訪問分析包括最多及最少被訪問的頁面、最多訪問路徑、最多訪問的新聞、最高訪問的時間等。
(3)客戶信息分析。客戶信息分析包括訪問者的來源省份統計、訪問者使用的瀏覽器及操作系統分析、訪問來自的頁面或者網站、來自的IP地址以及訪問者使用的搜索引擎。
(4)訪問者活動周期行為分析。訪問者活動周期行為分析包括一周7天的訪問行為、一天24小時的訪問行為、每周的最多的訪問日、每天的最多訪問時段等。
(5)主要訪問錯誤分析。主要訪問錯誤分析包括服務端錯誤、頁面找不到錯誤等。
(6)網站欄目分析。網站欄目分析包括定製的頻道和欄目設定,統計出各個欄目的訪問情況,並進行分析。
(7)商務網站擴展分析。商務網站擴展分析是專門針對專題或多媒體文件或下載等內容的訪問分析。
(8)有4個方向可以選擇:①對用戶點擊行為的追蹤,click stream研究;②對網頁之間的關聯規則的研究;③對網站中各個頻道的瀏覽模式的研究;④根據用戶瀏覽行為,對用戶進行聚類,細分研究;(如果你能夠結合現有的互聯網產品和應用提出一些自己的建議和意見,那就更有價值了。)
(9)發現用戶訪問模式。通過分析和探究Web日誌記錄中的規律,可以識別電子商務的潛在客戶,提高對最終用戶的服務質量,並改進Web伺服器系統的性能。
(10)反競爭情報活動。反競爭情報是企業競爭情報活動的重要組成部分。

六、相關軟體及演算法
(一)相關軟體:
1.數據挖掘的專用軟體wake。
2.用OLAP工具
3.已經有部分公司開發出了商用的網站用戶訪問分析系統,如WebTrends公司的CommerceTrends 3.0,它能夠讓電子商務網站更好地理解其網站訪問者的行為,幫助網站採取一些行動來將這些訪問者變為顧客。CommerceTrends主要由3部分組成:Report Generation Server、Campain Analyzer和Webhouse Builder。
4.Accrue公司的Accrue Insight,它是一個綜合性的Web分析工具,它能夠對網站的運行狀況有個深入、細致和准確的分析,通過分析顧客的行為模式,幫助網站採取措施來提高顧客對於網站的忠誠度,從而建立長期的顧客關系。
(二)相關演算法:
1.運用各種演算法進行數據挖掘:GSP演算法, Prefixspana演算法,
2.關聯規則分析:Apriori、FP-growth演算法等。
3.Apriori演算法及其變種演算法
4.基於資料庫投影的序列模式生長技術(database project based sequential pattern growth)
5. Wake演算法、MLC++等
6. PageRank演算法和HITS演算法利用Web頁面間的超鏈接信息計算「權威型」(Authorities)網頁和「目錄型」(Hubs)網頁的權值。Web結構挖掘通常需要整個Web的全局數據,因此在個性化搜索引擎或主題搜索引擎研究領域得到了廣泛的應用。
7.參考檢索引擎的挖掘演算法,比如Apache的lucene等。

4. 簡書用戶畫像 之 如何挖掘用戶的電影喜好

我在 《爬取百萬頁面 分析用戶畫像》 中分析了用戶的書籍喜好,這里繼續嘗試通過影評文章的抓取、內容清洗、影評句子提取,建立機器學習情緒預測模型,挖掘分析用戶對流行電影的喜好。

涉及的NLP(自然語言處理)知識點:

涉及的ML(機器學習)知識點:

電影的拍攝成本高、票價也不低,消費者投入的關注度和觀看成本高(最終的投入成本是包括注意力投入、金錢投入、時間投入和感情投入)。

簡單算下觀看一部電影的成本(步驟):先看下預告內容,做下同期上映電影的比較,覺得導演、演員陣容都不錯,下定決心要看了,跟男/女友/老婆 /老公/基友/閨密做推薦,推薦成功後去選座買票,觀影當天說不定還得先吃個飯,飯後乖乖的在影院呆上90分鍾(關鍵時刻還得憋尿),觀影結束後指不定還得來個夜宵、開個房間探討下人生什麼的。。。

讀一本書的成本(步驟):1.打開書/電子閱讀器/手機;2. 讀!

這樣對比看一部電影比讀一本書的投入成本高多了!

因此觀眾給出的反饋自然也比書籍會強烈一些,特別是滿懷期待看完卻發現是一部爛片,有種上當受騙的感覺。

因此對電影光是通過詞頻作為喜好度是不夠的,用戶可能反復的在罵呢。

所以需要引入多一個分析的因子:情緒。用戶提及某個電影時的情緒是怎麼樣的,是積極愉悅、還是負面憤怒,加上這個才能有效判定用戶對電影或者某個事物的喜好。

在豆瓣上,用戶的評分就是最直接的情緒數值:5力薦,4推薦,3還行,2較差,1很差。
但在這類寫作平台上,發布文章時是沒有一個選項來填寫分數,也沒提供選擇心情的選項。

「所言即其所思」,這是普遍人性。每個用戶寫下的文字表達想法,在字里行間都會不經意的使用一些情緒用詞來表達,這些便是我可以獲取的「原始數據」。

精準推薦!用戶談論得多的東西未必是TA所喜愛的,也許是TA痛恨的(比如說前任)。如果用戶在自己大力差評某部電影的文章底部看到另一部相似爛片的推薦,推薦文案還寫著「親,我猜你還喜歡看這些」,估計這用戶會有種吃了蒼蠅剛吐出來發現迎面又飛來幾只的感覺。

通過用戶在討論某事物時上下文的情緒分析,來判斷對該事物的喜惡,將預測結果加入對事物的打分計算中,最後得出一個可量化、可計算的分數值,便是一個精準推薦系統的需要解決的問題。

理論上只需要一句話:要識別出文章中提及的電影,以及作者對該電影的評論,是好評還是差評,作為文章作者對該電影的喜惡,並根據評論的情緒強烈程度轉化為喜惡程度即可。

那實際上,就要解決以下問題:

下面逐一細說。

我採集了上幾個比較受歡迎的電影專題以及一個大V帳號文章(數據截止至採集數據時):

但由於對專題頁面加了訪問限制,每個專題只能訪問到最新的200個列表頁面,因而每個專題可獲取2~3000篇文章,以此作為抽樣數據樣本。

要分析對電影的評價,首先就要獲取到文章中提到電影名稱有哪些,最簡單的匹配規則便是提取書名號 《》 內的內容。

而實際獲取到的電影名稱真可謂「臟亂差」,有電影名、書籍名、文章名等,有些電影名稱會用縮寫引用(如《變1》、《復聯》、《生化危機4/5/6》),或者中英文混合在一起(如《機器人總動員(wall-e)》),甚至還有錯漏別字(如《那些年,我們一起追過的女孩》,多了個「過」字),以及包含中英文特殊標點空白符號等,例如:

因此需要進行一輪「數據大清洗」,我使用如下清洗策略:

其中「電影專用詞典」,是通過採集了 「貓眼 影片總票房排行榜」 2000~2017年間上榜的所有電影,約有3000+部,如圖:

再根據文章中所收集到的電影名稱的候選文本,抓取「豆瓣網」的官方電影名字(遭遇了豆瓣業內聞名的反爬策略就不多說了),合並去重後約有8400多部。看一眼才發現好多電影連聽都沒聽過,有些電影名稱還挺有趣,以後有時間還可以做下電影名稱的分析。

為了解決錯別字,我通過文本相似性演算法,在電影專用詞典里找出與之最相似名稱。

知名的相似演算法有不少,如:

經過簡單比較,我選擇了其中表現最好的 jaro_winkler_distance

運用到文章內容上,可得到相似電影名稱,感覺效果還可以:

構建一個Pipeline用於提取頁面中電影名稱,對單個頁面測試效果如下:

運用到所有頁面上:

至此完成了電影名稱的提取、清洗,得出每篇文章提及的電影名稱,如圖:

判斷一篇文章的情緒,最簡單的做法是通過提取所有情緒詞來統計下詞頻及其權重可得到一個粗糙的結果,但這樣的結果對「影評」類文章不是很准確。

根據觀察,一篇電影評論文章中,往往會有大段的電影情節描述,然後夾雜一兩句評論。而有些電影本身劇情就是比較負面、陰暗的(如災難片類的),但影片本身質量很高(如《釜山行》,豆瓣評分8.2),如果文章內容包含大量的劇情描述,那麼得到關鍵詞會偏向於負面情緒,並不能用於表達出作者對電影的喜好情緒。

因此我使用了這樣的提取策略:

評論句子提取的結果示例如下:

這樣的策略對有些內容不是很適用,例如這樣的標題:《同樣是豆瓣9.2分,它或許比《摔跤吧!爸爸》更深》,這是典型的「借勢營銷」型文案,文章內容中推介的是另外一部韓國電影《熔爐》,而時下《摔跤吧!爸爸》正熱,標題中帶上這個會更吸引用戶點擊。

另外一個思路是對文章進行摘要提取,然後對摘要進行情緒識別。而對於文章的主題提取,可以使用在ML演算法中的用於解決 主題模型 問題的演算法(如LDA),但不確定是否適合影評這種混合了大量劇情描述的文章內容。

得到相關評論文本後,便可對文本進行分詞及情緒識別,這里有兩種做法,一是使用帶有情緒情感度的專業詞典,配合專有演算法;另外一種是使用機器學習演算法。

一開始我使用了大連理工大學的《大連理工情感詞彙本體庫》,是目前最權威的中文情緒詞典,共含有情感詞共計27466個,包含了詞語的詞性種類、情感類別、情感強度及極性等信息,例如:

中文情感詞彙本體的情感分類體系是在國外比較有影響的Ekman的6大類情感分類體系的基礎上構建的。在Ekman的基礎上,詞彙本體加入情感類別「好」對褒義情感進行了更細致的劃分。最終詞彙本體中的情感共分為7大類21小類,如圖:

把情感詞典加入分詞詞典,對候選每個句子進行分詞,得出情感片語,並累加每個情感詞的強度值作為句子的情感值。

但經過測試後,發現預測效果並不理想,究其原因發現是情感詞典中命中的詞語太少,在句子中得不到相關詞語,也就無法判斷情感極性和強度。

使用情感詞典的測試結果:

而專業詞典的擴展需要專業領域知識,擴展起來很困難,我目前沒找到更新的專業詞典,國內這塊的資料相當匱乏,而國外有個知名的SentiWordNet庫,中文NLP研究的難度系數可想而知。

鑒於情感詞典的資源限制,決定嘗試使用機器學習來對文本做正、負面情緒預測。

1). 構建分詞詞典:

分詞需要構建專用領域的詞典,這樣得到的分詞結果才會更精確。

因為只需要有正負情感類別、不需要有情感強度及極性等信息,我使用了網路上公開的一些情感詞典,:

合並、清洗和去重後,最終構建出了 14000+ 個詞的積極情緒詞典, 18000+ 個詞的消極情緒詞典。

積極詞典:

消極詞典:

2). 准備訓練語料

從網上搜集到幾個帶有積極、消極的標注的評論語料數據集,分別包含了書籍、DVD、音樂、購物領域的各有4000條評論,如下圖:

可惜沒找到中文影評相關的語料,但找到 國外英文的影評語料 ,對,英文資料很豐富。。。

3). 訓練模型

由於是文本型特徵,分類演算法上選擇了 樸素貝葉斯 ,把數據分為2份,一半訓練,另一半做測試。

使用 jieba 分詞工具,對文本進行分詞得到候選片語,把得到的片語作為特徵輸入來訓練情緒預測模型。

訓練後的模型測試結果如下:

訓練後的模型在書籍、音樂、影碟及購物評論的語料上都有不錯的效果。

在提取出的影評短句上測試:

又是「無聊」、「又俗又傻」而一個「但」字就反轉了情緒,真是難為分類器了:

經過反復對比實驗,發現語料的質量決定了模型的精度,而語料的擴展對比擴展專業詞典卻容易多了。例如幾年前都沒有「 因吹斯汀 」這些網路流行詞,更不知道它代表是正面情緒,以後只要不斷更新相關領域的語料庫來重新訓練則可得到更精確的模型。

俗話說「是騾子是馬拉出來遛遛」。

得到一個預測情緒的模型後,便可對影評文章進行預測,但預測的結果是否准確?准確率又有多高?這又是個問題。

每當事情陷入停滯,我就會想起日本漫畫大師安達充說過「當故事情節發展不下去的時候,加入一個新角色,是最簡單的做法」。

這時需要祭出一個「旁證」了。這所謂的「旁證」,也就是目前大家比較認可的電影評分網站——豆瓣網。

大家都知道豆瓣網上的電影用戶通過打星(5力薦,4推薦,3還行,2較差,1很差),轉換得出的10分制的評分,我們可簡單把1 4.9分視作負面評價、5 10分視作正面評價,沒有分數的視作中性評價。再把豆瓣的評價結果視作大部分人認同的結果,當然這樣肯定是有偏差的。

大膽假設,小心求證,先試試看吧。

根據電影名詞典再次去抓取豆瓣網上的電影信息,這次包含了電影分數::

使用獲取到的電影專題『電影院』文章內容測試,結果如下:

1048篇中,豆瓣評分結果與模型預測符合的有974篇,准確率是92.9%,WOW!真的這么准嗎?

看下詳細結果,豆瓣評分是正面的有1022條,預測對了973篇,例如:

而豆瓣評分是負面的有28條記錄,而模型只預測出1篇是負面的:

真的是模型預測錯了嗎?

從負面例子中抽樣看看模型分解的結果:

評論《麻煩家族》(豆瓣評分4.8)的:

從自動摘要出來的句子來看,實際上文章作者表現出正面情緒,模型預測為正面,預測正確 😊。

再看評論同一部電影的另外一個文章的評論:

作者顯然是給了個差評,但模型給了出的預測是正面,預測錯誤 😞。

負例的預測准確率低,有兩個原因,一個是豆瓣評分正負標準的閥值設定不夠精準,二是訓練數據不平衡。

之前使用的閥值策略是:「簡單把1 4分視作負面評價、5 10分視作正面評價,沒有分數的視作中性評價」。

我猜測在4~5分這個區間應該是灰度地帶,正負面評論都會有。為了驗證這個猜想,使用獲取到的所有豆瓣電影分數,導入數據分析工具中,排除掉沒有分數的條目後得到6500+條電影數據,其中最低是2.1,最高是9.7。

查看評分分布的直方圖與比例餅圖:

調整區間閥值,把 2.1-4.9 劃分為一個區間,系統自動分成了3組分值:

發現5分以下電影僅佔12%。

從評分分布結果看,在上大部分人寫文章是針對高分(好評)電影為主,低分(差評)電影的文章數量很少,從提取出來的數據量看,兩者比率約為100:3。

訓練數據不平衡導致正例過擬合,而負例欠擬合。

要解決數據不平衡問題,可以重新采樣訓練集。有兩種方法使不平衡的數據集來建立一個平衡的數據集——欠采樣和過采樣,解釋如下:

由於訓練數據不多,我使用了 過采樣 中的自舉方案。我將另外一個的電影專題『影視天堂』中模型預測結果與豆瓣評分結果一致的內容作為訓練數據集來強化訓練模型:

然後再對電影專題『電影院』測試一次:

負例的准確率改善了一些些,這說明效果是有的,以後只需繼續獲取到新的數據再「喂」給模型,模型預測結果會越來越精準。

至此,得到一個不算成熟的電影情緒預測模型,可以用來做一些有趣的統計分析了。

將『影視天堂』專題的分析結果在數據分析工具上進行數據可視化展示,得到一個「長尾圖」:

從報表中可得到這些信息:

注1:嚴格來說《歡樂頌》不是電影而是電視劇作品,在用豆瓣網的數據構建電影詞典時我沒有做嚴格區分

注2:專題的數據獲取是在5月份完成的,以及專題的最新收錄文章有訪問限制,無法獲取到舊的文章,因此得到的當時熱門影視作品的影評,從而呈現出信息跟當時熱播作品比較相關

再對先前獲取到的 1萬個用戶的近60萬篇文章內容 ,運行相應的Pipeline進行電影情緒數據的提取。

可視化數據後得到圖表:

現在可以看看,上用戶給予好評的電影有哪些,使用「詞雲圖」展示如下:

用戶給予差評的電影有哪些:

現在也可以精準了解每一個用戶的電影口味了,以 『毒舌電影 - 』 為例子:

注3:本文發表時上「毒舌電影」經歷過被封事件後已改名為「Sir電影」;專題「影視天堂」已改名為「電影」

以後做電影個性化推薦可就不要推薦錯了 😉。

5. 網站用戶行為統計分析系統有哪些開源的、收費的都告知一下

付費的用行為分析自建系統像growingio,諸葛io,神策這些都可以。3家相比諸葛io只能做一些簡單的數據分析,growingio最大的特色是無需埋點,可以回溯任何數據,其他的搜需要埋點後才能收集數據,神策聽過沒用過

6. 個性化推薦演算法

隨著演算法的普及,大量的產品有了個性化推薦的功能,這也成為內容類產品的標配。個性化定製化逐漸成為了互聯網思維的新補充,被提升到了越來越重要的地位。演算法推薦經過了很長一段時間的發展,才逐漸達到能給用戶驚喜的階段。比如在電商領域,推薦演算法可以挖掘用戶潛在購買需求,縮短用戶選取商品的時間,提升用戶的購物體驗;在新聞或段視頻領域,推薦演算法可以推送用戶喜歡的內容,提高用戶的閱讀效率,減少用戶選擇內容的時間,也增加了用戶在產品上的停留時長。

演算法應用階段

內容類產品發展初期,推薦演算法一般為「熱度演算法」,就是系統把熱點內容優先推薦送給用戶,完成熱點內容的高閱讀率。在積累了一定的用戶數據後,會發現用戶閱讀內容過於集中於熱點信息,長尾信息中的優質資源往往被忽略,造成資源浪費。「千人一面」的狀況已不是一個優質的解決方案,所以演算法逐漸演變為「個性化推薦」,也就是協同過濾的方法論支撐下的一種演算法。協同過濾能很好的根據用戶的喜好,推薦匹配的內容,減少資源浪費,增加用戶使用的友好體驗。真正做到「千人千面」。

推薦演算法的信息來源

第三方數據

一個新系統在初期沒有數據積累的情況下,可與第三方合作,互授部分信息共享。比如,很多系統支持微信登陸,這時候可以獲取客戶的微信信息,生活地點,部分生活習慣等。同時會獲取用戶的社交信息,共同好友越多表明圈子越相似,可以推薦更多相似的內容。

用戶行為數據

記錄用戶在系統內的使用習慣,可以准確的描述單個用戶的行為特徵,愛好特徵等有效的信息,系統根據提取出的分析結果,將內容與之匹配,完成更精準的推薦。如,某用戶經常瀏覽體育信息,系統將對應推薦更多體育相關的咨詢,省去用戶搜索篩選的時間。

基於生活習慣

基於生活習慣,生活常識的推薦,往往也可以作為內置的一個信息來源途徑。比如,外賣的app推薦用戶的餐廳,一般默認是位置優先,就近推薦,如果是快中午的時間段使用,系統默認推薦午餐,其次是晚餐。靠生活常識作出的系統演算法,可以更符合人類的習慣,給用戶更好的體驗。

熱度演算法

熱度演算法簡單的說就是把最核心的內容優先推薦,用新聞舉例,每一條新聞都具有實效性,隨著時間的推移,該條新聞的關注度降低,關注點被新的熱點新聞取代。量化以上的過程,把各個影響因素設定為變數,會得出以下的公式:

新聞熱度=初始熱度分+用戶交互熱度分-衰減熱度分

初始熱度分為新聞產生時,系統對新聞主體的預判熱度值。預判的分值一般為以下兩種模式,一種情況,按照新聞類別的不同,娛樂新聞大於財經新聞,大於國際新聞,大於文化新聞等等系統的預設,依次給出不同的初始熱度分;另一種情況,系統預置熱詞詞庫,用新聞的關鍵詞和詞庫的去匹配,匹配度高的,初始熱度分高。

用戶的交互熱度分也是一個變數,先要明確用的哪些行為會影響新聞熱度,然後對這些行為量化,加權或打分等方式。例如,網易雲音樂,用戶的聽歌,重復循環,收藏,評論,分享等行為,系統為每一種行為打分,求和後得出用戶交互的熱度分:

用戶交互熱度分=聽歌X10+循環X5+收藏X10+評論X5+分享X3

此公式還可以繼續細化,每一種操作的分值也可以作為變數,在產品前期時,傳播產品為主要任務,所以分享的加權要大一些,隨著網易雲的發展,社區的概念逐漸強化,評論區互動的加權會加大,所以評論的分值會增加,系統隨時調整分數加權,得出更准確的用戶交互的影響值。

衰減熱度分是一個隨時間變化而變化的數值,往往是一個函數的表達。用新聞舉例,新聞的熱度會隨著時間的推移而衰減,並且趨勢是越來越快,人們在接受新的熱點後,迅速忘記「舊聞」,直至熱度趨近於零。根據理論數據,構建函數,准確的表達衰減分值。

還有很多其他的影響因素,比如傳播次數,傳播層數,停留時長等等,都會影響熱度值,要想更精準的表達,就需要把涉及到的因素都作為變數,不斷完善演算法,才能更精準的完成推薦。

個性化推薦演算法

隨著用戶量的增加,產品日活的增加,用戶也不能僅限於千人一面熱點閱讀的模式中,個性化推薦在此時顯得尤為重要。個性化推薦有兩種常見的解決方案,一種是基於內容的推薦演算法,推薦內容往往是根據用戶的使用習慣得來,較為精準;另一種是基於用戶的協同推薦演算法,系統會根據以往使用內容,為用戶建模,然後根據群體中個體的使用習慣,推薦更多超預期的內容,達到預測推薦的效果。

基於內容的推薦演算法-預期內

基於內容的推薦演算法,靠收集用戶的使用習慣,進而推薦相關的內容。系統使用分詞庫匹配、關鍵詞匹配等等方式,達到內容的匹配,做到內容的精確劃分。比如,用戶瀏覽了某部科幻電影,系統就會按照該電影所對應的標簽,如科幻,然後系統推薦相同標簽的影片給用戶。

這樣的推薦方案,確定性強,推薦的內容都是根據用戶的歷史來確定,不能挖掘用戶的潛在需求。

基於用戶的協同推薦-超預期

做到精準推薦後,系統會繼續挖掘更潛在的推薦需求,給用戶超預期的推薦體驗。這就到了基於用戶協同推薦的階段。簡單的說,這種演算法是增加了用戶建模的環節,將同標簽的用戶群分,對比群體中單個個體的特徵,默認這種特徵為這類人的潛在特徵,再將此特徵內容推薦給同標簽的用戶,達到超預期的推薦效果。

比如,某用戶購買了一個蘋果手機,系統會將此用戶歸類為果粉,系統識別出很多果粉除了買蘋果的商品,還會購買小米作為備用機,這個特徵會被系統識別為潛在需求,推薦給果粉,減少果粉選擇備用機的時間。

這樣的推薦演算法,不僅能完成精準的推薦,還能給用戶小驚喜,讓系統「有溫度」。但是這樣的推薦方式,往往需要積累了大量用戶資料為基礎,才可以精確的完成。

7. 基於用戶行為分析建立用戶偏好模型

基於用戶行為分析建立用戶偏好模型
我們經常將個性化推薦的思想簡單地抽象為:通過用戶的行為推測出用戶的興趣,從而給用戶推薦滿足他們興趣的物品。那我們其實就是要通過用戶行為分析建立一個用戶偏好(偏好即興趣)模型,模型中包含各個用戶的一個或更多個偏好。
插敘一段
像「用戶行為」,「用戶興趣」這樣的詞,大多數人都有一個默認的感知,甚至對於這種詞的理解可能已固化為常識,所以我很少見到有文章使用這些詞時解釋它們。我感覺涉及到演算法模型時,對這些詞的不加限定的寬泛認知就容易影響對演算法模型的深入理解,會導致感知模糊卻不自知。因為不同人對這些詞的基本理解可能一致,但是拓展理解各不相同。本文會作出限定解釋,且本文所談用戶行為都是指網路(可以是電信網路,互聯網)上的行為。
概念解釋
實體域
當我們想基於用戶行為分析來建立用戶偏好模型時,我們必須把用戶行為和興趣主題限定在一個實體域上。個性化推薦落實在具體的推薦中都是在某個實體域的推薦。比如對於閱讀網站,實體域包括所有的圖書,我們可以稱之為圖書域。其他還有,個性化音樂推薦,個性化電影推薦,個性化資訊推薦等。
用戶行為
用戶在門戶網站點擊資訊,評論資訊,在社交網站發布狀態,評論狀態,在電商網站瀏覽商品,購買商品,點評商品,以及在其他類型網站的種種行為都可是用戶行為。本文所指的用戶行為都是指用戶在某實體域上的行為。比如用戶在圖書域產生的行為有閱讀,購買,評分,評論等。
興趣主題
用戶的興趣維度,同樣是限定在某實體域的興趣,通常可以以標簽的形式來表示。比如,對於圖書閱讀,興趣主題可以是「懸疑」,「科技」,「情感」等等分類標簽。值得一提的是,興趣主題,只是從用戶行為中抽象出來的興趣維度,並無統一標准。比如qq閱讀和豆瓣閱讀的圖書分類標簽大不一樣。而興趣維度的粒度也不固定,就像門戶網站有「新聞」,「體育」,「娛樂」等一級分類,而新聞下有「國內」,「社會」,「國際」二級分類,娛樂下有「明星」,「星座」,「八卦」二級分類。我們選取什麼粒度的興趣空間取決於我們對用戶偏好模型的要求。
興趣空間
在同一層次上興趣維度的集合,比如豆瓣閱讀中,可以用「新上架」,「熱門」,「特價」,「免費」來構成一個興趣空間(當然,如果使用這個興趣空間來表徵用戶的興趣,就太粗了,這里只是假設),也可以用「小說」,「幻想」,「計算機」,「科技」,「歷史」·····「美食」構成一個興趣空間。這是兩種不同的分類維度。如果將「新上架」也加入到後者集合里,就顯然有些莫名其妙。值得一提是,這也並非不可能,這取決於一個如何看待這個集合的問題,如果不把它看作基於內容的分類,而是圖書標簽庫,那麼也是可行的,甚至利於建立更好地模型。本文後面我有提到。
用戶行為數據
項亮在他的《推薦系統實踐》的2.1節有詳細介紹。通常在經過對行為日誌的匯總處理後生成的比較容易理解的數據就是一份描述用戶行為的會話日誌。這種日誌記錄了用戶的各種行為,比如在圖書閱讀app中這些行為主要包括點擊,試讀,購買,閱讀(在本地app中,閱讀行為有可能追蹤不到),評分,評論。
建立用戶偏好模型
基於用戶行為分析建立用戶偏好模型的核心工作就是:將用戶的行為轉換為用戶的偏好。
我們採用矩陣運算的思維方式,以圖書閱讀為例說明。
下圖表示用戶(user)集合:
下圖表示圖書(item)集合:
那麼用戶的行為矩陣可以表達為:
行表示用戶,列表示圖書,我們暫只考慮圖書的購買行為,1表示用戶看過該圖書,0表示用戶沒有看過該圖書。
如何將上述用戶行為矩陣轉化為用戶興趣矩陣(即行代表用戶,列代表興趣維度),一種顯著的方法是我們先確定圖書與興趣維度的對應關系矩陣。而這個的前提是我們確定了使用何種興趣空間。一種常見的方式是專家給出一些樣本的分類結果,也就是一般意義的訓練數據,然後通過分類演算法,得到分類模型,然後應用到其餘數據的分類問題當中,解決其餘大量數據的分類問題。這種分類的特點是一本圖書只被標記為一種類別,假如有3個類別,
那麼圖書-興趣矩陣為:
那麼用戶行為矩陣轉換為用戶興趣矩陣的運算公式即可表示為下圖,行表示用戶,列表示興趣,算出的矩陣再經過歸一化後,每個值就代表某個用戶在某個興趣的偏好權重。
選擇這樣的興趣空間的局限顯而易見:一本圖書只能屬於一個興趣維度。實際情況中,一本圖書通常不只屬於某個分類,並且當圖書的數據巨大時,寄希望於編輯分類可能會越來越難以維持,所以通常是由用戶主動給圖書添加標簽,或者機器基於內容,提取關鍵詞。但是這種形式得到的標簽集會存在同義,生僻,維度過多等情況,需要經過標簽清洗的重要工作。前面已經看到興趣空間的選擇真的是非常重要,直接影響所得到用戶的興趣矩陣。所以同樣的方法都得到了用戶偏好,但是好不好用,就跟這部分工作有關了。
用戶行為加權
上面展示的用戶行為矩陣示例是一個非常簡單的,直接可以從資料庫里提取的例子。而實際中在數據能夠支撐的情況下,我們不可能只考慮一種行為。為了獲得更合理的行為矩陣,我們就需要進行行為加權。比如,A1表示用戶點擊的行為矩陣,A2表示購買的行為矩陣,A3表示評分的行為矩陣,那麼加權矩陣就是:
至於各矩陣的權重跟我們建立用戶偏好模型的目的有關,如果我們更希望找准用戶的品味偏好,那麼權重可能是:a1 < a2 < a3;如果我們更希望用戶購買,那麼權重可能是:a1 < a3 < a2。
其他用戶行為分析方法
上面介紹的方法也算是一種主流的方法。但是從上面介紹的「興趣主題」,「興趣空間」也可以看出作出好的分類並不容易,分類粒度,分類維度等都不好控制,用戶打標簽也需要復雜的標簽清洗工作。在圖書,電影這樣的實體域,我們還可以通過類別給用戶推薦喜歡的物品,而在個性化資訊推薦領域(這里僅舉個例子,資訊推薦應該有其特殊之處),我們不見得能通過類別推薦用戶喜歡的資訊,甚至用戶本身也不在意類別。我們並不需要顯式地構建物品-興趣對應關系矩陣,也可以將用戶和所喜歡類別的物品關聯起來。這就涉及到隱含語義分析技術。這個部分會日後在此文補充。
小總結
以上可以看出基於用戶行為分析的用戶偏好建模的常規方法非常簡單明了。事實上也的確如此,在使用這些方法或者思想編寫程序計算都不是什麼難事。而實際上,我們遇到的問題卻並非是方法本身,而是數據本身。數據方面的兩大問題是稀疏和長尾分布。通常有行為數據用戶很少,而用戶的行為對象也集中在不多的物品上。方法易學,而數據問題只能在實戰中才能深刻體會,才會發現主要的精力和難點都在解決數據的稀疏和長尾上。希望日後能結合實際問題寫寫解決數據問題的文章。
此外,上面雖然是用矩陣運算的思想講述,但我在實際項目中發現其運算的本質其實是對用戶行為的統計。所以在實戰中,不一定要先建矩陣,再做計算,直接在資料庫里使用sql計算非常方便。

閱讀全文

與用戶電影喜好行為的分析系統相關的資料

熱點內容
如何找電影不知道名字 瀏覽:859
外國電影國語配音有哪些 瀏覽:22
電影影院在線電影 瀏覽:427
k8經典電影2020最新版 瀏覽:453
追龍電影電視劇全集 瀏覽:601
最近有哪些耽美電影 瀏覽:157
年輕人的神馬電影中文 瀏覽:896
禁女人電影迅雷下載 瀏覽:433
法國大叔是什麼電影迅雷下載 瀏覽:65
沖鋒號電影免費觀看 瀏覽:584
金沙博物館4d電影在哪裡 瀏覽:125
微電影雨蒙蒙 瀏覽:869
中國葡萄發音電影哪裡找 瀏覽:881
我讓你放電影怎麼寫 瀏覽:276
百麗宮電影院在哪裡 瀏覽:135
寰宇公司的電影有哪些 瀏覽:640
你要走我就死給你看是什麼電影 瀏覽:259
奇門遁甲五大掌門電影系列 瀏覽:546
大學生資助成才微電影 瀏覽:114
北京國際電影節每年於4月舉辦 瀏覽:346