mealionaire: a context-aware and ontology-based mobile recommender system for personalized cuisine...
TRANSCRIPT
論文大綱
緒論研究背景
與動機研究目的
文獻探討 推薦系統 情境感知 本體論
本體論建構本體論建構
方法與過程
本體論建構
結果
系統架構前端
使用者介面後端伺服器
系統實作APP
設計概念
APP介面
流程設計
APP功能展示
與介面設計
APP
實務應用
系統評估評估方法與
實驗設計評估結果
結論 結論後續研究
建議
• 如今網路上雖然充斥著豐富大量的資訊,但當我們有所需
要的時候,要找到適合需求的資訊已經越來越困難了
(Lops, De Gemmis, & Semeraro, 2011)
• 雖然推薦系統被用來解決這種「資訊過載」的問題(Ricci,
Rokach, & Shapira, 2011),但若沒有考慮到情境,使用
者可能不會每次都滿意推薦的結果(Oku、Nakajima、
Miyazaki, & Uemura, 2006)
緒論
• 對於建構進行無所不在的情境感知的系統來說,本體論是
關鍵的需求( Chen, Finin, & Joshi, 2003)
• 相較於傳統推薦系統使用關鍵字來分析使用者或推薦物件
的知識,使用本體論可以更容易分析獲得使用者敘述的語
意,且可以更進一步的描述使用者、推薦的物件、條件,
甚至使用者之間的社交活動等等(Lops et al., 2011)
緒論(續)
• 本研究將嘗試建構一情境感知的推薦系統,並以美食推薦
為例進行推薦
• 本研究將建構本體論以呈現美食領域中相關的知識,並進
行推理,在最後檢驗是否與使用者的偏好、情境達成一致,
以推薦符合使用者需求的、經過個人化後的推薦結果
緒論(續)
推薦系統定義
學者 定義
Burke(2002)
能產生個人化的推薦結果或是擁有在大範圍的可能
性中能夠以個人化的方式引導使用者獲得他們有興
趣或是有用的物品的能力的系統皆可稱之
Felfernig & Burke
(2008)
可以被視為廣泛一系列的技術,這些技術主要著重
於提供使用者個人化的、可供選擇的解決方案
Ricci et al.(2011)
是一種軟體工具與技術,用來提供使用者建議,推
薦對他們有用的物件,例如:要買什麼產品、要聽
什麼音樂等等
推薦系統應用
範例 類型
Amazon(2003) 電子商務網站
INTIMATE(2003) 電影推薦系統
VITA(2007) 金融產品諮詢
FOAF the Music(2008) 音樂推薦系統
Commenders(2011) 書籍推薦系統
Font(2014) 音效類別標籤建議
學者 情境定義
Schilit, Adams, & Want(1994)情境即是與使用者在哪裡、和誰在一起,還
有身邊有哪些資源相關的資訊
Ryan, Pascoe, & Morse(1998) 情境是使用者的位置、環境、身分與時間
Dey(1998)情境是使用者情緒的狀態、注意力集中處、
其所在的地點與方向
Abowd et al.(1999)情境可以是任何用來描述與相關使用者產生
互動的人、地點、物件等特性的資訊
情境定義
學者 情境定義
Schilit(1994)
可以根據地點、附近的人們、可使用的裝置
還有在隨著時間的推移之下,這些事物所產
生的變化進行適應、調整
Dey et al.(1999)使用了情境來提供相關的資訊或服務給使用
者的系統
Chen & Kotz(2000)
應用程式可以對使用者的地點、一天之內的
時間、使用者附近的人和裝置,與使用者的
活動等情境資訊進行探索並加以利用
情境感知系統是指有辦法去使用情境資訊的
情境感知系統定義
情境感知於推薦系統之應用
範例 類型
Burke(2002) 餐廳推薦系統
Intrigue(2003) 景點推薦系統
Oku et al.(2006) 餐廳推薦系統
BusinessFinder(2007) 行動商家支援
MyMap(2009) 景點推薦系統
Chen & Huang(2012) 行動學習系統
Zhou, Chu, Yu, & Kim(2012) 獨居高齡者解決方案
本體論定義
學者 定義
Gruber(1993) 概念化的明確規範
Hendler(2001)
是一系列和知識有關的名詞,也包括了描
述知識會用到的詞彙以及它們之間的語意
關聯,還有在推論相關特定的主題時,所
會用到的推論規則與邏輯
Daconta, Smith, & Oerst(2004)由類別、實體、關係、屬性、函數與過程、
限制與規則所構成
• 資料來自「微笑台灣319鄉」,本研究以台中為中心的中彰
投地區,以此範圍內的美食為主建構本體論。
• 本體論類別建置參考
• 行政院衛生福利部台灣地區食品營養成分資料庫
• Foursquare Category Hierarchy
• DMOZ Categories of Food
• 建置工具
• Stanford Protégé
• Apache Jena
本體論建構方法與過程
• Noy & McGuinness(2001)本體論建構方法
1. 判定本體論的範圍與範疇
2. 考慮使用現存的本體論
3. 列舉本體論中的重要名詞
4. 定義類別與類別階層
5. 定義類別的屬性
6. 定義屬性的限制
7. 創造實體
本體論建構方法與過程(續)
使用者
餐廳
餐點
餐點
食材
地點營業
時間
天候
狀況
<Restaurant rdf:about="http://www.komis.me/mealionaire.owl#R652">
<serve>
<Dish rdf:about="http://www.komis.me/mealionaire.owl#D1465">
<tag rdf:resource="http://www.komis.me/mealionaire.owl#noodles"/>
<isServedByrdf:resource="http://www.komis.me/mealionaire.owl#R652"/>
</Dish>
</serve>
<lon>120.653208</lon>
<lat>24.2194906</lat>
<name>R652</name>
</Restaurant>
本體論建構結果
• 普通的評分方式不夠客觀,因此使用User Profiler來分析使
用者的美食瀏覽紀錄,判斷使用者對各美食分類的興趣
建立使用者輪廓
類別 數值
Meat 3.727
Seafood 2.182
Noodles 1.091
Rice 1.818
Fruit 1.273
Vegetable 2.636
Beverage 2.818
Snack 1.818
Chinese 1.909
Brunch 1.545
Hotpot 0.545
• 類別興趣演算法:修改自Middleton、Shadbolt與De Roure
等人(2004)主題興趣演算法
建立使用者輪廓(續)
𝐶𝑙𝑎𝑠𝑠 𝐼𝑛𝑡𝑒𝑟𝑒𝑠𝑡 =𝑃𝑟𝑒𝑣𝑖𝑜𝑢𝑠 𝐼𝑛𝑡𝑒𝑟𝑒𝑠𝑡 + 1…𝑛𝑜 𝑜𝑓 𝑖𝑛𝑠𝑡𝑎𝑛𝑐𝑒
𝑛 𝐼𝑛𝑓𝑒𝑟𝑒𝑑 𝐼𝑛𝑡𝑒𝑟𝑒𝑠𝑡(𝑛)
𝑖𝑛𝑎𝑐𝑡𝑖𝑣𝑒 𝑑𝑎𝑦𝑠 + 1
• 類別興趣演算法:修改自Middleton、Shadbolt與De Roure
等人(2004)主題興趣演算法
建立使用者輪廓(續)
𝐶𝑙𝑎𝑠𝑠 𝐼𝑛𝑡𝑒𝑟𝑒𝑠𝑡 =𝑃𝑟𝑒𝑣𝑖𝑜𝑢𝑠 𝐼𝑛𝑡𝑒𝑟𝑒𝑠𝑡 + 1…𝑛𝑜 𝑜𝑓 𝑖𝑛𝑠𝑡𝑎𝑛𝑐𝑒
𝑛 𝐼𝑛𝑓𝑒𝑟𝑒𝑑 𝐼𝑛𝑡𝑒𝑟𝑒𝑠𝑡(𝑛)
𝑖𝑛𝑎𝑐𝑡𝑖𝑣𝑒 𝑑𝑎𝑦𝑠 + 1
=10 + 2
9 + 1= 1.2
• 由於K-means演算法容易撰寫,能夠處理大量的資料樣本,
同時也經常的被應用在相似度分群上(MacQueen, 1967),
本研究便採用它來進行使用者的分群
• 使用者在K-means演算法中被視為個別的點,其座標為使
用者輪廓中數值最高的三個數值,如點
P(3.727, 2.818, 2.636)
過濾相似使用者
• K-means演算法分群流程:
1. 指定k值,產生k個群集以及群集中心的點
2. 將離各群集中心最近的點分配到該群集
3. 重新計算各群集中心的點
4. 重複第二和第三個步驟,直到各群集的中心不變為止
過濾相似使用者
推理規則 規則內容
規則1 若「氣溫 > 28度」則「使用者覺得熱」
規則2 若「氣溫 < 20度」則「使用者覺得冷」
規則3若「使用者覺得熱」且「美食適合冬天吃」
則「美食不適合使用者」
規則4若「使用者覺得冷」且「美食適合夏天吃」
則「美食不適合使用者」
規則5 若「距離 > 10公里」則「美食距離遠」
規則6 若「距離 < 10公里」則「美食距離近」
本體論推理
• 距離計算公式:Haversine球面距離計算公式
本體論推理
distance = 2Rarcsin 𝑠𝑖𝑛2∅2 − ∅12
+ cos ∅1 cos ∅2 𝑠𝑖𝑛2𝜆2 − 𝜆12
R 地球半徑 ∅1, 𝜆1 餐廳地點座標
arc 弧度函數 ∅2, 𝜆2 使用者地點座標
• 推理後本體論中的概念以三元(triple)的方式存在:
• 「木瓜牛奶」是「飲料」
• 「米飯料理」包含「爌肉飯」
• 使用SPARQL語言進行查詢
• 「使用者」可能喜歡「這個美食」
• 「這個美食」屬於「使用者選擇的美食分類」
• 「提供這個美食的餐廳」正在「營業中」
• 「提供這個美食的餐廳」距離「近」
• 「這個美食」適合「目前的天氣」
語意查詢
• SPARQL查詢語法:
語意查詢
SELECT ?dish ?restaurant
WHERE{ ?dish MLNR:tag ?tag
. ?tag rdf:type MLNR:foodClass
. ?dish MLNR:business true
. ?dish MLNR:distance MLNR:Near
. ?dish MLNR:isAppropriate true
. ?dish MLNR:isServedby ?restaurant }
{"head": {
"vars": [ "dish" , "restaurant" ]} ,"results": {
"bindings": [{
"dish": { "type": "uri" , "value": "http://www.komis.me/mealionaire.owl#D1465"
} ,"restaurant": {
"type": "uri" , "value": "http://www.komis.me/mealionaire.owl#R652"
}}
]}
}
返回推薦結果
系統實作
•採用工具:
• Eclipse IDE
• Notepad ++
• phpMyAdmin
• GitHub
• Protégé 3.5
• Android SDK 4.4W2
• Adobe Fireworks CS5
• Adobe Illustrator CS5
• Apache HTTP server 2.4
• Java JDK SE 7
• MySQL server 5.6
• PHP 5.5.15
• Apache Jena 2.13.0
• MySQL Connector 5.1.34
• Gson 2.3.1
• Facebook SDK 3.18.1
評估方法與實驗設計
• 本研究以問卷調查法進行實驗。本研究參考Delone與
McLean(2003)提出的資訊系統成功模式(Information
System Success Model)製作問卷,共含六個構面:
1. 系統品質
2. 資訊品質
3. 服務品質
4. 使用意圖
5. 使用者滿意度
6. 系統效益
評估方法與實驗設計(續)
• 由於本系統為一情境感知系統,因此本研究進行實驗的時
程為期一週,自103年6月21日開始,到27日結束
• 本次實驗的實驗對象為Android行動應用程式使用者,共蒐
集到117份問卷,剔除無效問卷19份後獲得98份問卷
各構面敘述統計
系統的介面是很好操作、容易使用的
藉由系統提供的功能,我有辦法獲得我所需要的資訊
系統具有良好的連線能力,頁面的切換皆不會延遲太久
系統是穩定的,很少有出錯、閃退的狀況發生
系統具有有趣並且能吸引人的特殊功能
各構面敘述統計(續)
我隨時隨地都能藉由系統獲得我所需要的美食資訊
藉由系統獲得美食資訊的過程是即時、快速的
系統能夠根據我的不同情況及需求提供不同的美食資訊
當我在選擇美食用餐時,我相信系統產生給我的推薦
系統有提供我反映意見與回饋建議的管道
各構面敘述統計(續)
系統可以幫助我節省挑選適合我的餐廳的時間
藉由使用系統,我嚐試到不喜歡店家餐點的機率變低了
藉由使用系統,就算不是在用餐時段,也可以享用到我喜歡的美食
使用系統後我認識了周遭更多的美食店家
系統可以幫助我以較少的精神,享用到讓我覺得物超所值的美食
• 本研究發展了一套情境感知的推薦系統,使用本體論進行
情境的分析,提供個人化的推薦結果。最後根據系統評估,
結果顯示:
• 本系統不論在系統品質、資訊品質與服務品質都被使用者廣為接受
• 系統效益方面,推薦系統的設計確實為使用者降低了日常生活中尋
找美食的麻煩,為使用者帶來更加便利的生活
• 使用者對於本系統也是相當滿意的,使用者同意在未來將繼續使用
本系統來查詢美食資訊,並且也有將本研究所設計之具有實用性與
享樂性的美食推薦系統分享給親朋好友的意願。
結論
• 推薦系統中的美食資訊範圍僅包含中部地區,未來研究將
範圍擴大並驗證系統效益
• 未來可以考慮與美食店家合作,一方面提供店家曝光的管
道,一方面完善圖片資料的蒐集
• 可建置分散式運算環境以加強本體論的運算速度
• 可導入遊戲化機制,以加強和使用者之間的互動
後續研究建議