<style>
span.em{
color:#b10500;
font-weight: 500;
}
.blueP{
color:#5391c0;
font-weight: none;
}
.source{
color: gray;
font-size: 13px;
}
</style>
<p>「數據分析」結合「機器學習」，探勘書市商機</p>
<p>誰在買書？買什麼書？這是規劃出版與行銷計畫時，需考量的因素，過去僅能用專業經驗判斷，現在透過資料分析與機器學習，可以用客觀的科學輔佐主觀的決策。中央研究院資訊科學研究所陳昇瑋研究員，帶領資料洞察實驗室，找出書籍銷售數據中潛藏的商機。</p>
<h2 class="writingsH2"><strong>資料科學：先搞懂如何發生，再讓它發生</strong></h2>
<img src="/wp-content/uploads/2020/02/book-sale-data-20170315-01-1.png" alt="" width="1026" height="601" class="alignnone size-full wp-image-10795" />
<p class="source">資料分析的四個階段：描述、診斷、預測、指示。資料來源│Gartner     圖說改編│張語辰</p>
<p>資料分析並非輸入數據、按下 Enter 鍵，就能得到立即性的結果，其工作至少可分為四個層次：</p>

<p>1.描述：瞭解眼前發生了什麼，例如讀者是什麼樣貌</p>

<p>2.診斷：用電腦來診斷眼前這件事為何發生，例如某些書籍的銷售為什麼特別好</p>

<p>3.預測：未來會不會發生某件事，例如預測新書的銷售表現</p>

<p>4.指示：如何促進某件事在未來發生，例如建置自動薦購系統或上架小工具，幫助提升新書銷售；或是幫書籍做更合適的命名以及封面設計</p>

<blockquote><p><span class="em">資料分析跟淘金一樣困難，若沒有以正確的方式使用合適的工具，什麼價值也淘不出來。</sapn></p></blockquote>


<p>分析原始資料就像在砂礫中淘金，雖然不用冒著日曬雨淋的痛苦，但需長時間與電腦折騰，結合數學、統計、機器學習、資料探勘與資料視覺化的專業，整理資料的邏輯，找出隱藏在數據中的含意。若遇到非結構化的資料，在分析前尚需花額外的心力半自動或手動地將之轉換為結構化資料，才能使用分析技術來處理。但正因資料分析可以找出隱藏在數據中的洞察、輔助人類的思維，是一門值得投資心力的科學。</p>
中研院陳昇瑋團隊與博客來合作，將 2014 年 12 月 至 2016 年 3 月間的匿名購書資料，結合政府資料開放平臺的數據，包含各個地區的綜合所得稅申報情況、教育程度、2016 年總統大選得票數等，探討購書行為和讀者生活型態的相關性，將不同購書客群之間的「差異性」數據化，藉以回答誰在買書、買什麼書、什麼書會暢銷……等問題，進而將資料科學的思維引入出版界，讓出版人不用再只是憑著經驗及感覺選書及做書。
<img src="/wp-content/uploads/2020/02/book-sale-data-20170315-02.png" alt="" width="1026" height="601" class="alignnone size-full wp-image-10802" />
<p class="source">博客來各類購書讀者：性別 x 年齡（資料區間為 2014 年 12 月 至 2016 年 3 月間）資料來源│陳昇瑋提供</p>

<h2 class="writingsH2"><strong>一樣米養百樣人，一種書也養百種人</strong></h2>
<p>在規劃出版與行銷策略時，有一個盲點常被忽略：</p>

<blockquote><p><span class="em">不能將同一個書籍類別的讀者，都視為同樣一個族群。</sapn></p></blockquote>


<p>過往看銷售報表與會員資料時，經常會把讀者視為只有一種樣貌：例如財經讀者就是白領階級。但陳昇瑋與團隊定義「差異式讀者樣貌分析」，一層一層深入子類別探勘資料，證實同一個書籍類別亦存在「多重客群」。</p>

<p>以「小說」這個大類別為例，愛看「小說」的不會只是同一群人，例如都是戴著眼鏡的文青。同性愛小說和愛情小說的讀者主要是年輕人，而歷史武俠和文學研究的小說，讀者群以長輩為主。若進一步深入分析武俠小說中的「金庸」這個子類別，更存在兩種主要客群： 15 歲以下的青少年和 40 ~ 50 歲的中年人。</p>

