# PyCon TW 2017 Collaborative Talk Notes <br> Day 2 - R2 > ### Quick Links > - [Portal for Collobration Notes 共筆統整入口](http://beta.hackfoldr.org/pycontw2017/) (hosted by [betw.hackfoldr](http://beta.hackfoldr.org/) and [HackMD](https://hackmd.io/)) > - [Program Schedule 演講列表](https://tw.pycon.org/2017/events/talks/) > - [PyCon TW 2017 Official Site 官網](https://tw.pycon.org/2017/) > > ### How to update this note? > - Everyone can *freely* update this note. 任何人都能自由地更新內容。 > - Please respect all the participants and follow our [code of conduct](https://tw.pycon.org/2017/about/code-of-conduct/) during discussion. 討論、記錄時,請遵守大會的[行為準則](https://tw.pycon.org/2017/about/code-of-conduct/) > ### 10:40-11:10 <br> Talk: [How we use Deep Learning to classify more than 80,000 photos a day on PhotoGrid](https://tw.pycon.org/2017/events/talk/341985748934721645/) - 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](https://github.com/tensorflow/models/tree/master/inception) 3.46% - Human 5.1% - ImageNet裡面那些獵豹的label不是我們要的,但我們可以用transfer learning來把電腦學到的經驗轉移到我們需要的領域 - 經驗是可以保留的,我們只需要 Retrain 最後一層(softmax層),前面幾層的weight可以保留 - 想要解決的問題:如何篩掉不適當的照片、推薦客戶合適的圖? - 作法:準備色情圖片之類不適當的照片並分門別類,作為dataset來retrain並test - 幾百張的training圖已可以得到可接受的第一版結果 ### 11:30-12:15 <br> Talk: [對話機器人的腦子與靈魂 Bot's Brain and Soul](https://tw.pycon.org/2017/events/talk/386517422489731217/) - 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 <br> Talk: [鄉民教我做的聊天機器人](https://tw.pycon.org/2017/events/talk/381653012197671055/) - Slider: [slide傳送門](https://www.slideshare.net/RyanChao3/pycon2017-chatbot) - Linebot傳送門: https://line.me/R/ti/p/%40nlj2850e - Speaker: Ryan Chao - 電影字幕作為資料源 - 資料發散,不容易收斂 => 先過濾出日常用語 - seq2seq => 大部分的回答都是「我不知道」 - PTT 資料源 - 八卦板標題和推文會有應對關係 => 問答 - 發文量大的看板有此特性 - 透過 Django 做爬蟲、機器人的管理 - 檢索引擎 1. 利用使用者輸入比對最像的標題 2. 排序做回應 - Jaccard Simularity - [BM25](https://read01.com/kG8RON.html) - 針對重要的字給予較大權重 - tf 對短句比較不好用 => 用詞性作為權重 - 斷詞器 - 結巴(jieba)沒有辦法處理顏文字 => 改善字典 - 加入 PTT 用詞 - word2vec - 輸入的詞找不到標題 => 用 word2vec 找相似的詞 - 肥宅? => 魯宅 - 如何評估檢索系統 - MAP (Mean Average Precision) - 需要事前人工標注是否為相關 label。太麻煩 - NDCG (Normalized Discounted Cumulative Gain) - 用原有標題的推文作為標準答案 => 找到答案的機率太低 - 降低標準,用語意的 Cosine simularity 作為判斷 - [x] doc2vec (gensim) - [ ] RNN-encoder - Ranking Consideration - 推文時間, ... ### 14:05-14:35 <br> Talk: [Why do projects fail? Let's talk about the story of Sinon.PY](https://tw.pycon.org/2017/events/talk/321329184263635026/) - Slider: [Link](https://www.slideshare.net/ssuser2cbb78/pycon-tw-2017-why-do-projects-fail-lets-talk-about-the-story-of-sinonpy) - Speaker: Kir Chou ### 16:30-17:15 <br> Talk: [利用 Python 與人工智慧快速打造人性化聊天機器人](https://tw.pycon.org/2017/en-us/events/talk/sponsored/利用python與人工智慧快速打造人性化聊天機器人/) - Slider: - Speaker: 吳志忠 - [Source code](https://git.ng.bluemix.net/tommywu/pyconbot2017/blob/master/run.py) ### 17:25-18:10 <br> Talk: [Chatbot @ E.Sun Bank – 玉山小i 隨身金融顧問的兩三事](https://tw.pycon.org/2017/en-us/events/talk/sponsored/chatbot-esun-bank-玉山小i-隨身金融顧問的兩三事/) - Slider: [Link](https://drive.google.com/file/d/0B8hlay_yY5e7QTE0U3JDUXloeXM/view) - Speaker: 林鉦育 - [Source code](https://github.com/ntuaha/Py_FBM)