# 專題進度追蹤
滷肉飯: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

本週進度:
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去做詢問
- 兩者的結果比較
- 
- 
- 做出期末的報告和影片
- 之後預計要做:
- 實驗
- 推薦器改為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

5. 下週paper進度ch1, ch2完成
### 8/27