<p>這反應出一個課題：出版與行銷規劃需更分眾、更精準，無論是溝通的宣傳語言、購買的行銷版位，皆需考慮多重客群的存在。</p>
<img src="/wp-content/uploads/2020/02/book-sale-data-20170315-03.png" alt="" width="1026" height="601" class="alignnone size-full wp-image-10804" /><p class="source">自然語言處理的演變。 圖說設計│林婷嫻、張語辰</p>

<h2 class="writingsH2"><strong>從購書數據一窺社會現象</strong></h2>
<p>世間男女情愛糾葛，李組長眉頭一皺發現事情並不單純，這種社會議題不只在電視劇或新聞中出現，也顯現於購書行為中。</p>

<p>在商業理財的類別，存在許多教導如何成功的書，數據顯示 25 歲以前偏好購買「生涯規劃」類的成功經驗書籍，而 30 歲之後改買如何「致富」的成功指導書籍，顯示 30 歲大關是人生覺悟的交叉點，與其花時間規劃生涯卻前途迷茫，快速致富還比較實際，但也可能因為 30 歲之後除了養自己也要養家人，肩膀壓力更重了。</p>

<p>另一方面，低收入族群偏向購買「投資理財」、「網路創業開店」的書籍，高收入族群則偏向購買「傳記」、「快樂學」的書籍，顯現 M 型社會下兩種不同人生方向與思維，有錢人需要學習如何快樂，而中產階級正朝著累積財富努力。</p>


<blockquote><p><span class="em">「外遇離婚」相關的書籍，會購買的族群大多年收入超過 70 萬，年收入越高，購買者越多，箇中含意不便多加著墨。</sapn></p></blockquote>


<p>若將男性與女性消費者購買的書籍類別和數量，以書籍關鍵字作成文字雲，明顯看出男女想法大不同。在「心理勵志」這個書籍類別中，男性多關注「把妹、正妹、搭訕」，書中自有顏如玉是從古至今不變的智慧。而女性多關注「幸福、療癒、女人」，顯示現今女人越來越懂得要愛自己，是個樂見其成的社會風氣。</p>
<img src="/wp-content/uploads/2020/02/book-sale-data-20170315-04.png" alt="" width="4172" height="3755" class="alignnone size-full wp-image-10807" />
<p class="source">博客來讀者性別偏好的差異：心理勵志類為例（資料區間為 2014 年 12 月 至 2016 年 3 月間）資料來源│陳昇瑋提供</p>
<img src="/wp-content/uploads/2020/02/book-sale-data-20170315-05.png" alt="" width="1000" height="900" class="alignnone size-full wp-image-10810" />
<p class="source">博客來讀者性別偏好的差異：飲食類為例（資料區間為 2014 年 12 月 至 2016 年 3 月間）資料來源│陳昇瑋提供</p>
<p>無論是賣書或餐飲業，都值得注意年輕人與長輩的喜好差異。「甜點、雞尾酒、廚藝、咖啡」相關書籍熱銷，與近來市場上年輕族群的甜點學校、咖啡開店熱潮相輔相成。而長輩較喜歡「健康、養生、好吃」相關書籍，對於市場而言，開發同時符合健康及好吃需求的餐飲，是顯著的商機。</p>



<blockquote><p><span class="em">「養生」這個書名關鍵字，在「飲食類」受到長輩歡迎，但在「醫療保健類」在銷量上並沒有同樣得到大眾的青睞。</sapn></p></blockquote>



<p>陳昇瑋與團隊以「書名關鍵字」，找出關鍵字與暢銷書之間的相關性。在醫療保健類發現，「養生」這個關鍵字不受到讀者歡迎，反而是「名醫、改善、療法、奇蹟」這類關鍵字能抓住讀者的眼球與荷包。也許這反應出一個醫療保健現況：在一秒鐘幾十萬上下的今日，人們不注重花費時間經營的健康之本──日常養生，而是在症狀出現時追求速效的醫療結果。</p>
<img src="/wp-content/uploads/2020/02/book-sale-data-20170315-06.png" alt="" width="1026" height="901" class="alignnone size-full wp-image-10811" />
<p class="source">書名關鍵字與銷量的相關性：以博客來醫療保健類別為例（資料區間為 2014 年 12 月 至 2016 年 3 月間）
資料來源│陳昇瑋提供</p>

<p>教電腦擷取人名，是相對單純的工作，因為人名的結構有跡可循。</p>

<p>中文人名通常是三個字、或兩個字，甚至能參考百家姓、某一年考生的所有名字來建立資料庫，例如「慧」、「婷」常出現在女性人名中，而「雄」這個字常用在男性人名中。從統計機率來看，有些字則是不可能作為人名使用。人名的前後文也會有一些暗示訊息，例如「XXX 表示…」、「 XXX 做了…」、「執行長 XXX」。當電腦分析訓練用的文章資料，自己找出這些規律，電腦就能學會判斷某些未知詞是否為人名。</p>

