Skip to content

Instantly share code, notes, and snippets.

@luckmoon
Forked from david30907d/論文閱讀心得.md
Created April 7, 2020 03:14
Show Gist options
  • Save luckmoon/d83fb0f877f8c0ffdaac032538ba1b0a to your computer and use it in GitHub Desktop.
Save luckmoon/d83fb0f877f8c0ffdaac032538ba1b0a to your computer and use it in GitHub Desktop.
所有讀過的論文都寫在這邊!!

看論文要注意的三點

(1)其分析的資料為何?(2) 其應用為何? (3) 要達成該應用有什麼問題需要解決?

Ontoloty比賽

https://competitions.codalab.org/competitions/17119

需要看的論文

  1. facebook chatbot with persistent personality
  2. 機器學習 影片產生 Text2Video 新演算法可根據文字片段產生影片

來自美國杜克大學的幾位電腦科學家日前指出,已能透過機器學習,讓電腦程式根據文字片段自動產生短片。這套演算法以類神經網路為模型,分為兩個階段運作,目的是模仿人類創造藝術的方式。

在第一階段時,研究人員以選定的文字建立影片「主旨」,即一張模糊的背景影像和模糊的斑點(也就是主要動作發生的中心)。第二階段則結合「主旨」和文字,一起產生短片。該演算法除了能自動製作一般影片,還能產生不合邏輯的短片,如「在雪地裡航行」或「在游泳池打高爾夫球」。但研究員表示,目前根據文字而成的影片只能達32幀、維持1分鐘,大小為64×64像素。只要超過這些限制,影片的準確度就會下降。(詳全文)

  1. 知識圖譜公司 alexandria 微軟創辦人之一Paul Allen最近發布一項新AI計畫:Project Alexandria,旨在發展通用AI。艾倫將在未來3年以125萬美元資助這項計畫和艾倫人工智慧研究所(AI2)的其他作業。艾倫表示,雖然AI技術在過去幾年突飛猛進,但目前仍無法解決常識性問題,比如「在垃圾桶裡通常會看到什麼?」。其實,AI2的CEO Oren Etzioni在一份聲明中提到,AlphaGo在2016年打敗世界圍棋冠軍時,根本不知道圍棋是格狀棋盤遊戲。

因此,新計畫Project Alexandria將整合和利用AI2的其他計畫,包括Aristo(機器閱讀和推理)、Euclid(自然語言理解)和Plato(電腦視覺)來發展擁有綜合常識的AI。(詳全文)

  1. Learning Semantic Hierarchies via Word Embeddings

  2. probase

  3. 像集雅一樣,把圖片跟文字放到同一個向量空間中

  4. 虛擬貨幣

論文閱讀心得

Context based recommendation的研究一直因為沒有好的訓練資料而受限;其中從使用者評論萃取有用訊息的準確度也是一大考驗。

此外,推薦系統在初始狀態因為缺乏使用者評論而無從訓練起,更是該領域最大的難題(冷啟動問題 Cold-start)。

該論文提出一解決方案:透過蒐集知名網站(tripadvisor.com等等)上使用者對於餐廳的評價,若能有準確的訊息萃取技術(Information Extraction Technology),

便有望解決缺乏訓練資料以及訊息萃取不佳的問題,再將萃取過後的使用者評論,結合推薦演算法,最終能優化餐廳推薦系統並解決冷啟動問題(Cold-start)問題。

下圖為本論文分析的資料:

img
作者分別建立四種分類或訊息萃取(Information Extraction)的工具,從使用者評論萃取出出4種Feature:

  1. 時間
  2. 節日
  3. 地點
  4. 伴侶、一同前往用餐的人

實驗過程如下:

  1. 驗證使用者評論,對於推薦系統的Top-K效能的提升(Top-K的驗證,與搜尋引擎驗證相仿,使用者如果去推薦的Top-K餐廳用餐,就算是relevence的data,以是否去用餐來判斷Top-K效能)
  2. 預測使用者對該餐廳的評分(使用者會給餐廳1~5顆星)

