# 專題進度追蹤 滷肉飯:ip: 140.113.87.168 portal: eugene0422 password: adg463321 ### 3/10 大 meeting: 1.從future work去想或是想點小改變,改進performance,這學期先把code改好 2.下學期做成應用,demo system 期末要交正式的報告要有50頁,文獻之前可以先寫著 問: 1. 教授說這學期就要接出可以動的demo聊天機器人?? 2. 要期末報告的範本?? ### 3/17 小 meeting: 1. 討論這學期規劃流程: a. 先寫一個問題回答是template版的,item跟feature都要有名字,拿陳或是李之前的那兩篇論文 - NLP版 b. 用linebot來寫、手機app c. **先把KGSF接到linebot上來跑** d. 解決server沒辦法跑KGSF的問題 e. transformer在產生字的時候是怎麼結合推薦那邊的item f. 先確定model從哪邊吃user的字,產出對話的地方推薦的地方怎麼跟推薦的東西整合,觀察結果的好壞有沒有比較有意義的句子 g. model能不能問user問題,transformer的資料集有沒有問句,沒有的話是train不出問句的,可以另外接一個model去決定要問問題還是推薦 f.資料集那些item名字要換回來,資料集要有辦法讓結果看的出 時程: 1. 下週要先把KGSF原本結果接上linebot a. KGSF b. linebot c. 期末報告 ㄧ、二 https://zx2515296964.medium.com/python-linebot-%E6%95%99%E4%BD%A0%E5%A6%82%E4%BD%95%E4%BD%BF%E7%94%A8python%E6%88%90%E5%8A%9F%E4%B8%B2%E6%8E%A5linebot-2020%E7%89%88-c98672eec44e ### 3/20 進度 Tony: linebot完成 Max: 大致複習 KGSF 的論文、思考未來可以改動的地方、研究 linebot An: 訓練完model,在看code ### 3/23 進度 Tony: 1. 每次重開linebot都要去kill掉port上的process 2. run KGSF code 3. EAR paper Max: An: EAR 接上linebot ### 3/24 大meeting 這星期的進度還有下週要做的事: 1. 研究KGSF(NLP)的code: a. 跑完KGSF b. 這部分先擱置 2. EAR+linebot: a. linebot可以用(研究顯示yes, no, 還有介面設計) b. 重train EAR model,看看要怎麼接到linebot上 c. 確定我們要用哪個資料集,重新parsing把id跟真名的那個留起來 d. 想一下變成cold-start怎麼做? e. 要設定對話的長度嗎(ex:4, 5次就要推) f. 把EARtesting那邊改成linebot要接的地方 g. 把對話流程的邏輯寫起來,ex: 1. testing user有一個知道他要買的東西,拿他本來要買的東西去回答問題 2. 系統先給一個歡迎的提示,然後使用者用template去回答,我們要設計出一個template去回答 h. 我們的proposed method可以去想想EAR面對cold-start的user時要怎麼解決,或是可以換別的推薦器,·不要用MF改成某些Sequential的方式 i. 下週可以報一下EAR的paper,跟接model跟linebot遇到的困難 j. linebot一進去可以先推hot的東西給user,可以把是非題做出button看起來很炫砲 k.不能完全的開放式問答,要給選項,要怎麼找出user可能會選的選項也是我們可以改的地方 任務: 寫50頁報告 (先寫推薦器(KVMN, GRU4Rec, Dream), CRS(Qrec, EAR, CRM)) EAR paper 接model 問學長的問題: 1. Q: EAR要用Yes/No question?假設說linebot問一個問答的問題,user要怎麼回答問題 A: linebot要給他表單讓user去選要回答什麼 2 Q: 一個新的人進來,隨便assign系統裡的一個人 A: a.實際online上可能是使用是先推hot的東西給他然後設計去找原本有沒有跟他很相似的user b.或是要有一個cold-start user的embedding 3 Q:怎麼找回商品的圖片? A: 重新載資料集,不一定要用beauty,然後id要能對到真名跟圖片 ### 3/27 Tony: 沒 Max: 沒 ### 3/30 Tony: 看EAP paper,看code,開50頁報吿共編,打50頁報吿 Max: 沒 ### 50頁論文: 1. Knowledge graph learning and recommendation: system - Tony: - KTUP - https://hackmd.io/zQaDedbPSL6l1t9COyI-Dg 2. reinforcement learning recommendation system: - Tony: - Top-K, Slate-Q - https://hackmd.io/8ko19Om2TgeQ4B0XE50LpQ - https://hackmd.io/hhi2tkMcR9OysxDRRDwS5Q - Max: - Leveraging Demonstrations for Reinforcement Recommendation Reasoning over Knowledge Graphs - https://hackmd.io/rJHkhsyrSfapOjb0_N61QQ 3. session-based recommendation system: - Tony: - KSR - https://www.cnblogs.com/Lee-yl/p/11986218.html - Max: - GRU4REC - https://hackmd.io/hwIedgimSoC47DjHpRoXyQ 4. CRS: - Tony: - Qrec - https://hackmd.io/FGKfzbFyTg2qIN0YC7QSiA - KGSF - https://hackmd.io/XqJjjOCfTxOmfnHSIaMD8Q - Max: - EAR - https://hackmd.io/o1X68YTTQ8WsujoiRM2CkA?view - CRS - https://hackmd.io/wMUCrC3CSS-Wob7p1EHtFA?view ps. 109上報告: https://docs.google.com/document/d/1w4ImOIQG_MbwuN6-73V-uAjmx77z-3zbqRBxpWw7_ow/edit 1. 不要都全部推薦 2. 不能推到最後還沒有中 3. 換資料集 4. 下禮拜要做出linebot可以demo的模式 5. 選新的資料集時可以用yelp的形式,問的entity可以做成階層式的不要一次有那麼大的action space ### 4/7問題 EAR model: 1. metadata只能載2018的,可是rating是載2014,結果會導致rating裡出現的2萬3千多個item只有6千多個有在metadata裡。 - ~~rating載2018版,資料量變多(27W->1128W)~~ - 改掉FM - rating維持2014,但是將item不在metadata中的紀錄刪掉 2. metadata給的圖片連接中,大部分圖片是模糊的,無法辨認 - 以metadata給的商品名稱在Amazon的網站搜尋圖片(?) 3. 和之前一樣model會出現問不中對的問題 - 再調整 4. item的feature選擇 - 目前是將所有item中的category底下的資訊當feature(以出現次數篩選),可是metadata中還有其他像是feature,brand等資訊 Chatbot: 1. 目前還在調整原本論文的code,把model改成class的形式去接linebot api,應該下週前可以弄出來 ps. 1個episode: S:system U:user 1. S: linebot首先要問使用者一個entity 2. U: 使用者回答yes, no 3. loop: (終止條件:hit or 含上面總共15回對答) 1. S: EAR選擇action是要推薦還是問entity 2. U: hit(Y/n) or entity(Y/n) ### 4/13 Tony: ngrok可以用在server上 problem: 1. env_demo, the user_response 怎麼將 system ask 跟 user response 接到linbot 跑 response(user_res) 得到 system res, model要在這邊等下一個user_res ### 4/14 小meeting Max => 爬蟲: 1. 用 metadata 的 url 去爬圖片 2. 用 title 直接去上網爬物品相關的資訊(e.g.商品描述、價錢...等) + 圖片 ### 4/20: Max: 使用的網站:https://www.scrapehero.com/tutorial-how-to-scrape-amazon-product-details-using-python-and-selectorlib/ 遇到的問題:我把商品的網址都收集到一個txt檔丟進去我在網路上找到的py檔去跑,總共有6000多筆結果大概最後的1000多筆資料都沒抓到資料,但是我自己一個一個測是可以的,我也有試過只跑最後1000多筆,但還是不行,不知道是什麼問題。 code在我server: **/mnt/sdb/max881230/clothing_data/amazon-scraper** 每執行一次 amazon.py 就會生成一個 output.jsonl 有加上6000的檔案是原始的資料 Tony: 1. linebot v2. a.完成yes/no介面設計 b.多個user同時使用 Q: 接下來的改進 2. 打50頁 ### 4/28 小meeting 1. 把Max_turn 調整成5次 問題: 1. 接上圖片 2. 推薦的item名縮短標註在圖片下方 3. 5127的id有問題 4. cold start的方式還沒有確定要怎麼做 ### 5/12 小meeting #### 上週進度: Tony: 1. 寫50頁報告 #### 下週進度: 1. 把model弄到可以問 2. a. 弄成一開始先輸入userid, itemid b. 弄出cold-start版本 4. 看一下推薦的list怎麼顯示、可以做成linebot carousel 現在先確定一個資料集一個方法可以跑就好,之後又跑實驗結果時可以跑多個資料集多個方法(改推薦器, ex:用 KVMN, GRU4Rec) 50頁paper可以暑假完前生出來 實驗方法 1. EAR這篇本身的實驗可以寫進去,寫參考EAR的技術還有問題設定等等 後面接著說接著EAR原本的架構我們整合了什麼東西 2. 把 linebot 架構間起來就是 3. cold-start user的處理 4. pre-train 5. 可以把推薦跟問問題拆成兩個不要用2000多個去做 ### 5/17 小meeting 1. 按S後先隨機顯示是哪個User哪個Target item 還有顯示正確的entity讓使用者可以正確回答 2. 推薦的list接上carousel跟圖片 ### 5/19 大meeting 之後方向: 1. 換推薦的模型跟資料集 RS: FM(現在), MF, KVMN, GRU4Rec dataset: clothing(現在), beauty, lastfm 3. RL 改成2階段式選action 1-layer: ask-question, recommend 2-layer: 從question裡選entity問 3. cold start模式 老師feedback: 1. 問的entity不直覺 - 問的 標題 不是直接問大標 有沒有辦法循序漸進的問?? e.g. 買房子 > 區域 > 價位 ### 5/25 小meeting 1. demo版本:先篩少一點entity(這會有點麻煩,看看能不能改問法讓問題看起來正常一點) 2. 真正實驗版本:dataset不動 a. Clothing, Shoes and Jewelry b. Beauty c. Video Game ps. train的時候可以開到20去做 testing 的時候可以有SR5, SR10, SR15, SR20去做 3. raw_data/datapreprocess.py 87行,small_meta_data看看裡面的資料 4. 先做出demo版本 #### question_map.json key:question_id value:question 0: Do you like 1: Do you prefer (材質、功能) 2: Are you looking for (名稱(特定領域的)比如說內褲、球鞋、女用內衣等) 報告可以簡單講一下 **entity 加上粗體或著引號** #### tag_question_map.json key: entity_name value: question_id ### 6/2 大meeting linebot QR code 使用方式:進入聊天室後請先輸入s開始進行demo ![](https://i.imgur.com/smho4a0.png) 本週進度: 1. hit的carousel template上加超連結的網址 2. 修正問題問法 下週進度: 1. 跑完clothing, beauty跟video_game 2. 改推薦器(MF, KVMN, GRU4Rec) 3. demo時拿比較有代表性的組 4. 製作報告影片 | Training | SR@5 | SR@10 | SR@15 | SR@20 | | ----------- | ---- | ----- | ----- | ----- | | clothing | 0% | 0% | 0.1% | 47% | | beauty | 0.5% | 0.9% | 28.9% | 44% | | video games | X | X | X | X | | dataset | length | | ----------- | ------ | | clothing | 18.4 | | beauty | 17.6 | | video games | X | 未來進度: 1. 改成兩階段選Action 2. testing時SR@5還有後面那些必須強迫他推 ### 6/10 小meeting 1. 星期一影片要交給學長 2. 星期六前生完投影片 3. 我要看一個新的RS然後實作出來 4. 要收尾了,數據跟demo要出來 5. 內容那幾個表格數字要填一填 6. 預計寫完專題報告應該是暑假結束後 7. 寫的還行的話還可以參加論文比賽、可以參加大專生計畫 小論文寫法: 第三人稱的角度去寫,不能太白話文,格式寫完再來挑,2天直接幹完 6月底前要有大綱出來 學長7月底畢業 第一章 緒論:10頁 ***ps.再寫詳細一點*** - 研究背景動機: - 講一個故事,有些人是cold start user... - 目的: - 他要解決的問題 - 技術: - 我們要設計一個demo system去研究這個問題 - 做一些小改善去解決上述問題 - 貢獻跟價值: - proposed method - 兩段式推薦 第二章 文獻探討:10頁 - 推薦系統歷史 - 還有sequential recommender system - CRS - EAR 第三章 實驗方法 - **word手打公式** - 每一章節寫為什麼要這樣改 - 3.1 - EAR實驗流程(自己畫一張 換句話說不要照抄\放最終完整版的系統流程圖) - 實驗設定\實驗方法\想解決的問題 - NOTATION的設定\開一張符號表 - demo system(linebot 的設計, 爬蟲) - 3.2 - 自己propose的方法(2階段) - 補上改進地方 - 3.3 換 RS - 先 pretrain好(跟FM比) - 講說EAR原本的推薦器不夠好,然後換成別的推薦器試試看 - 推薦器的公式、設定 第4章 實驗結果 --> 圖表 or 表格 - 4.1 - 資料集介紹、實驗設定 等 - 主實驗: - 4.2 單純推薦器的實驗 - 推薦器完整版的結果 -> 想辦法把表格拉長 - SR@1/3/5/7/9 - testing - 不同推薦器的結果 - 寫實驗目的 / 小結(比較/原因) 根據表格來寫結果 - 4.3 篩選dataset - 刪entity的改進結果(用FM就好然後3組dataset) - 刪item的改進結果(用FM就好然後3組dataset) - 刪entity/item的改進結果(用FM就好然後3組dataset) - 寫實驗目的 / 小結(比較/原因) 根據表格來寫結果 - 小結刪這兩種有效所以下面CRS的實驗都是刪兩種 - 4.4 CRS的實驗 - CRS加上原版&改版&不同推薦器的結果 - 寫實驗目的 / 小節(比較/原因) 根據表格來寫結果 - 4.5 兩段式(補充的小實驗 - 拿比較好的效果推薦器去套兩段式 - 寫實驗目的 / 小節(比較/原因) 根據表格來寫結果 - 4.6 demo system - linebot - 怎麼接api到原本的model上 第五章 結論 - 5.1 demo system - 5.2 - 我們的貢獻是哪些 - 我們的方法改善了原本paper沒考慮到的 - 更能適用在現實生活的dataset - 未來要做什麼樣的改進 ### 6/16 大meeting - 進度: - 將原版的EAR model在三個dataset跑出測試結果 - 我們改進的model的結果 - 當使用者回答是否定時,也要刪除item - 只考慮在candidate item set中有的entity去做詢問 - 兩者的結果比較 - ![](https://i.imgur.com/IDm2fJZ.png) - ![](https://i.imgur.com/1uw1XVd.png) - 做出期末的報告和影片 - 之後預計要做: - 實驗 - 推薦器改為GRU4REC及再找兩種會考慮時間軸的推薦模型 - 改成兩階段的RL去選action - 專題論文 - 在暑假前完成專題論文的撰寫 ### 7/26 小meeting 下週進度: 1. RS: GRU4Rec: Max 把code改成可以用同一份code跑、SASRec: 陳 Stamp: Tony 3組dataset都要跑 2. 兩段式可以選3組最好的那組來跑 3. 論文大綱 4. 完整接下來的實驗 5. 用overleaf寫小論文 ### 8/9 小meeting 2:30 1. 推薦器應該只有item embedding 2. 給的東西:把ㄧ連串item進去,要能predict 3. 只用陳璽安的train切成train跟test 4. gru4rec.pickle切 前0.6加下高斯當成我們的train跟test ![](https://i.imgur.com/53r7PP3.jpg) 5. 下週paper進度ch1, ch2完成 ### 8/27