<p>此外，「複合詞」也是舉不勝舉的未知詞來源。</p>

<p>中文的複合詞，由相當隨性的詞性結構組成，例如「趣味性」，隨意置換字尾，就變成「趣味感」或是「趣味化」。複合詞的字差一點點，就能延伸許多詞意，這讓電腦需辨識的詞彙量變得無比龐大。這部分透過前輩們的研究，漸漸找出複合詞的組成邏輯，整理在中央研究院漢語平衡語料庫(標記了一千多萬個詞彙)，也整理出常用詞首、詞尾字資料庫。</p>

<p>目前斷詞系統中的複合詞主要是針對「名詞複合詞」，但其實我們也在「動詞複合詞」上也累積了不少研究。舉一個實例來說明，例如「開聊」和「聊開」：</p>
<img src="/wp-content/uploads/2020/01/ma-natural-language-processing-06.jpg" alt="" width="4167" height="1697" class="alignnone size-full wp-image-10581" />
<p class="source">(「開」的複合動詞結構舉例。 資料來源│〈現代漢語複合動詞之詞首詞尾研究〉，作者：邱智銘、駱季青、陳克健)</p>

<p>從語言學的角度，動詞是句子的核心，也是最重要的中心語。「開」這個字有著動詞中心語的起始功能 (inchoative)，然而放在詞首、詞尾不同位置會產生些微差異。</p>

<p>除了人名、複合詞，新聞或網路文章還會看到許多新創的專有詞，例如：非典( SARS 重症非典型肺炎的簡稱)、河蟹(意指封鎖、掩蓋負面消息)。這類專有詞可以透過 bottom-up merging algorithm (合併字詞演算法)處理。</p>

<p>以「河蟹」為例，透過合併字詞演算法分析新聞、網路文章等資料，電腦會發現：通常「河」後面就是「蟹」，「蟹」前面就是「河」，「河蟹」兩個字一起出現的統計機率蠻高的，而且整組詞意無法單用「河」或「蟹」的各別字意取代。因此，電腦就會判斷「河蟹」最可能是個專有詞、並做出斷詞。</p>

<p>此外，就算是字典當中已經有的詞彙，有時候仍然會有不同斷詞的情況，我們必須根據上下文決定哪一種斷法才是正確的。例如：「努力才能成功」的「才能」應該切分為兩個詞彙：「才」和「能」，語義接近英文的 “to make"；而「他的領導才能很突出」的「才能」是一個詞彙，不可切分，在此表達英文的 “ability" 的意思。</p>
<img src="/wp-content/uploads/2020/01/ma-natural-language-processing-07.jpg" alt="" width="4167" height="1038" class="alignnone size-full wp-image-10590" />
<p class="source">(語言學家會把這樣子的斷詞標注清楚，供電腦進行機器學習。經過不同語句的大量標注，電腦最後會自己學會利用「才能」的上下文做判斷。 資料來源│馬偉雲說明)</p>

<h2 class="writingsH2"><strong>電腦理解「詞」了，那「句子」呢？</strong></h2>
<p>學會斷詞、並理解個別的詞義之後，下一步我們就要使電腦學會理解整個句子的意思。例如「張三打李四」和「李四被張三打」，兩個句子雖然句型不同，但是語義卻是一樣。</p>


<blockquote><p><span class="em">我們怎麼表達句子的語義呢？答案是透過「結構樹」。</sapn></p></blockquote>


<img src="/wp-content/uploads/2020/01/ma-natural-language-processing-08.jpg" alt="" width="4167" height="2351" class="alignnone size-full wp-image-10592" />
<p class="source">(「張三打李四」和「李四被張三打」，兩個句子的結構樹。 資料來源│馬偉雲說明)</p>


<p>我們將每個詞彙集結成片語，再把每個片語標記上它所扮演的語義角色 (semantic role)。「張三」在兩個結構樹中都是「打」的發動者 (agent) 的角色，而「李四」都是「打」的對象 (goal) 的角色。如此一來，透過包含語義角色的結構樹，我們可以得知這兩個句子擁有相同的語義。</p>