其論文的結論為:

  1. 使用者光顧餐廳的行為,的確會被其他網友的評論所影響,因而改變用餐意願。

    • (圖一):img
  2. 但是無論蒐集多少網友對餐廳的評論,也無法提升預測使用者給餐廳評分(給1~5顆星)的準確度,作者推測:使用者選擇大家所推薦、人氣高的店是人之常情,但是給分卻完全是出自於使用者自身的所有用餐經驗,去對該店環境、服務品質、餐點、價位等等去做一綜合性評價。此時網友評論的影響力就微乎其微了。

    • (圖二):img

隨著愈來愈多開源的Knowledge Base資料(Freebase、Wikidata etc.),愈來愈多研究是透過深度學習去學習Knowlege Base,以達成Knowledge Completion和question answering等問題

但是因為Knowledge Base資料量龐大,導致推論關聯性、問題回答等應用速度緩慢

用怎樣的結構去存取Knowledge Base是當前重要的問題。

Word2vec作者(前google研究員,現任Facebook研究員)透過類似Word2vec的架構,僅使用一層hidden layer、線性模型以及使用霍夫曼編碼樹架構結合softmax(hierarchical softmax based on the Huffman coding tree)

就能達到準確的文本分類!本文以freeBase為訓練資料,將原本需要透過GPU訓練數天的時程,壓縮到使用CPU也只需要十幾分鐘。

此模型就是Facebook於2016開源的文本分類工具 fastText

實驗結果:透過fastText將Knowledge Completion和question answering轉換成分類多類問題(multiclass multilabel classification probelm)

結合Bag-of-Words,發現其準確度接近state-of-the-art且訓練時間僅僅數分鐘。

結論:證明一個簡單的線性模型,也能在分類問題上得到很好的準確度。

隨著社群媒體(Twitter, Facebook)的流行,根據平台上使用者的發文,確認使用者的興趣、嗜好去進行推薦儼然成為熱門議題及應用

但是,如何從發文中辨別使用者的興趣是一大挑戰。傳統的entity-based作法,通常使用Wikipedia上的語料,去辨別使用者發文中出現的entity。

例如:> Now the sensible thing to do would be to conserve the money I have. But I want a new pair of trainers

entity-based方法會以字串比對的方式,發現慢跑鞋是Wikipedia的某一頁面,進而確認為entity,

最後根據慢跑鞋這個entity去推薦其他慢跑鞋的廣告、文章等;另一傳統作法利用使用者當前所瀏覽的網頁session作為依據,進而推薦同類型文章、商品。

這兩類作法雖能準確抓到慢跑鞋這個entity,但卻不了解使用者喜歡慢跑這件事情。該論文希望透過Wikipedia的Category去建立Wikipedia Hierarchy,

並定義了幾個新名詞:

  1. Primitive Interests:上述例子中的慢跑鞋因為存在於Wikipedia頁面中,所以是Primitive Interests
  2. Hierarchical Interests:慢跑鞋屬於鞋子和慢跑的類別,鞋子和慢跑為使用者的Hierarchical Interests

由於傳統作法只能依據entity做推薦,不易了解使用者對於各類別的興趣,所以本文希望分析使用者所有發文,將文中的entity轉換成Hierarchical Interests

並以樹狀結構表示,為每一使用者建立屬於自己的Hierarchical Interest Graph,

如此就能推論出想買慢跑鞋意味著喜歡慢跑,也能依據建立出來的Hierarchical Interest Graph,

知道使用者對於各類別的興趣,也就是broader interest。

然而,想透過Wikipedia建立hierarchy會遇到幾個困難:

  1. Wikipedia的Category包含cycle,需要進行前處理
  2. 處理過後,Category與sub-category仍然為many-to-many關係,導致不為taxonomy
  • 此為架構圖:

img

使用者的Twitter發文為input,先辨別出文章中的entity後,結合Wikipedia Hierarchy

最後形成使用者個人的Hierarchical Interest Graph,以了解使用者top-10的興趣主題

img

經過37位使用者問卷調查後,在使用者興趣top-10中得到88%的precision。

投影片

