Try   HackMD

PyCon TW 2017 Collaborative Talk Notes
Day 2 - R2

How to update this note?

  • Everyone can freely update this note. 任何人都能自由地更新內容。
  • Please respect all the participants and follow our code of conduct during discussion. 討論、記錄時,請遵守大會的行為準則

10:40-11:10
Talk: How we use Deep Learning to classify more than 80,000 photos a day on PhotoGrid

  • Slider: http://goo.gl/BEzf10

  • Speaker: Brad Chang

    • ImageNet 有大量有label的圖片,可供圖片辨識用

    • 2012 Alexnet 用GPU做了類神經網路,Top-5 Error rate 大幅下降到16.4%

    • 2015 ResNet 3.57%

    • 2015 Google InceptionV3 3.46%

    • Human 5.1%

    • ImageNet裡面那些獵豹的label不是我們要的,但我們可以用transfer learning來把電腦學到的經驗轉移到我們需要的領域

    • 經驗是可以保留的,我們只需要 Retrain 最後一層(softmax層),前面幾層的weight可以保留

    • 想要解決的問題:如何篩掉不適當的照片、推薦客戶合適的圖?

    • 作法:準備色情圖片之類不適當的照片並分門別類,作為dataset來retrain並test

    • 幾百張的training圖已可以得到可接受的第一版結果

11:30-12:15
Talk: 對話機器人的腦子與靈魂 Bot's Brain and Soul

  • Slider:

  • Speaker: 陳縕儂

  • Intellengence Assistance Architecture

    • Reactive Assistance:使用者說了話,機器人做反應
    • Proactive Assistance:機器人事先預測使用者需要的資訊,先提醒使用者
  • GUI v.s. CUI (Conversational UI)

    • GUI: 資訊量較多,操作以點選為主,需要去學習如何操作介面
    • CUI: 資訊較精準,操作以文字和語音為主,跟一般對話相像
  • Bots 兩大發展分支

    • Task Oriented
      • 幫助使用者完成任務
      • 能快速完成工作較好
    • Chit Chat
      • 與使用者閒聊
      • 能持續聊天越久越好
  • System Framework

    • Speech Signal → Speech Recognition
    • Language Understanding (LU)(Current bottleneck )
      • Domain Identification
      • Intent Prediction
      • Slot Filling
    • Dialouge Management(DM)
      • State Tracking:不直接追蹤明確的 path,而是透過機率分佈來尋找可能的 path
    • Policy
    • Generation
  • Interaction Example:

    • Input: Find a good eating place for Taiwanese food
    • Language Understanding:
      • Domain identification:
        • [V] Restaurant database
        • Taxi Database
        • Movie Database
      • Intent detection:
        • eating place
        • Restaurant database:
          • [V] FIND_RESTAURANT
          • FIND_PRICE
          • FIND_TYPE
      • Slot filling:
        • 對於餐廳有一些要求:good
        • Restaurant database
          Restaurant Rating Type
          R1 Good Taiwanese
          R2 Bad Thailand
          .. .. ..
    • Dialogue State tracking:
      • Requires hand-crafted states
      • Real case:
        • Find a good eating place for Taiwanese food
        • Find a good eating place for taiXXX food
          • Detail state 找不到的時候,其實沒辦法決定
          • Understanding model可能不夠好
          • 說了下一句話的時候state可能還會更複雜
      • 大部分的方式:
        • 維持一個state的機率分佈
        • 不直接追蹤明確的路徑,而是用最有可能的機率轉換
          • 類似Markov model找最大機率路徑
    • Dialogue policy for agent action
  • Deep Learning for Dialogues

    • IOB Sequence labeling for slot filling:
      • 根據每一個node給定一個y
        • 透過recurrent neural network
        • 把每一個input的字都標出一個y
      • Intent classificaiton
        • 標完整句話才做使用者意圖的辨識
    • Contextual LU
      • 前後文的理解
    • Supervised vs. Reinforcement
      • Supervised:
        • 一個問題對一個問題的回答
        • 像是老師一題一題交
      • Reinforcement:
        • Learning from critics
        • 碰到問題才會修改回答問題的方式
        • e.g.,: 回答十個問題之後發現顧客生氣了
          • 最後才回去思考前面哪一步沒有train好
          • 要最佳化的目標:最後能夠完成整體的task
          • 不知道現在這一步能不能讓最終結果滿意
          • 也不知道失敗的時候是前面哪一步做壞了
        • 但至少會得到user的reward
  • App behavior for understanding

    • Challenge: Language ambguity
    • e.g., Send message to Vivian
      • 用簡訊傳,還是用Email傳?
  • Evolutional roadmap

    • 希望可以從單一domain延伸到多domain
    • 有沒有辦法從舊有domain、或已知domain的information,進行transfer learning到新的domain上?
  • High-level intention for dialogue planning

    • 根據高階資訊:
      • 分割成數個小的task
      • 讓bot學會這件事
  • Empathy in dialogue system

    • 根據使用者的回覆判斷情緒
    • 根據情緒當成reward (?)確定有沒有學好
  • Conclusion

    • 定義Semantic schema
      • Cross-domain knowledge
    • Human-like dialogue system
      • Robustness
      • dialogue coverage
  • Q: Language Generation要怎麼做Evaluation,怎樣才算是符合文法?怎樣算是合理的回答?

    • 判定很主觀
    • 很多研究會導入Human Evalutaion
    • 目前還是一個Open Question
  • Q: 目前關於情緒判斷,是否已經到了Production了?

    • 尚未到Production
    • 這樣的問題很難做,其中一個原因在於資料很難收集
    • 另一個原因是,就算沒有辦法判斷情緒,通常也不會造成太大的問題。不像意圖如果判斷錯誤,就會提供錯誤的服務

13:25-13:55
Talk: 鄉民教我做的聊天機器人

  • Slider: slide傳送門
  • Linebot傳送門: https://line.me/R/ti/p/%40nlj2850e
  • Speaker: Ryan Chao
    • 電影字幕作為資料源

      • 資料發散,不容易收斂 => 先過濾出日常用語
      • seq2seq => 大部分的回答都是「我不知道」
    • PTT 資料源

      • 八卦板標題和推文會有應對關係 => 問答
        • 發文量大的看板有此特性
    • 透過 Django 做爬蟲、機器人的管理

    • 檢索引擎

      1. 利用使用者輸入比對最像的標題
      2. 排序做回應
        • Jaccard Simularity
        • BM25
          • 針對重要的字給予較大權重
          • tf 對短句比較不好用 => 用詞性作為權重
    • 斷詞器

      • 結巴(jieba)沒有辦法處理顏文字 => 改善字典
        • 加入 PTT 用詞
    • word2vec

      • 輸入的詞找不到標題 => 用 word2vec 找相似的詞
      • 肥宅? => 魯宅
    • 如何評估檢索系統

      • MAP (Mean Average Precision)
        • 需要事前人工標注是否為相關 label。太麻煩
      • NDCG (Normalized Discounted Cumulative Gain)
        • 用原有標題的推文作為標準答案 => 找到答案的機率太低
          • 降低標準,用語意的 Cosine simularity 作為判斷
            • doc2vec (gensim)
            • RNN-encoder
    • Ranking Consideration

      • 推文時間,

14:05-14:35
Talk: Why do projects fail? Let's talk about the story of Sinon.PY

  • Slider: Link
  • Speaker: Kir Chou

16:30-17:15
Talk: 利用 Python 與人工智慧快速打造人性化聊天機器人

17:25-18:10
Talk: Chatbot @ E.Sun Bank – 玉山小i 隨身金融顧問的兩三事