<p>先透過人工訂好結構樹的表達，下一步就是要利用機器學習，使電腦能夠自動針對每一句產生出正確的結構樹。歷年來，中文詞知識庫小組從中央研究院漢語平衡語料庫抽取句子，經由電腦初步剖析成結構樹，再加以人工修正檢驗，共整理了六萬多個中文句結構樹圖，標注了各個中文句的語法以及語義角色，這些就形成機器學習的訓練材料，使得電腦剖析結構樹的工作越做越好。</p>

<p>自然語言處理的進展到了這裡，斷詞有解，句子結構及語義有解，但還有另一個難題──曖昧不清的指代詞。</p>

<p>寫作時為了避免某些詞重複出現，會使用別的指代詞，像是「他」、「某某職稱」等等。用句子舉例，「張三打李四，他很痛」，覺得痛的人究竟是誰？除了考量語句結構，也需基於常識和上下文來理解。</p>

<p>若要教電腦理解指代詞、處理「指代消解」(Coreference Resolution) 的問題，有兩種方式。一種較傳統，用程式語言寫好所有判定的人工規則，好處是較精準，壞處是有其侷限，因為列舉的規則不可能對應至世間所有指代情形。另一種是機器學習的方式，當電腦分析所有訓練文章的上下文發現：幾乎都是被打的李四感到痛，「他 = 李四」這個相關性的機率即為最高，進而做為電腦日後判斷的準則。</p>

<h2 class="writingsH2"><strong>自然語言處理的方法，有因「深度學習」而改變嗎？</strong></h2>
<p>近年來蓬勃發展的深度學習 (Deep Learning)，提出了另一種方法來教電腦表達詞彙。這種方法是將詞彙轉換為「詞向量」，也就是 Word Vector 或稱 Word Embedding，作法是讓電腦閱讀大量文章，利用前後文的統計特性，慢慢學習出每一個詞彙的詞向量，不必利用任何語言學知識。</p>
<img src="/wp-content/uploads/2020/01/ma-natural-language-processing-04.jpg" alt="" width="4167" height="2309" class="alignnone size-full wp-image-10594" />
<p class="source">(詞向量的概念。(其中的向量數字為舉例) 資料來源│馬偉雲 圖說重製│林婷嫻、張語辰)</p>


<p>舉例來說，傳統的符號學中，「蝴蝶」、「瓢蟲」、「爬」是不同的三個詞彙。但改成用向量思考，「蝴蝶」和「瓢蟲」的向量距離就會比較近，「蝴蝶」和「爬」的向量距離就會比較遠，隨著訓練的文本越來越多，電腦可以自動調整各個詞彙的向量，解決訓練資料不足的問題，並提升電腦的抽象化思考。</p>

<p>運用「詞向量」的好處是，很多時候針對特定的自然語言處理任務，訓練資料是不足的。因為許多字詞的語義，在人類語感上明明意思很接近、可以相通，但對機器來說，詞彙符號(也就是字元)不同，就是截然不同的詞彙，造成各個詞彙在訓練資料的統計佔比相當低，無法得到足夠信心水準的分析結果。</p>

<p>然而，訓練過程中，若我們以「詞彙向量」作統計，在向量空間上，有些字詞間的向量很靠近，團結力量大，就會發現相近的詞彙向量在訓練資料的統計佔比大幅提升，解決了訓練資料不足的困境。同時，詞彙向量在深度學習的模型之中，被視為可修改的參數，所以也具備了語義(詞彙向量)自動調整的能力。</p>




<blockquote><p><span class="em">You shall know a word by the company it keeps.</sapn></p></blockquote>


<p><a href="https://en.wikipedia.org/wiki/John_Rupert_Firth" target="_blank">John Rupert Firth</a> 這句古老的語言學名言，恰巧能說明「詞向量」的思維。其實每個詞就像一個人，若想了解這個人，可以觀察他身旁的人是什麼模樣，也就是物以類聚的概念。</p>

<p>我們團隊目前嘗試結合「傳統詞彙符號」與「詞向量」，共同從事自然語言處理的任務、以及教電腦表達知識。傳統詞彙符號的好處，在於提供清晰的解釋與穩定的應用，而詞向量可以解決訓練資料不足的困境，並且提供語義(詞彙向量)自動調整的能力。這兩者的長處互補，結合起來具有很高的學理價值、更多應用突破。</p>

<h2 class="writingsH2"><strong>自然語言處理，有什麼用？</strong></h2>
<p>其實，自然語言處理的用途，已經悄悄在我們身邊幫上許多忙。</p>
<img src="/wp-content/uploads/2020/01/ma-natural-language-processing-09.jpg" alt="" width="4167" height="3334" class="alignnone size-full wp-image-10597" />
<p class="source">(自然語言處理，常見的後續應用。 資料來源│李宏毅演講 圖說重製│林婷嫻、張語辰)</p>

