論文大綱
緒論研究背景
與動機研究目的
文獻探討 推薦系統 情境感知 本體論
本體論建構本體論建構
方法與過程
本體論建構
結果
系統架構前端
使用者介面後端伺服器
系統實作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份問卷
各構面敘述統計
系統的介面是很好操作、容易使用的
藉由系統提供的功能,我有辦法獲得我所需要的資訊
系統具有良好的連線能力,頁面的切換皆不會延遲太久
系統是穩定的,很少有出錯、閃退的狀況發生
系統具有有趣並且能吸引人的特殊功能
各構面敘述統計(續)
我隨時隨地都能藉由系統獲得我所需要的美食資訊
藉由系統獲得美食資訊的過程是即時、快速的
系統能夠根據我的不同情況及需求提供不同的美食資訊
當我在選擇美食用餐時,我相信系統產生給我的推薦
系統有提供我反映意見與回饋建議的管道
各構面敘述統計(續)
系統可以幫助我節省挑選適合我的餐廳的時間
藉由使用系統,我嚐試到不喜歡店家餐點的機率變低了
藉由使用系統,就算不是在用餐時段,也可以享用到我喜歡的美食
使用系統後我認識了周遭更多的美食店家
系統可以幫助我以較少的精神,享用到讓我覺得物超所值的美食
• 本研究發展了一套情境感知的推薦系統,使用本體論進行
情境的分析,提供個人化的推薦結果。最後根據系統評估,
結果顯示:
• 本系統不論在系統品質、資訊品質與服務品質都被使用者廣為接受
• 系統效益方面,推薦系統的設計確實為使用者降低了日常生活中尋
找美食的麻煩,為使用者帶來更加便利的生活
• 使用者對於本系統也是相當滿意的,使用者同意在未來將繼續使用
本系統來查詢美食資訊,並且也有將本研究所設計之具有實用性與
享樂性的美食推薦系統分享給親朋好友的意願。
結論
• 推薦系統中的美食資訊範圍僅包含中部地區,未來研究將
範圍擴大並驗證系統效益
• 未來可以考慮與美食店家合作,一方面提供店家曝光的管
道,一方面完善圖片資料的蒐集
• 可建置分散式運算環境以加強本體論的運算速度
• 可導入遊戲化機制,以加強和使用者之間的互動
後續研究建議