precision@的意思是?

  1. 其應用為何?
    • Word2Vec 已經可以做到很好的word embedding, 不過structure data的embedding呢?
      例如一首歌、一部電影? 他提出一個Item Concept Embedding,能比較好的表示item,將有益於推薦系統、IR、分類等各式各樣議題。
  2. 其分析的資料為何?
    • IMDB的電影敘述和KKBOX的歌詞 他提出一個自己的augmented matrix,把item也經由word去表示成vector,而word則是先用word2vec先計算過相似度之後(挑選topk個),然後才用boolean matrix去表示一個字的vector(假設一個字挑選top3個跟他最similar的word,則這個字的vector就是在top3的column為1其他為0)。知道word的vector後,一個item也用tf-idf挑出topk去表示他的vector。都用vector去表示item跟word之後合併起來作為augmented matrix,放入跟word2vec一樣的network去訓練,期望softmax會越接近正解,至於一個item放進去,他該output哪個字的機率最高呢? 從他的文本中算出來的機率去當作答案。而objective function為information gain, gain越小越接近收斂。
  3. 要達成該應用有什麼問題需要解決?
    • evaluation有點難,在retrival問題上面,ground truth的設定也不是太好
    • 目前的研究都是focus在homogeneous的embedding,但是hetergeneous在現實世界中其實很常遇到,例如:在搜尋歌、電影、書的時候,是在計算這些item跟單字的similarity,如果有一個很強的embedding,就可以大幅改進搜尋引擎了。
  4. Evaluation:
    • 參數解釋:W是指用幾個字代表一個item(用tf-idf挑top20)、ICE(exp-3)代表expanded relation擴充3個,舉例:先train word2vec,然後每個字挑top3當作同義字,跟悲傷most similar的top3就被當作是同義字,在text-text network中把expanded relation畫上去,再從這個矩陣去擴充item-text network。

    • 其他baseline介紹:

      • BPT:他自己ICE方法的閹割版,沒有expanded relation,一個item用topk tf-idf單字去表示一個item這部份則跟ICE一樣。
      • AVGEMB:把電影介紹topk tf-idf單字的word2vec相加取平均。
    • Movie genre classification:img W愈大(用愈多關鍵字表示item),效果愈好,expanded relation就還好,因為他擴充的時候沒有權重,非0則1所以多少會造成傷害。

    • Word to Movie retrieval:img從同一類型的電影中(例如驚悚類)的敘述裏面,用TF-IDF挑出top20 (有點怪怪的,不同文章的tf-idf分數可以拿來一起比較嘛?) 然後用這top20當作query去執行IR的任務。這是會用各自的方法,把query轉成vector,然後movie也是vector,看看誰的搜尋結果最好。

    • Word to Song Retrieval:d用心情、地點和時間當作query,單字是從這三類挑出tf-idf top5的單字,所以共15個query單字,因為歌曲的IR問題沒有ground-truth,所以他用兩種評判方式:

      1. 歌詞有包含query的就算是relavent
      2. 歌詞有包含query的任一個top-k similar words的就算relavent
    • Diverse and Relavent by ConceptNet:F

  5. 缺點:
    • expanded relation直接用transititive去套用,把expanded relationship直接套用transitive,用非零則一表示有點粗糙...
    • 分類問題沒跟w2v比較
    • 用out degree有幾個字,去平分機率當作softmax正確的機率output,去訓練會有點草率,舉例:悲傷有擴充3個字,難過、傷心、悲痛共3個,所以悲傷的vector輸入進去network,難過、傷心、悲痛的sofmax的正確答案都是0.33333,但是評分機率感覺不太妙,如上面所說的因為一開始matrix的transitive我就沒被說服了...
    • 我覺得可以用https://openreview.net/pdf?id=SyK00v5xx裡面的方法去解決sentence embedding的問題,就不用像本篇,用tfidf相加vector然後來表示一個item
  6. 心得:
    • 用information gain收斂去當作objective function很有趣
    • augmented function也提供新思路
  1. 分析的資料:1.68 billion web pages.
  2. 應用:做出一個isA的Ontology
  3. 要達成這個應用,需要解決:
    1. 自然語言的語意有時候很模糊,現形採用的方法叫作 Hearst Pattern:e.q. domestic animals such as cats 就可以知道 cat isA domestic animals,但是來個counter example,animals other than dogs such as cats就會擷取成 cat isA dog。probase要提出一種方法解決Hearst Pattern出錯的這種情況 img
    2. problem definition1: img
    3. problem definition2: img
  4. 解法:
    1. notation: notation
    2. Algorithm: alg
    3. description: des
  5. evaluation:
    1. coverage:使用bing的query log,使用者下的query裏面contains at least one concept or instance within the taxonomy 就算covered by a taxonomy,probase測出來有81%
    2. isA relationship:就人工看R