<p>例如，運用「摘要文本大綱」的能力，電腦可以擔任助手，幫助連睡覺時間都快沒有的醫生閱讀最新的醫學報告、篩選醫學文獻，找出眼前這位病患的病徵，可能跟哪些疾病相關、或是服用某種藥物可能有哪些副作用。像是 2017 年台北醫學大學，就導入 IBM 的 Watson for Oncology (人工智慧治療輔助系統) ，協助醫師診斷致病機制複雜的癌症。</p>

<p>現在許多人遇到地震、颱風等災害，第一步是上社群媒體發佈消息，例如哪裡的大樓倒了、哪些親友失聯了、各地需要捐助多少物資等等。若運用自然語言處理，讓電腦自動搜集、分析這些社群媒體的文本，就能幫助整合災情、協助救援。</p>

<p>另外，輿情分析、聊天機器人等熱門應用，其基礎也需要先讓電腦理解人類所使用的語言，掌握其中的句法結構、分析字裡行間的情緒，才能統計輿情、或讓機器人做出適當的聊天回應。</p>

<p>自然語言處理，是時間的累積。從民國 75 年到現在，中研院資訊所和語言所合作建立許多語料庫和線上系統，我們很歡迎公家機關和公益團體無償使用，也歡迎有需求的單位來討論合作方式。</p>

<h2 class="writingsH2"><strong>為什麼會對「讓電腦擁有語言能力」感到著迷？</strong></h2>
<p>我很幸運十幾年前有機會進入這個領域，那時候很驚嘆：怎麼會有一種學問，可以把「語言學」和「計算機科學」結合在一起。</p>



<blockquote><p><span class="em">語言是很複雜的現象，語言也代表人類的智慧，像是我們的思緒、意識，很多都是透過語言來展現。</sapn></p></blockquote>


<p>1999 年那時候，我在交大電腦科學與資訊工程系碩士班是做語音辨識，那時候我只懂「聲音訊號」的處理，很好奇「語言」這塊怎麼讓電腦了解。當時和中研院接觸，知道中研院做了很多自然語言處理的工作，例如蒐集大量語料，用計算機的方式把語言的統計特性找出來。</p>

<p>後來我來到中研院服國防役，從研究助理做起，跟著陳克健老師研究中文的斷詞切分，也逐漸發現原來理解語言有非常多面向，包含：語音、詞彙本身的學問、語法結構(這句話怎麼說才合理)、語義解讀(這句話是什麼意思)，還有「語用」，也就是什麼時候講這句話、為什麼要這樣講。</p>

<p>2006 年之後，我到美國哥倫比亞大學的電腦科學系讀碩博士，除了博士論文是做機器翻譯，也在那裡的實驗室研究電腦的 Q&A 系統：問電腦問題，讓電腦讀過一堆文獻後回答，這些文獻資料包含中文、英文和阿拉伯文，三種語言混合運用。因為國防上的需求，美國國防部需要透過電腦幫助，了解這些文本在說什麼。</p>

<p>有些對人工智慧發展的疑慮是，在近年電腦深度學習的運算過程中，不知道為什麼會這樣得出結果、難以控制電腦。但現在有一種發展方向，叫做「可解釋人工智慧」(Explainable AI)，明確了解電腦運算過程，藉以優化表現、降低人們擔憂。舉例來說，當 IBM 的 Watson for Oncology 建議醫生要開刀治療病患，醫生也得知道電腦分析文本的過程、為什麼會下這個決策，不是電腦控制人而已。</p>


<blockquote><p><span class="em">至於之前曾傳出 Facebook 的 AI 對話失控，其實是過度擔憂。</sapn></p></blockquote>



<p>因為這只是 Facebook 工程師教電腦學會「談判」的過程中，電腦自動將對話內容表達地極簡再極簡、能通就好。</p>

<p>當初唸書時，「自然語言」很冷門，跟別人說也不知道這是什麼東西，因為那時人工智慧在商業上還沒有實際應用，和我們的生活還很遙遠。選擇這個領域並不是因為有遠見，只是基於好奇參與、覺得這很有趣，過程就看到自然語言處理 (NLP) 蓬勃發展至今。</p>

本文經<a href="https://www.facebook.com/research.sinica/" target="_blank">研之有物</a>授權刊登，原文<a href="https://research.sinica.edu.tw/nlp-natural-language-processing-chinese-knowledge-information/" target="_blank">刊載於此</a>