協助動態節目導覽推薦系統訓練資料增量之研究
45
0
0
全文
(2) 致謝 本論文得以完成,首先要感謝我的指導教授黃文吉博士。承蒙黃文吉老師 在兩年的求學過程中的指導與教誨,使我不管在專業領域或者是研究方法及待 人處事等處皆受益良多。. 再者,口試期間承蒙口試委員 輔仁大學資訊工程學系 葉佐任教授、健行 科技大學電子工程學系 歐謙敏教授和國家實驗研究院 台灣儀器科技研究中心 林群富教授提供諸多寶貴意見,使本論文更臻完備,在此至上深深的謝意。. 在求學過程中,同學尚煒宸、林聖裕、徐雅盈、張力、雷承維、王德揚給 我的幫助與鼓勵,學姊楊日鳳、張茗雅,學長婁敦堯、朱晏呈、鄭博文、謝斯 宇、莊惟傑的協助,最後感謝我的家人,因為有你們的關懷、支持與陪伴,讓 我能夠全心全意的完成我的學業,由衷的感謝你們。. 最後向所有關心我的人致上最深的謝意,並將這份成果與你們共享。.
(3) 摘要 本研究為了解決使用主動式學習的推薦系統可能面臨到因為使用者使用系 統的頻率不高,而造成資料收集困難的問題,我們希望透過使用者點選的歷史 資料,進行資料增量,藉由多次的觀看紀錄,也就是使用者行為資料,產生相 應且大量的模擬資料,來加速使用 Active Learning 的推薦系統收集資料的速 度,減少時間資源的浪費。 本論文以強化式學習的 Policy Gradient 與主動式學習結合的動態節目導覽 推薦系統為例來做資料增量。我們的推薦系統同時考慮使用者的觀看節目類別 的喜好,工作日與例假日,觀看時間等,因此為了有效率的產生符合一般人習 慣的模擬訓練資料,我們試圖產生情境式的模擬資料來訓練類神經網路。藉由 對多種情境作情境增量,我們得以解決主動式學習所面臨到需要花費大量時間 收集資料的問題。. 關鍵字-推薦系統,強化式學習, 主動學習.
(4) 目錄 表目錄............................................................................................................................iv 圖目錄.............................................................................................................................v 第壹章 簡介.................................................................................................................1 第壹節 研究背景.................................................................................................1 第貳節 研究動機.................................................................................................3 第參節 研究目的….............................................................................................4 第貳章 強化式學習與推薦系統紹...............................................................................5 第壹節 類神經網路基礎介紹………………………………………………...5 第貳節 強化式學習介紹...................................................................................7 第一項 Policy Gradient 演算法介紹……...……………………..…..…..8 第參節 主動式學習與推薦系統介紹..............................................................10 第肆節 推薦系統與資料增量之研究...............................................................11 第參章 情境式模擬資料增量之方法.........................................................................12 第壹節 情境式模擬資料概述...........................................................................12 第貳節 電視台節目種類與時間關聯...............................................................14 第參節 情境設定介面介紹…...........................................................................15 第肆節 使用者模擬資料訓練流程...................................................................16 第伍節 情境定義...............................................................................................18 第一項 條件定義………………………………...…………..…………18 第二項 每筆資料定義……………………………………………….....19 第三項 training data 定義……………………………………………...20 第陸節 情境範例定義…...................................................................................20 第肆章 實驗結果與分析.............................................................................................24 第壹節 實驗環境簡述.......................................................................................24 第一項 觀看節目來源說明……………………...…………..…………..25 第貳節 情境比較...............................................................................................25 第參節 實驗結果...............................................................................................26 第一項 情境範例 1 實驗結果………………………………...…………27 第二項 情境範例 2 實驗結果………………………………...…………29 第三項 情境範例 3 實驗結果………………………………...…………31 第四項 情境範例 4 實驗結果………………………………...…………32 iii.
(5) 第肆節 實驗結果分析.......................................................................................34 第伍章 結論.................................................................................................................36 參考文獻.....................................................................................................................37. iv.
(6) 表目錄 表 3-1. 電視台節目種類與時間關聯表.......................................................................13 表 4-1. 情境實例比較表...............................................................................................25. v.
(7) 圖目錄 圖 1-1.使用者跟推薦系統間的關係...............................................................................3 圖 1-2.使用者和增量資料示意圖...................................................................................4 圖 2-1.神經元節點示意圖…...........................................................................................5 圖 2-2.類神經網路架構圖..............................................................................................6 圖 2-3.Policy Gradient 架構示意圖...............................................................................9 圖 2-4.公式示意圖.......................................................................................................10 圖 3-1.情境介面.............................................................................................................15 圖 3-2 實驗流程圖.........................................................................................................17 圖 3-3.情境範例 1 介面..................................................................................................21 圖 3-4.情境範例 2 介面..................................................................................................22 圖 3-5.情境範例 3 介面.................................................................................................23 圖 3-6.情境範例 4 介面.................................................................................................23 圖 4-1.情境範例 1 欲觀看節目排名在驗證資料集進入前四名的比例....................26 圖 4-2.情境範例 2 欲觀看節目排名在驗證資料集進入前四名的比例....................28 圖 4-3.情境範例 3 欲觀看節目排名在驗證資料集進入前四名的比例....................30 圖 4-4.情境範例 4 欲觀看節目排名在驗證資料集進入前四名的比例....................31 圖 4-5.綜合情境比較....................................................................................................33. vi.
(8) 第壹章 簡介 本章將會對本研究做一個簡單的介紹。首先,1-1 我們會討論為什麼會需要 動態節目導覽推薦系統。1-2 我們會說明研究的動機。1-3 我們會說明這項研究希 望解決的問題為何。. 第壹節 研究背景 隨著第四次工業革命到來,我們每天無不接觸大量的資訊,在這樣的情況之 下,如何有效地從廣大的資訊中獲取符合個人需求的訊息便成了十分重要的課題, 推薦系統[1]也因此而誕生。 自推薦系統出現至今,已經廣泛應用在各個需要資訊的場合,這樣的資訊檢 索系統近來日益受到重視,推薦系統受到重視的原因主要以下兩個部分為主: (1) 主動性 : 當我們想要使用一項服務的時候,常常無法精確地確描述自己的 需求,在這樣的情況下,使用者往往希望在沒有提供過多資訊的 情況下,系統可以依據使用者的決策做出可能符合使用者需求的 推薦,進而幫助服務提供者與使用者更好的了解與釐清使用者的 需求。. 1.
(9) (2) 個人化 : 有了上述的主動性,我們可以知道,藉由使用推薦系統,服務提供 者與被服務者都將往獲得最適合自己的服務這條路上走,更適合自 己的服務換言之也就是個人化的服務,當使用的次數越多,系統收 集越多的使用者資訊,便可以透過推薦系統演算法的運作提供更加 個人化的服務,讓每位使用者都獲得最好的服務體驗。 現在很多人對於影視的需求已經不再僅止於打開電視任意觀看各個頻道的 節目了,在這個資訊爆炸的時代中,每個人的資源,尤其是時間資源都十分有限, 忙碌的現代人大多希望一打開電視就能夠看到符合自己喜好的節目,而不是還要 花時間細細挑選,在這個速食的年代,用最短的時間看到最想看的節目,才能讓 使用者產生想繼續使用服務的想法。 動態導覽系統可以即時和使用者互動,在最短的時間內提供使用者相對優良 的服務體驗,尤其適合運用在節目導覽系統這種講求迅速反應的導覽推薦系統, 可以在短時間內正確地推薦使用者想看的節目,進而增加使用者對系統的黏著度。. 2.
(10) 第貳節 研究動機 推薦系統常常搭配主動式學習(Active Learning)[2]一起使用(見圖 1-1),因為 主動式學習是由系統主動收集資料,使用者不需要參與這樣相對複雜的過程。 若是使用者使用的頻率比較高,那麼我們就能夠收集到足夠的資料進行學 習,進行推薦,也不需要花費太多時間在收集資料這件事情上,但若是使用者 使用推薦系統的頻率比較低,我們收集到的資料數量少,需要花費的時間會比 較多,也很容易因為資料數量太少而造成 overfitting 的問題發生。 但是推薦系統在運作的時候,不管使用者是誰都必須做出符合該使用者習慣 的推薦,所以我們便想,在類神經網路中,運用大量的資料來進行訓練以提高 模型的準確性是已知可行的做法,大量的資料可以讓我們的模型達到更好的推 薦效果,那麼,我們是否可以透過現有的使用者情境,產生許多符合如此情境 的資料,利用這樣的資料增量來對這樣的情況進行一些改善?. 圖 1-1.使用者跟推薦系統間的關係 3.
(11) 第參節 研究目的 由於使用主動式學習(Active Learning)[3,4]的推薦系統可能面臨到因為使用 者一開始使用系統的頻率不高,而造成資料收集困難的問題,因此我們希望透 過對現有的資料進行資料增量(見圖 1-2),對系統盡可能的提供使用者行為模擬 資料,來協助改善資料蒐集需要的時間,我們希望透過在使用者點選之後,針 對該情境進行資料增量,來加速使用 Active Learning 的推薦系統收集資料的速 度,減少時間資源的浪費。 這樣就不需要等待系統慢慢收集資料,而是可以藉由一次的觀看紀錄,也 就是使用者行為資料,便根據該使用者,根據不同的情境,產生相應且大量的 資料,解決時間浪費與可能的 overfitting 問題。. 圖 1-2.使用者和增量資料示意圖. 4.
(12) 第貳章 強化式學習與推薦系統介紹 本章節將簡單介紹本論文使用到的動態節目導覽推薦系統相關知識。第 2-1 節會先簡單的介紹類神經網路的基礎。第 2-2 節針對強化式學習做一些說明。第 2-3 節介紹主動式學習與推薦系統。第 2-4 節推薦系統與資料之研究。. 第壹節 類神經網路基礎介紹 對生物神經中樞的研究啟發我們,於是有了類神經網路的概念。大腦由一 個個神經元透過不同的連接方式組成複雜的神經網路,進而使人們可以感知與 學習,於此同時,我們藉由創建一個個人工神經元,並建立相關的數學模型, 透過不斷的訓練,進而達到模仿人類腦部運作,進行學習的效果。 一個人工神經元主要由五個部分組成: (1)輸入值 : x (2)加權值 : w (3)偏差 值 : bias (4)激勵函數 : activation function (5)輸出值 : y (見圖 2-1). 圖 2-1.神經元節點示意圖。組成包含:輸入值、加權值、偏差值、激勵函數、輸 出值. 5.
(13) 輸入層 (input layer). 隱藏層 (hidden layer) 圖 2-2.類神經網路架構圖. 輸出層 (output layer). 輸入值乘以加權值再加上偏差值,經過激勵函數後產生輸出值,這便是一 個最簡單的單一節點所做的事情(見圖 2-2)。 神經網路的架構: 我們可以藉由輸入層已知的資料輔以不同的演算法則,設定不同的激勵函 數,以及損失函數,透過不斷的訓練,盡可能地縮小目標與輸出的誤差,直到 神經網路收歛,接著,再藉由 cost function 來判斷他們是否不再有變化,當變化 小至不再變化,我們就可以說自己得到了一個訓練好的類神經網路。 一般的類神經網路可以分成監督式學習與非監督式學習,本論文使用楊日 鳳開發的強化式學習演算法,不採用監督式學習的演算法則,原因是,動態節 目導覽推薦系統的訓練資料是沒有經過標記過的資料,亦即沒有經過處理,沒 有事先分類,因此並不適合需要大量可標注分類的訓練資料的監督式學習。. 6.
(14) 第貳節 強化式學習介紹 本論文以強化式學習的 Policy Gradient 與主動式學習結合的動態節目導覽推 薦系統[5]為例來做資料增量,以下將針對本實驗所使用的神經網路做簡單的介 紹。 首先,先說明本論文使用的動態節目導覽推薦系統使用強化式學習與主動 式學習結合的原因。傳統的監督式學習對訓練資料的完整性要求較高,需要完 整的資料標注,同時,會花費較多的時間在進行訓練。但是對於一般的使用者 來說,訓練資料是在一次次的觀看過程中收集而來,需要花費大量的時間。而 且,這些資料往往是沒有經過標注的。 藉由主動式學習收集一筆筆資料,給予每筆資料一個 reward 值,再透過強 化式學習找到一個策略使其達成最大平均 reward 值,在此,我們以 reward 取代 標注,為了簡化訓練的流程,我們使用 immediate reward assignment 的方式,將 收集的資料給一個固定的 reward 值,我們將使用者感興趣的節目類別給予正的 reward 值,其餘 reward 則設為負值,這樣可以有效的幫助收斂,加快學習速 度,並用簡單的 Policy Gradient 來完成我們的訓練。. 7.
(15) Policy Gradient 演算法介紹 Policy Gradient 作為一種強化式學習[6]的方式,架構主要由 Environment 和 Agent 組成,之後,會根據 State、Reward 和 Action 等資訊運作(見圖 2-3)。以下 將逐一說明。 (1) Environment. : 環境,發生事件的地方,在本論文中,它代表的是使 用動態節目導覽推薦系統的影音裝置。. (2) Agent. : 決定 action,進行 Policy Gradient 演算法訓練的地方,在本 論文中,它代表的是動態節目導覽推薦系統。. (3) State : 狀態,在本論文中代表使用者使用動態節目導覽推薦系統時的 狀態,例如 : 使用者、觀看節目的時間是星期一至五或是六、 日,以及觀看節目的時段,觀看的節目類別等等。 (4) Action : 行為動作,在本論文中代表動態節目導覽推薦系統的推薦結 果,具體來說便是推薦特定類別的節目集合,例如 : 戲劇種 類的節目、體育種類的節目、以及娛樂種類的節目等等。 (5) Reward : 獎勵,在本論文中代表的是使用者對於動態節目導覽推薦系 統推薦結果的反饋。. 8.
(16) 運作方式: 藉由觀察環境,我們會知道事件發生時的狀態(state),並將之傳給 Agent, Agent 決定適當的動作(action)傳回給環境,環境在有了這些動作以後,會獲得新 的狀態,同時,對不同的動作給予不同的 reward 值。在這樣不斷的循環中找出 一個策略達成最大的平均獎勵值。 Policy Gradient 的特點便是訓練資料不需要事先執行標注,我們只需要知道 每筆資料的狀態(𝑆𝑆 = 𝑠𝑠𝑖𝑖 )、動態節目導覽推薦系統推薦的動作(𝐴𝐴 = 𝑎𝑎𝑗𝑗 ),及對應的 獎勵( 𝑅𝑅� 𝑆𝑆 = 𝑠𝑠𝑖𝑖 , 𝐴𝐴 = 𝑎𝑎𝑗𝑗 �)便可進行訓練。由於這樣的特性,每隔一陣子我們便 可以利用主動式學習對每個使用動態節目導覽推薦系統的使用者收集 State、. Action 及 Reward 等資訊,同時,把這些資訊做為新的資料輸入 Policy Gradient 進行訓練,來調整動態節目導覽推薦系統的推薦結果。. 圖 2-3.Policy Gradient 架構示意圖 在進行動態節目導覽推薦系統時,Agent 的輸入為當下的狀態( 𝑆𝑆 = 9.
(17) 𝑠𝑠𝑖𝑖 ),輸出則是這樣狀態下每一個可能的動作(action)的機率𝑃𝑃(𝐴𝐴 = 𝑎𝑎𝑗𝑗 , 𝑆𝑆 = 𝑠𝑠𝑖𝑖 ), J = 1, … , N。接著我們會依據 Action 機率大小的順序為推薦標的。. 公式如下[7] (見圖 2-4):. 𝑁𝑁 J = ∑𝑀𝑀 𝑖𝑖=1 ∑𝑗𝑗=1 𝑅𝑅� 𝑆𝑆 = 𝑠𝑠𝑖𝑖 , 𝐴𝐴 = 𝑎𝑎𝑗𝑗 �𝑃𝑃� 𝑆𝑆 = 𝑠𝑠𝑖𝑖 , 𝐴𝐴 = 𝑎𝑎𝑗𝑗 �. 其中 R 為 reward,P 為機率,S 為 state,A 為 action,M 為 states 數量,N 為 actions 數量。. 𝑆𝑆 = 𝑠𝑠𝑖𝑖. Agent (Neural Network). P(A = 𝑎𝑎1 / S = 𝑠𝑠𝑖𝑖 ) P(A = 𝑎𝑎𝑁𝑁 / S = 𝑠𝑠𝑖𝑖 ). 圖 2-4.Policy Gradient 概念示意圖. 第參節 主動式學習與推薦系統介紹 我們利用主動式學習來做推薦系統[8]。主動式學習是一種主動收集資料的 學習方式。在本論文便是藉由使用者觀看節目來收集資料,隨著每次導覽結 束,我們會收集結果並將之轉換成程式需要的資訊,再把資訊餵給 Agent 進行訓 練,其中資訊包含了使用者觀看的節目與時間,以及使用者。這樣的資料不需 要使用者知道我們的動態節目導覽推薦系統是如何運作。但是當推薦系統變得 複雜,例如希望可以考慮除了使用者的興趣以外,觀看的時間,以及是否例假 10.
(18) 日等更多元的資訊來進行推薦節目時,過少的使用者歷史資料,無法讓推薦系 統產生良好的推薦結果。. 第肆節 推薦系統與資料增量之研究 為了解決較複雜的推薦系統所面臨到的因為使用者資料不足而無法進行良 好推薦的問題,本論文在研究如何為系統提供大量且多元化之使用者行為模擬 資料,亦可看作大量地向模型提供使用者們的歷史行為資料,好讓使用者一開 始就可以根據不同的狀態得到良好的推薦結果,而不需等到大量的資料收集完 才能得到好的推薦結果。 在考慮更多元的因素下,如果我們漫無目的地提供隨機的使用者行為模擬 資料,會造成學習無法有效率收斂,而且也需要產生大量的使用者行為模擬資 料才能收斂。為了解決這個問題,考慮到大部分的人都有接近規律的生活與觀 看節目的習慣,所以我們引入了情境式的模擬資料幫助我們進行有效率的學 習。第三章我們探討如何產生情境式模擬資料來幫助學習。. 11.
(19) 第參章 情境式模擬資料增量之方法 本章將會對實驗流程及實驗相關設定做一些介紹。第 3-1 節會對情境模 擬資料做單的說明。第 3-2 節會對電視台節目種類與時間關聯作介紹。第 3-3 節 會對產生情境的介面做一些說明與介紹。第 3-4 節會對使用者模擬資料訓練流程 做說明。第 3-5 節會針對情境所產生的訓練資料的名詞及其他相關的名詞做一些 定義與說明。第 3-6 節則會針對情境範例逐一說明。. 第壹節 情境式模擬資料概述 基於一般人在觀看節目的時候,往往都會因不同的時間,如上午、下午或 晚上而有不同類型的觀看節目,而且工作日與例假日也會有所不同,甚至不同 的季節,節日等也可能跟著改變。所以當推薦系統會考慮如上所述更多元的因 子做推薦時,我們的模擬訓練資料也應該包含相對應的各種因子做考量。為了 更有效率的產生符合一般人習慣的模擬訓練資料,我們試圖產生情境式的模擬 資料來訓練類神經網路。一種情境即代表一種收看習慣,一個人也可能同時擁 有多種收看習慣,例如使用者 A 可能習慣在工作日星期一到五下午七點觀看新 聞,他可能也固定在星期六晚上觀看綜藝節目甚至每天早上固定觀看氣象節目 等等。由於主動式學習會面臨到需要花費大量時間收集資料的問題,因此,我 們會對每種情境都做資料增量。. 12.
(20) 頻道. 星期一至五觀看節目類別. 星期六日觀看節目類別. CW. Crime. Home Shopping. Court TV. Documentary. True. DABL. Food. True. NBC. Drama. Children. Cozi TV. Drama. Food. PBS. True. Information. FOX. News. Home Shopping. Movies!. Drama. Comedy. WNYW-SD. News. Home Shopping. WWOR-DT4. Comedy. Drama. Decades. Family. Drama. ABC. News. Home Shopping. Localish. Food. Entertainment. Laff. Comedy. Sports. MyNet. Drama. Home Shopping. WWOR-SD. Drama. Home Shopping. 表 3-1.電視台節目種類與時間關聯表,我們根據 titantv[11]網站中 7/16~7/30 的資 訊獲得這些類別資料,其中,True 這個類別代表意思的是以杜比音效原音重現 13.
(21) 第貳節 電視台節目種類與時間關聯 從表 3-1 我們可以看到很多節目都是星期一至星期五分為一類,星期六日 分為一類,因此我們後面的情境除了星期一至星期日看同一種節目類別外也會 將星週一至週五分為一類,週六與週日分為一類,我們可以理解成 : 大部分的 人週一到週五喜歡看某一特定種類的節目,週六與週日喜歡看另一特定種類的 節目,因此,這樣的情境是有存在的必要的。 針對這樣的情形,我們可以解釋成,大多數人工作日有工作日的習慣,假 日有假日的習慣,除了某些類別不分平日或是假日都有一定的人收看之外,一 般來說,假日觀看的節目類別是相對輕鬆的,這可以理解成多數人在忙碌了五 天之後,會想藉由這些較為輕鬆的節目來放鬆身心,我們可以看到 Home Shopping 這個類別在上表出現了五次,可以想見,多數人平日少有時間出門購 物,假日又因為疲憊不想出門,因此會選擇電視購物這樣的購物方式來滿足日 常生活的需求。 因此,我們設計的情境主要有三種(不是唯一,而是此處的範例僅以如此分 類來進行設計),週一至週日觀看同一種類別為一種,週一至週五觀看同一種類 別的節目為第二種,週六和週日觀看同一種類別為第三種,同時,我們也可以 合理推論,當一個人常常在週一至週五的任意一天觀看某類別的節目時,代表 他喜歡這樣的節目種類,因此,在這個區間的其他時間他也可能選擇觀看同一 種類的節目,所以,當有人顯示出這樣的喜好時,我們會做出相應的推薦。 14.
(22) 第參節 情境設定介面介紹 有了上述的電視台節目與時間種類的關聯後,我們便要來討論如何模擬出現 實生活中的情境,以及為什麼我們需要收集這些資料。 一般情況下,我們在測試系統的時候需要找許多測試人員實際使用系統才能 知道每個人的使用習慣,才能獲得許多情境與資料,但是收集測試人員的資料需 要耗費大量的時間,為此,我們使用 Python 設計 GUI 的套件 PyQt[9]設計了一個 介面,裡面包含一個情境的主要元素 : 使用者、觀看節目的時間與觀看的節目類 別,同時,在 Data Number 的部分我們會輸入資料數量,藉此實現資料增量(見圖 3-1)。 藉由讓使用者自行輸入這些情境,我們可以迅速且準確地產生資料,並透過 xlwings[10]這個 Python 套件將資料寫入 excel,如此一來便能夠產生許多的情境 式模擬資料來協助系統進行訓練。. 圖 3-1.情境介面. (1) 開始時間 : 開始時間我們以一天為單位,Mon ~ Sun。 (2) 結束時間 : 結束時間我們以一天為單位,Mon ~ Sun。. 15.
(23) (3) 時間區間 : 我們將一天分為 12 個時間區間,每兩個小時為一個區間 顯示的數字和對應時的關聯為: 顯示的數字: n 實際的時間範 圍 : 2n。 (4) 節目種類 : 可以選擇的類別有 96 個。 (5) 使用者編號 : 可以有多位使用者,在此我們以 3 位為例。 (6) Add : 按下此鍵,介面會新增一組開始時間、結束時間、時間區間、節目種 類及使用者編號,也就是一個條件。 (7) Submit : 按下此鍵,介面會開始產生資料。 (8) Data Number : 此區塊為讓使用者輸入欲產生多少筆資料的地方。 在有了情境的基本概念後,下一節我們將說明本實驗實際的運作流程,包 含了情境模擬資料如何與 Policy Gradient 神經網路結合的部分。. 16.
(24) 第肆節 使用者模擬資料訓練流程. 圖 3-2.實驗流程圖 (見圖 3-2)介紹完情境設定的介面之後,我們來具體說明實驗是怎麼運行 的。首先,我們會先思考使用者觀看節目有機會發生的情況,訂定情境範例, 接著產生情境模擬資料,也就是使用者行為模擬資料,在產生情境模擬資料的 同時,也會根據每種情境產生對應的驗證資料(validation data),在此,本論文僅 舉出 4 種可能的情境範例做說明,情境範例的詳細內容,會在第 3-6 節做進一步 的說明。當情境模擬資料產生完畢,會透過轉換,變成一個個 training data(第 35 節說明),藉由將情境模擬資料轉換成 state(狀態),再將 state 輸入 Agent(Policy. 17.
(25) Gradient 神經網路)進行訓練,經過神經網路運作後,我們會得到欲觀看節目種 類排名的機率,接著檢查此排名是否進入前 N 名,若否,則反覆訓練至進入前 N 名為止,若欲觀看之節目種類之排名進入前 N 名,則結束訓練,接著使用驗 證集的不同的使用者行為模擬資料進行驗證,查看驗證資料集的資料進入前 N 名的比例,檢查欲觀看節目種類排名進入前 N 名的機率,結束我們一次的實驗 流程,在本論文的實作裡,將 N 設為 4,因為我們一次推薦 4 個節目。下一節我 們會說明情境範例相關需要了解的定義。. 第伍節 情境定義 有了上面對於情境的了解後,以下我們將針對情境的定義,以及一些相關 的定義做說明。3-5-1 說明什麼是一個條件。3-5-2 說明什麼是一筆資料(Data Number)。最後,3-5-3 說明一個 training data 包含了那些元素。. 條件定義 這個小節,我們簡述了 3-3 節提到的條件為是什麼。一個條件包含了第 3-3 節的介面裡面的開始時間、結束時間、時間區間、節目種類及使用者編號。情 境就是這些條件的集合,也就是,這些條件組成了一個又一個的情境。. 18.
(26) 每筆資料定義 當我們在情境介面設定好條件,按下 Submit 之後,會根據 Data Number 產 生一筆又一筆的資料,換言之,Data Number 就是我們要產生幾筆資料的意思, 每筆資料包含了: (1)星期(week) : 此星期會在介面選擇的開始時間與結束時間隨機挑選一天作 為依據。 (2)選擇數量 : 一天當中,電視可能被點選 N 次。 (3)使用者編號. : 此使用者編號會在使用者輸入的使用者編號中,依據對應條 件挑選一個編號。. (4)開始觀看時間 : 此開始觀看時間會在選定的觀看種類及時間區間內隨機產 生。 (5)結束觀看時間 : 此結束觀看時間會在選定的觀看種類及時間區間內,隨機 產生 。 (6)節目名稱 : 此節目名稱會在選定的觀看種類及時間區間內,隨機產生。 (7)觀看種類編號 : 此編號會在使用者選定的觀看節目種類中隨機 產生(4)(5)(6)(7)(8),這些都是根據該觀看種類產生之資 料。 (8)觀看率 : (結束觀看時間 – 開始觀看時間). / 節目播放時間 * 100. 為計算該使用者在節目播放時間內觀看的比重。 19.
(27) training data 定義 情境產生的資料需要經過轉換才能變成類神經網路的輸入,資料經過轉換 後,會形成許多的 training data ,每個 training data 裡包含了: (1) Week days : 一共有三種 (a)週一至週五 (b) 週六 (c) 週日。 (2) Time sections : 在這裡,時間以半個小時為一個單位,一共有 48 個 時間單位。 (3) User numbers : 可以有多位使用者,在此我們以 3 位為例。. 第陸節 情境範例定義 此處舉例的情境範例只是我們假設的情境範例,並不包含其他實際觀看電 視的情況,因為實際觀看電視的情形不勝枚舉,很難一一列舉。 在說明情境範例之前,我們先對上午、下午及晚上的時間範圍進行定義, 上午的時間範圍為 1:00AM 至 12PM,下午的時間範圍為 1:00 PM 至 6:00 PM, 晚上的時間範圍為 7:00PM 至 12:00AM。本實驗一共有 4 個情境實例,我們會對 每種情境作數量資料增量,來觀察這些情境模擬資料在進行資料增量後,欲觀 看的節目種類排名進入前四名的比例,以下將一一說明。 情境範例一(見圖 3-3):. 20.
(28) 編號為 0 的使用者,在週一至週日,上午 7 至 8 點(時間區間 4),觀看 Drama 這個種類的節目。 編號為 1 的使用者,在週一至週日,上午 7 至 8 點(時間區間 4),觀看 Drama 這個種類的節目。 編號為 2 的使用者,在週一至週日,上午 7 至 8 點(時間區間 4),觀看 Drama 這個種類的節目。 情境範例二(見圖 3-4): 編號為 0 的使用者,在週一至週日,下午 3 至 4 點(間區間 8),觀看 Comedy 這個類別的節目,晚上 7 至 8 點(時間區間 10),觀看 Music 這個類 別的節目。 編號為 1 的使用者,在週一至週日,下午 3 至 4 點(間區間 8),觀看 Comedy 這個類別的節目,晚上 7 至 8 點(時間區間 10),觀看 Music 這個類 別的節目。 編號為 2 的使用者,在週一至週日,下午 3 至 4 點(間區間 8),觀看 Comedy 這個類別的節目,晚上 7 至 8 點(時間區間 10),觀看 Music 這個類 別的節目。. 圖 3-3.情境範例 1 介面 21.
(29) 情境範例 3(見圖 3-5): 編號為 0 的使用者,在週一至週五,下午 1 至 2 點(時間區間 7),觀看 Sports 這個類別的節目。 編號為 1 的使用者,在週一至週五,下午 1 至 2 點(時間區間 7),觀看 Sports 這個類別的節目。 編號為 2 的使用者,在週一至週五,下午 1 至 2 點(時間區間 7),觀看 Sports 這個類別的節目。 情境範例 4(見圖 3-6): 編號為 0 的使用者,在週六至週日,晚上 7 至 8 點(時間區間 10),觀看 Family 這個類別的節目。 編號為 1 的使用者,在週六至週日,晚上 7 至 8 點(時間區間 10),觀看 Family 這個類別的節目。 編號為 2 的使用者,在週六至週日,晚上 7 至 8 點(時間區間 10),觀看 Family 這個類別的節目。. 圖 3-4.情境範例 2 介面. 22.
(30) 圖 3-5.情境範例 3 介面. 圖 3-6.情境範例 4 介面. 23.
(31) 第肆章 實驗結果與分析 本章我們會針對實驗的結果以及實驗環境進行說明。第 4-1 節會說明實驗環 境。第 4-2 節會複習第三章提到的情境實例。第 4-3 節會對各實驗的結果進行說 明。第 4-4 節會綜合實驗結果說明。. 第壹節 實驗環境簡述 以下,我們會對實驗所使用到的系統和軟體做簡單的說明。 1.基礎系統 : 本研究在 Windows 的環境下進行開發作業。 2. 演算法開發環境 : 我們主要使用的程式語言為近年用途廣泛、擁有許多類 神經網路相關套件的 Python,使用的機器學習框架為近年 機器學習最多人使用的 Tensorflow。 3. 情境介面相關套件 : 這個部分我們的使用的程式語言同樣為用途廣泛的 Python,用來製作介面的套件為 Python 針對 GUI 所開發 的 PyQt,在本論文中,我們使用它來進行介面開發。 我們會將從介面讀到的資訊經過處理後,交由 xlwings 這個專門處理 excel 類型資料的 Python 套件來將產生情 境式模擬資料寫入 excel。 下一小節我們將說明本論文所產生的情境式模擬資料的來源。. 24.
(32) 觀看節目來源說明 我們用來產生情境式模擬資料的節目來源是由參與資策會計畫的同學從 titantv[11]中 90 個頻道中爬蟲[12]得到的資料,這些資料依照節目種類可以分為 328 個類別,儲存於 excel 檔中。我們選取出該節目種類中節目數量大於 100 筆 之節目類別,作為我們可以選取的觀看類別,經過篩選,一共有 96 種節目類別 符合我們的要求,這也是為什麼我們的情境設計界面中的節目種類一共有 96 種 的原因。 雖然本論文所使用的動態節目導覽推薦系統的節目相關資訊,是來自這個 網站,然而產生情境式模擬資料的資料來源並不是只能使用這個網站的資訊, 只要資料來源包含明確的週次(week),節目名稱、播放時間與節目種類等資訊便 可以為我們提供良好的資料。. 第貳節 情境比較 以下快速的為大家複習一下第三章介紹過的情境範例(見表 4-1)。 表 4-1.情境實例比較表 時間種類. 時間區間. 使用者數量. 觀看節目種類. 情境 1. 一至日. 4. 3. Drama. 情境 2. 一至日. 8 & 10. 3. Comedy & Music. 情境 3. 一至五. 7. 3. Sports. 情境 4. 六至日. 10. 3. Family. 我們所訂定的時間區間是任意選擇的時間,而非考量一般人的使用習慣,我們 25.
(33) 認為,若在這樣特別的時間區間可以讓訓練結果良好,則推廣到其他時間區間 訓練結果也應如此。. 第參節 實驗結果 我們以 validation data 進入前四名的比例來判斷神經網路訓練的成果好壞, 因為我們一次推薦 4 個節目,所以若驗證集的資料進入前四名,我們便認為這 是良好的訓練結果,也就是,產生情境的訓練資料時,我們會根據該情境產生 和訓練資料完全不同的資料作為 validation data,若 validation data 有 500 個,有 400 個 validation data 的資料進入前四名,那麼欲觀看節目排名在驗證資料集進 入前四名的比例為 80%,驗證資料進入前四名的比例越高,代表訓練效果越 好。. 下面我們將針對每種情境與其資料增量之結果進行說明。. 26.
(34) 情境範例 1 實驗結果. 圖 4-1.情境範例 1 欲觀看節目排名在驗證資料集進入前四名的比例. (見圖 4-1)我們的測試資料數量為 377 個 training data,基於此測試資料,我 們可以看到,training data 為 37 個時,欲觀看節目排名在驗證資料集進入前四名 的比例只有 46%;training data 為 98 個的時候欲觀看節目排名在驗證資料集進入 前四名的比例仍然維持不變;training data 為 235 個時上升至 54%;training data 為 260 個的時候欲觀看節目排名在驗證資料集進入前四名的比例來到了 66%; training data 為 365 個時欲觀看節目排名在驗證資料集進入前四名的比例來到了 72%;training data 為 628 個時欲觀看節目排名在驗證資料集進入前四名的比例 持續上升來到了 81%;training data 來到 770 個開始,欲觀看節目排名在驗證資 27.
(35) 料集進入前四名的比例上升到 85%;training data 為 1056 個開始,時欲觀看節目 排名在驗證資料集進入前四名的比例便維持在 94%。在情境的時間範圍為週一 至週日時,雖然欲觀看節目排名在驗證資料集進入前四名的比例確實如我們預 料的上升,但是最好的比例不達 80%,由此可見,在這樣的情境下,資料量的 多寡對於訓練效果有顯著的影響。. 28.
(36) 情境範例 2 實驗結果. 圖 4-2.情境範例 2 欲觀看節目排名在驗證資料集進入前四名的比例. (見圖 4-2) 我們的測試資料數量為 317 個 training data,基於此測試資料, 我們可以看到,training data 為 21 個時,情境範例 2 欲觀看節目排名在驗證資料 集進入前四名的比例為 69%,和情境的時間範圍同樣為週一至週日的情境 1, training data 同樣是最少的情況下相比,訓練效果差距很大;training data 為 105 個時,欲觀看節目排名在驗證資料集進入前四名的比例上升的幅度只有 1%; training data 為 174 個時,欲觀看節目排名在驗證資料集進入前四名的比例維持 不變,同樣是 70%;training data 為 241 個時,欲觀看節目排名在驗證資料集進 入前四名的比例上升了 2%來到了 72%,隨後,training data 為 300 個時維持不 29.
(37) 變;training data 為 448 時,欲觀看節目排名在驗證資料集進入前四名的比例為 個時一樣為 78%;training data 為 611 個時,欲觀看節目排名在驗證資料集進入 前四名的比例上升至 82%;training data 為 801 個時,欲觀看節目排名在驗證資 料集進入前四名的比例為 93%;training data 為 1083 個時,欲觀看節目排名在驗 證資料集進入前四名的比例為 95%。由情境範例 1 和情境範例 2 可知,欲觀看 節目排名在驗證資料集進入前四名的比例經歷過下降之再回升的階段後,便會 穩定回升,也可以知道,兩者 training data 都是最少的情境下欲觀看節目排名在 驗證資料集進入前四名的比例卻有很大差距的原因,應該都是跟情境範例 2 的 時間範圍雖然也是週一至週日,但是觀看的時間區間是兩個,而情境範例 1 只 有一個時間區間有關。在時間範圍同樣是週一至週日的情況下,兩個時段的情 境的訓練效果會比一個時段的情境的訓練效果好得多。. 30.
(38) 情境範例 3 實驗結果. 圖 4-3.情境範例 3 欲觀看節目排名在驗證資料集進入前四名的比例. (見圖 4-3) 我們的測試資料數量為 241 個 training data,基於此測試資料, 我們看到,training data 為 24 個時,欲觀看節目排名在驗證資料集進入前四名的 比例只有 4%;training data 為 77 個時,欲觀看節目排名在驗證資料集進入前四 名的比例急遽上升了 22%,來到了 26%;training data 139 個時,欲觀看節目排 名在驗證資料集進入前四名的比例上升了 34%來到了 60%;training data 為 232 個時,欲觀看節目排名在驗證資料集進入前四名的比例上升的幅度趨緩,只上 升了 9%;training data 為 272 個時,欲觀看節目排名在驗證資料集進入前四名的 比例更是只上升了 2%,來到 72%;training data 為 419 個開始,到最後的 875 個 則是都維持在 88%。 和情境範例 1 及情境範例 2 相比,時間範圍為週一至週五 31.
(39) 的情境範例 3 訓練效果明顯好了許多,欲觀看節目排名在驗證資料集進入前四 名的比例的曲線少了上升再下降的部分,而是多了快速上升與平緩的部分。在 訓練上,將時間範圍從周一至週日這樣相對大的範圍抽取出週一至週五,做更 細的分類會讓訓練效果更穩定。. 情境範例 4 實驗結果. 圖 4-4.情境範例 4 欲觀看節目排名在驗證資料集進入前四名的比例. (見圖 4-4) 我們的測試資料數量為 272 個 training data,基於此測試資料, 我們可以看到,training data 為 36 個時,欲觀看節目排名在驗證資料集進入前 四名的比例為 13%,對比於情境範例 3,情境範例 4 在 training data 最少的情況. 32.
(40) 下的欲觀看節目排名在驗證資料集進入前四名的比例比前者多了 9%;training data 為 98 個時,欲觀看節目排名在驗證資料集進入前四名的比例猛然上升了 48%,來到了 60%;training data 為 136 個時,欲觀看節目排名在驗證資料集進 入前四名的比例和 training data 為 98 個時一樣為 60%;training data 為 218 個及 266 個時,欲觀看節目排名在驗證資料集進入前四名的比例都是 72%;training data 為 475 個時,欲觀看節目排名在驗證資料集進入前四名的比例上升了 23%,欲觀看節目排名在驗證資料集進入前四名的比例來到了 95%,接著, training data 為 541 個時上升了 1%,最後,training data 為 762 個和 876 個時, 欲觀看節目排名在驗證資料集進入前四名的比例到達 100%。情境範例 4 中,有 三個階段的欲觀看節目排名在驗證資料集進入前四名的比例前者和後者一樣, 由這點來看,情境範例 4 和情境範例 3 相比,更為穩定。. 33.
(41) 第肆節 實驗結果分析. 圖 4-5.綜合情境比較. (見圖 4-5)綜合以上四個情境,我們可以發現情境範例 1(藍線)和情境範例 2(橘線)這兩種時間範圍都是週一至週日的情境在欲觀看節目排名在驗證資料集 進入前四名的比例上,曲線較為相近,這兩者的 training data 都是在 600 個左右 時開始趨於穩定上升,情境範例 3(綠線)和情境範例 4(紅線)這兩種情境在有較 為相近欲觀看節目排名在驗證資料集進入前四名的比例上,曲線較為相近,然 而,這兩者的時間範圍不一樣,他們的區別是情境範例 3 是工作日,情境範例 4 是假日,這兩種都是更細的分類,也更符合我們看電視的習慣,這兩者的共通 點為 : 欲觀看節目排名在驗證資料集進入前四名的比例一開始會迅速上升,接 著開始有兩個比例相同的情況,training data 在 400 個左右開始趨於穩定,故我 們可以把情境範例 1 和情境範例 2 分為一組,把情境範例 3 情境範例 4 分為一 34.
(42) 組,這兩組的主要差異為時間範圍的不同,結果是前者在 training data 為 600 個 時欲觀看節目排名在驗證資料集進入前四名的比例開始趨於穩定,而後者欲觀 看節目排名在驗證資料集進入前四名的比例則是在 training data 為 400 個時趨於 穩定,換言之,後者的時間範圍分類的訓練效果更好。. 35.
(43) 第伍章 結論 使用主動式學習的推薦系統因為使用者使用的頻率不高,而有學習資料不 足的問題。所以我們希望透過使用者點選的觀看紀錄,對使用者行為進行資料 增量。根據使用者,產生情境與相應的資料,來增加使用 Active Learning 的推 薦系統資料量,以預先得到良好的學習。 本論文採用強化式學習的 Policy Gradient 與主動式學習結合的動態節目導 覽推薦系統為例來做資料增量的研究。考量到大部分的人都有各自的生活與觀 看節目的習慣,所以觀看行為會有某些規律性,所以為了產生符合一般人習慣 的模擬訓練資料,我們設計不同的情境來產生模擬資料以訓練類神經網路。一 種情境就代表一種收看習慣,一個人也可能同時擁有多種收看習慣,因此我們 對每種情境都做資料增量。 根據我們假設的情境產生增量的資料後,我們發現,當情境分為時間範圍 週一至週五,以及週六至週日時,訓練效果最好,需要的 training data 只需要 400 個左右便會有不錯的訓練結果。 所以透過 Active learning 和 Policy Gradient 的結合,佐以情境式模擬資料搭 配資料增量,確實可以改善資料收集困難的問題,快速得到良好的推薦結果。. 36.
(44) 參考文獻 [1] Chang, N., Irvan, M., & Terano, T. (2013). A TV program recommender framework. Procedia Computer Science, 22, 561-570.. [2] N. Rubens, M. Elahi, M. Sugiyama, and D. Kaplan (2015). Active Learning in Recommender Systems, Chap. 24 of Recommender Systems Handbook, 2nd Ed., Editors: F. Ricci, L. Rokach, B. Shapira, Springer-Verlag, New York, USA.. [3] Elahi, M., Ricci, F., & Rubens, N. (2014, September). Active learning in collaborative filtering recommender systems. In International Conference on Electronic Commerce and Web Technologies (pp. 113-124). Springer, Cham.. [4] Felder, R. M., & Brent, R. (2009). Active learning: An introduction. ASQ higher education brief, 2(4), 1-5.. [5] 黃文吉,楊日鳳,徐雅盈”OTT/OTA模組開發合作研究”,資策會結案報 告,2019.. [6] Kaelbling, L. P., Littman, M. L., & Moore, A. W. (1996). Reinforcement learning: A survey. Journal of artificial intelligence research, 4, 237-285.. [7] 楊日鳳, ”使用強化式學習於時間序列預測之應用”, 國立台灣師範大學,2019.. 37.
(45) [8] Elahi, M., Ricci, F., & Rubens, N. (2014, September). Active learning in collaborative filtering recommender systems. In International Conference on Electronic Commerce and Web Technologies (pp. 113-124). Springer, Cham.. [9] PyQt: https://riverbankcomputing.com/software/pyqt/intro.. [10] xlwings: https://www.xlwings.org/.. [11] TitanTV: https://titantv.com/default.aspx.. [12] 爬蟲: https://www.selenium.dev/.. 38.
(46)
Outline
相關文件
另外我們還可以觀察到,在 1930 年以後的一段時間,人口
(六)訓練單位應於甄試日前二個工作日,完成報名資料登錄 TIMS 系統事宜。TIMS
動態時間扭曲:又稱為 DTW(Dynamic Time Wraping, DTW) ,主要是用來比
sort 函式可將一組資料排序成遞增 (ascending order) 或 遞減順序 (descending order)。. 如果這組資料是一個行或列向量,整組資料會進行排序。
所以 10 個數字 個數字 個數字 個數字 pattern 就產生 就產生 就產生 就產生 10 列資料 列資料 列資料 列資料 ( 每一橫 每一橫 每一橫
想要設計一個具有兩個輸入G(gate閘控)和 D(data資料)以及一個輸出Q的閘控閂電 路。當G等於1時,在輸入D出現的二進位資料
8th UNWTO Asia/Pacific Executive Training Program on Tourism Policy and Strategy Bali (只有英文版). 參考案例
• 不過,如果是為調查及懲處嚴重不當行為(並不限於罪案)的目的而使用 的個人資料,則受《 私隱條例》第58條所豁免 ,以致有關資料不受保障資