[Unsupervised Pretraining for Sequence to Sequence Learning](http://aclweb.org/anthology/D17-10390

  1. 分析的資料:句子
  2. 要解的問題:seq2seq用在翻譯問題上面,是用labeled data去train,但是很難涵蓋到各式各樣的翻譯語句,這時如果seq2seq他generalization能力很強的話,即使遇到從沒看過的資料也可以回答的不錯。所以本篇希望透過unsupervised pretraining去提升seq2seq的generalization能力。unsupervised的task應該是auto encoder。
  3. 遇到的難題:用pretrained的encoder和decoder去跑seq2seq的時候,他會太過fit label data,進而傷害generalization(unsupervised task做的很差)
  4. 解法:讓seq2seq loss跟upsupervised loss的權重調一樣,就可以維持generalization能力

想確認客製化的embedding對於分類問題的效能有沒有提升

用ontology去做一個消歧義的word2vec

  1. evaluation:
    1. Similarity Scoring:用幾個知名資料集算 book, paper → 7.46 這類的任務,因為他演算法算出來的分數一定跟gold standard不一樣,所以他算完之後跟gold standard算 Spearman’s rank correlation coefficient相關係數,就知道他做的好不好
    2. Synonym Selection:有TOFEL-80這種正式dataset,會給選擇題 rug → sofa, ottoman, carpet, hallway 你要選 carpet 最後就可以算acc
  1. 分析的資料為何:word embedding matrix,本文就是要壓縮這個矩陣
  2. 壓縮後可以放到手機上、edge computing的裝置
  3. 面對的困難是:盡可能再壓縮的時候不要損害performance,本文用sentiment analysis和machine translation作為evaluation

大綱:原本的word2vec要儲存V個Vector

他希望用M個K進制的編碼來儲存來表示這些向量

有點像是對word2vec再次做embedding

如圖:

img

而這M個K進制的編碼該怎麼形成向量呢?

它是每個K進制的編碼都對應到一個vector

最後sum起來來表示這個字

所以他只要儲存MK個vector 空間小很多

公式:

formula

loss function:

loss function

loss function是l2 norm,訓練的方式是類似auto encoder

希望train出來的向量跟原本的向量不要差太多

code length比較:code length

code length其實不太重要,他只是算給你看這個編碼要用幾個bit去存而已

network架構圖:

network

從這裡就可以看出是個auto encoder,loss function前面介紹過

D matrix是個one-hot encoding的matrix

尺寸是V*K,任意一個單字,會被mapping到K個dimension中的一個

A的尺寸則是K*H,舉例:K是8,八進制的編碼,假設某個字用的編碼是7

會去找D matrix轉成one-hot encoding

7 -> 10000000

...

0 -> 00000001

再用one-hot encoding去A matrix找向量

A這個matrix就會是

0:[1,b,c,...h]

...

6:[2,b,c,...h]

7:[3,b,c,...h]

所已找到的就是[3,b,c,...h]

再套上面的公式把M個編碼的vector sum起來得到最後答案

formula

壓縮完在sentiment analysis的task表現如下

img

本篇只是部落格

所以記錄一些小心得

  1. Image Embedding 對於推薦很有幫助 -> 用 ImageNet inception V3進softmax layer前的feature當作image的vector即可,教學影片
  2. 用LSTM去讀使用者過去的購買記錄來做購買的預測也很有用 -> Predicting next purchases
  3. 協同過濾用auto encoder結合matrix factorization很有用

心得:原本分析user behavior,要先假設user有某種行為,然後以此行為當作目標去把這類的user挑出來並分析

但是這些user可能根本沒多少或是不存在

clustering的做法只是把順序調換,先之後我們有哪些user再去挑想要分析的user看他有哪些行為

Packed Circle

視覺化套件

  1. 分析的資料:

    1. event category:

      events

    2. These five discrete time buckets: <1s, [1s, 1min],(1min, 1h],(1h, 1day], > 1day, represented by g1, g2, g3, g4 and g5, respectively. Using these synbol to compose a clickstream,也就是本文的inputdata: clickstream

  2. 其應用為何:

    result

    知道使用者的behavior有什麼意義對於service provider來說當然重要

    他能幫助產品改善使用者體驗

  3. 達到目的需要解決什麼問題: 而過去關於user clustering的研究,多半需要很多label data

    所以要舉辦很多場使用者研究來做深度訪談,又貴又慢

    而且使用者有時候也沒有意識到自己的行為是屬於哪個群體

    然後又只能去驗證known behavior(例如按照問卷問:你是否覺得註冊流程很煩瑣、你是否覺得...)

    然後把所有勾「註冊很繁瑣」的人挑出來看他們的behavior,這樣只能改善known behavior的流程

    但是還有很多user behavior是我們不知道的,比如說:惡意用戶常常送交友邀請(送的量是正常用戶的好幾倍)

    在不知道有惡意用戶的情況下,是不會想到要下sql把交友邀請數量很高的人拿出來檢查

    所以就沒辦法發現原來我們的user有這種behavior (惡意用戶,用機器人狂發交友邀請假裝自己是真人)

    這些就是unknown behavior

    本文希望提出unsupervised clustering的方式

    來解決時間、規模、使用者自我覺察和unknown behavior的問題

    何謂unknown behavior?

    如果我想知道Dcard有多少使用者是只想抽卡的

    那就要先定義符合「抽卡」category的behavior

    例如:抽卡event -> ( 論壇 or 回信 ) < 10分鐘 這樣的behavior,然後去下sql把這些user撈出來,這樣就叫known behavior

    明顯的缺點是光是定義behavior就很麻煩,而且這樣能辨別到的user group很有限

    unknown behavior則是先分群,然後去解讀這個群的behavior應該是每天只想來抽卡的使用者

  4. 大綱:

    1. 計算clickstream S1, S2之間的similarity
      1. 用n-gram去表示clickstream的sequence, define Tk as the set of all possible kgrams (k consecutive elements) in sequence S: Tk(S) = {kgram|k-gram = (sj sj+1...sj+k−1), j ∈ [1, n + 1 − k]}.

      2. 把S1跟S2之間的ngram都集中到Set T裡面

      3. 以該ngram出現在S1, S2的次數去形成向量

      4. 用normalized Polar Distance算similarity

        normalized Polar Distance

    2. 按照similarity畫出一個有權重的similarity graph graph
    3. 用Divisive Hierarchical Clustering去把graph切開成C1, C2 hierarchy
    4. 用Chi-square statistics (χ2)把C1 dominating的feature拿掉,這樣才可以再次分類
    5. 重複步驟3,直到切開不會improve clustering modularity就停止
      1. modularity公式:

        youtube影片

      2. 物理意義:切那一刀下去,subset的degree越多越好,切開後subset之間數量越平均越好

      3. 如果不切任何一刀的話,就可以算自己目前的modularity

    6. evaluation:
      1. 挑出惡意使用者當作ground truth,就可以算clustering的accuracy
      2. 證明cluster的結果是易讀的:請實驗者看這一群的dominant feature是怎樣的clickstream ngram(例如:抽卡->停留5分鐘內->下線),user可能會說這群人就是只抽卡,最後請專家來看這些user標出來的label是否具有一致性 -> 結論,越小的subcluster越難標出一致性的評語,不太容易歸類成我們常見的行為
      3. case study:仔細去看某幾個cluster的行為,例如:某個cluster被標為hostile user,這時他們提出假設,這些人可能常常發一些會引來惡意批評、騷擾的文,所以他們常常封鎖別人,仔細分析發現他們常常發一些色腥膻的文,所以常被性騷擾.藉此來證明,clustering可以有效找到好的group並從中講一些故事

把電商的衣服做embedding

  1. 其分析的資料為何? user的年齡、GPS、性別、國家 + 圖片
  2. 其應用為何? 預測圖片的hashtag
  3. 要達成該應用有什麼問題需要解決?

user embedding

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment