(1)其分析的資料為何?(2) 其應用為何? (3) 要達成該應用有什麼問題需要解決?
https://competitions.codalab.org/competitions/17119
- facebook chatbot with persistent personality
- 機器學習 影片產生 Text2Video 新演算法可根據文字片段產生影片
來自美國杜克大學的幾位電腦科學家日前指出,已能透過機器學習,讓電腦程式根據文字片段自動產生短片。這套演算法以類神經網路為模型,分為兩個階段運作,目的是模仿人類創造藝術的方式。
在第一階段時,研究人員以選定的文字建立影片「主旨」,即一張模糊的背景影像和模糊的斑點(也就是主要動作發生的中心)。第二階段則結合「主旨」和文字,一起產生短片。該演算法除了能自動製作一般影片,還能產生不合邏輯的短片,如「在雪地裡航行」或「在游泳池打高爾夫球」。但研究員表示,目前根據文字而成的影片只能達32幀、維持1分鐘,大小為64×64像素。只要超過這些限制,影片的準確度就會下降。(詳全文)
- 知識圖譜公司 alexandria 微軟創辦人之一Paul Allen最近發布一項新AI計畫:Project Alexandria,旨在發展通用AI。艾倫將在未來3年以125萬美元資助這項計畫和艾倫人工智慧研究所(AI2)的其他作業。艾倫表示,雖然AI技術在過去幾年突飛猛進,但目前仍無法解決常識性問題,比如「在垃圾桶裡通常會看到什麼?」。其實,AI2的CEO Oren Etzioni在一份聲明中提到,AlphaGo在2016年打敗世界圍棋冠軍時,根本不知道圍棋是格狀棋盤遊戲。
因此,新計畫Project Alexandria將整合和利用AI2的其他計畫,包括Aristo(機器閱讀和推理)、Euclid(自然語言理解)和Plato(電腦視覺)來發展擁有綜合常識的AI。(詳全文)
-
虛擬貨幣
Context based recommendation的研究一直因為沒有好的訓練資料而受限;其中從使用者評論萃取有用訊息的準確度也是一大考驗。
此外,推薦系統在初始狀態因為缺乏使用者評論而無從訓練起,更是該領域最大的難題(冷啟動問題 Cold-start)。
該論文提出一解決方案:透過蒐集知名網站(tripadvisor.com等等)上使用者對於餐廳的評價,若能有準確的訊息萃取技術(Information Extraction Technology),
便有望解決缺乏訓練資料以及訊息萃取不佳的問題,再將萃取過後的使用者評論,結合推薦演算法,最終能優化餐廳推薦系統並解決冷啟動問題(Cold-start)問題。
下圖為本論文分析的資料:
作者分別建立四種分類或訊息萃取(Information Extraction)的工具,從使用者評論萃取出出4種Feature:
- 時間
- 節日
- 地點
- 伴侶、一同前往用餐的人
實驗過程如下:
- 驗證使用者評論,對於推薦系統的Top-K效能的提升(Top-K的驗證,與搜尋引擎驗證相仿,使用者如果去推薦的Top-K餐廳用餐,就算是relevence的data,以是否去用餐來判斷Top-K效能)
- 預測使用者對該餐廳的評分(使用者會給餐廳1~5顆星)
其論文的結論為:
-
使用者光顧餐廳的行為,的確會被其他網友的評論所影響,因而改變用餐意願。
-
但是無論蒐集多少網友對餐廳的評論,也無法提升預測使用者給餐廳評分(給1~5顆星)的準確度,作者推測:使用者選擇大家所推薦、人氣高的店是人之常情,但是給分卻完全是出自於使用者自身的所有用餐經驗,去對該店環境、服務品質、餐點、價位等等去做一綜合性評價。此時網友評論的影響力就微乎其微了。
隨著愈來愈多開源的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,
並定義了幾個新名詞:
- Primitive Interests:上述例子中的慢跑鞋因為存在於Wikipedia頁面中,所以是Primitive Interests
- Hierarchical Interests:慢跑鞋屬於鞋子和慢跑的類別,鞋子和慢跑為使用者的Hierarchical Interests
由於傳統作法只能依據entity做推薦,不易了解使用者對於各類別的興趣,所以本文希望分析使用者所有發文,將文中的entity轉換成Hierarchical Interests
並以樹狀結構表示,為每一使用者建立屬於自己的Hierarchical Interest Graph,
如此就能推論出想買慢跑鞋意味著喜歡慢跑,也能依據建立出來的Hierarchical Interest Graph,
知道使用者對於各類別的興趣,也就是broader interest。
然而,想透過Wikipedia建立hierarchy會遇到幾個困難:
- Wikipedia的Category包含cycle,需要進行前處理
- 處理過後,Category與sub-category仍然為many-to-many關係,導致不為taxonomy
- 此為架構圖:
使用者的Twitter發文為input,先辨別出文章中的entity後,結合Wikipedia Hierarchy
最後形成使用者個人的Hierarchical Interest Graph,以了解使用者top-10的興趣主題
經過37位使用者問卷調查後,在使用者興趣top-10中得到88%的precision。
precision@的意思是?
- 其應用為何?
- Word2Vec 已經可以做到很好的word embedding, 不過structure data的embedding呢?
例如一首歌、一部電影? 他提出一個Item Concept Embedding
,能比較好的表示item,將有益於推薦系統、IR、分類等各式各樣議題。
- Word2Vec 已經可以做到很好的word embedding, 不過structure data的embedding呢?
- 其分析的資料為何?
- 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越小越接近收斂。
- 要達成該應用有什麼問題需要解決?
- evaluation有點難,在retrival問題上面,ground truth的設定也不是太好
- 目前的研究都是focus在homogeneous的embedding,但是hetergeneous在現實世界中其實很常遇到,例如:在搜尋歌、電影、書的時候,是在計算這些item跟單字的similarity,如果有一個很強的embedding,就可以大幅改進搜尋引擎了。
- 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:
W愈大(用愈多關鍵字表示item),效果愈好,expanded relation就還好,因為他擴充的時候沒有權重,非0則1所以多少會造成傷害。
-
Word to Movie retrieval:
從同一類型的電影中(例如驚悚類)的敘述裏面,
用TF-IDF挑出top20 (有點怪怪的,不同文章的tf-idf分數可以拿來一起比較嘛?)
然後用這top20當作query去執行IR的任務。這是會用各自的方法,把query轉成vector,然後movie也是vector,看看誰的搜尋結果最好。 -
Word to Song Retrieval:
用心情、地點和時間當作query,單字是從這三類挑出tf-idf top5的單字,所以共15個query單字,因為歌曲的IR問題沒有ground-truth,所以他用兩種評判方式:
- 歌詞有包含query的就算是relavent
- 歌詞有包含query的任一個top-k similar words的就算relavent
-
- 缺點:
- 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
- 心得:
- 用information gain收斂去當作objective function很有趣
- augmented function也提供新思路
- 分析的資料:1.68 billion web pages.
- 應用:做出一個isA的Ontology
- 要達成這個應用,需要解決:
- 解法:
- evaluation:
- coverage:使用bing的query log,使用者下的query裏面contains at least one concept or instance within the taxonomy 就算covered by a taxonomy,probase測出來有81%
- isA relationship:就人工看R
[Unsupervised Pretraining for Sequence to Sequence Learning](http://aclweb.org/anthology/D17-10390
- 分析的資料:句子
- 要解的問題:seq2seq用在翻譯問題上面,是用labeled data去train,但是很難涵蓋到各式各樣的翻譯語句,這時如果seq2seq他generalization能力很強的話,即使遇到從沒看過的資料也可以回答的不錯。所以本篇希望透過unsupervised pretraining去提升seq2seq的generalization能力。unsupervised的task應該是auto encoder。
- 遇到的難題:用pretrained的encoder和decoder去跑seq2seq的時候,他會太過fit label data,進而傷害generalization(unsupervised task做的很差)
- 解法:讓seq2seq loss跟upsupervised loss的權重調一樣,就可以維持generalization能力
想確認客製化的embedding對於分類問題的效能有沒有提升
用ontology去做一個消歧義的word2vec
- evaluation:
- Similarity Scoring:用幾個知名資料集算
book, paper → 7.46
這類的任務,因為他演算法算出來的分數一定跟gold standard不一樣,所以他算完之後跟gold standard算Spearman’s rank correlation coefficient相關係數
,就知道他做的好不好 - Synonym Selection:有TOFEL-80這種正式dataset,會給選擇題
rug → sofa, ottoman, carpet, hallway
你要選 carpet 最後就可以算acc
- Similarity Scoring:用幾個知名資料集算
- 分析的資料為何:word embedding matrix,本文就是要壓縮這個矩陣
- 壓縮後可以放到手機上、edge computing的裝置
- 面對的困難是:盡可能再壓縮的時候不要損害performance,本文用sentiment analysis和machine translation作為evaluation
大綱:原本的word2vec要儲存V個Vector
他希望用M個K進制的編碼來儲存來表示這些向量
有點像是對word2vec再次做embedding
如圖:
而這M個K進制的編碼該怎麼形成向量呢?
它是每個K進制的編碼都對應到一個vector
最後sum起來來表示這個字
所以他只要儲存MK個vector 空間小很多
公式:
loss function:
loss function是l2 norm,訓練的方式是類似auto encoder
希望train出來的向量跟原本的向量不要差太多
code length其實不太重要,他只是算給你看這個編碼要用幾個bit去存而已
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起來得到最後答案
壓縮完在sentiment analysis的task表現如下
本篇只是部落格
所以記錄一些小心得
- Image Embedding 對於推薦很有幫助 -> 用 ImageNet inception V3進softmax layer前的feature當作image的vector即可,教學影片
- 用LSTM去讀使用者過去的購買記錄來做購買的預測也很有用 ->
Predicting next purchases
- 協同過濾用auto encoder結合matrix factorization很有用
心得:原本分析user behavior,要先假設user有某種行為,然後以此行為當作目標去把這類的user挑出來並分析
但是這些user可能根本沒多少或是不存在
clustering的做法只是把順序調換,先之後我們有哪些user再去挑想要分析的user看他有哪些行為
-
分析的資料:
-
其應用為何:
知道使用者的behavior有什麼意義對於service provider來說當然重要
他能幫助產品改善使用者體驗
-
達到目的需要解決什麼問題: 而過去關於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應該是每天只想來抽卡的使用者
-
大綱:
- 計算clickstream S1, S2之間的similarity
- 按照similarity畫出一個有權重的similarity graph
- 用Divisive Hierarchical Clustering去把graph切開成C1, C2
- 用Chi-square statistics (χ2)把C1 dominating的feature拿掉,這樣才可以再次分類
- 重複步驟3,直到切開不會improve clustering modularity就停止
-
modularity公式:
-
物理意義:切那一刀下去,subset的degree越多越好,切開後subset之間數量越平均越好
-
如果不切任何一刀的話,就可以算自己目前的modularity
-
- evaluation:
- 挑出惡意使用者當作ground truth,就可以算clustering的accuracy
- 證明cluster的結果是易讀的:請實驗者看這一群的dominant feature是怎樣的clickstream ngram(例如:抽卡->停留5分鐘內->下線),user可能會說這群人就是只抽卡,最後請專家來看這些user標出來的label是否具有一致性 -> 結論,越小的subcluster越難標出一致性的評語,不太容易歸類成我們常見的行為
- case study:仔細去看某幾個cluster的行為,例如:某個cluster被標為hostile user,這時他們提出假設,這些人可能常常發一些會引來惡意批評、騷擾的文,所以他們常常封鎖別人,仔細分析發現他們常常發一些色腥膻的文,所以常被性騷擾.藉此來證明,clustering可以有效找到好的group並從中講一些故事
把電商的衣服做embedding
- 其分析的資料為何? user的年齡、GPS、性別、國家 + 圖片
- 其應用為何? 預測圖片的hashtag
- 要達成該應用有什麼問題需要解決?