mealionaire: a context-aware and ontology-based mobile recommender system for personalized cuisine...

94
應用本體論於情境感知之推薦系統 ──以美食推薦為例 陳冠廷 王謙 博士 2015 / 7 / 22 研究生 指導教授 日期

Upload: kazaf-chen

Post on 29-Jan-2018

165 views

Category:

Technology


0 download

TRANSCRIPT

應用本體論於情境感知之推薦系統

──以美食推薦為例

陳冠廷 王謙博士 2015 / 7 / 22

研究生 指導教授 日期

論文大綱

緒論研究背景

與動機研究目的

文獻探討 推薦系統 情境感知 本體論

本體論建構本體論建構

方法與過程

本體論建構

結果

系統架構前端

使用者介面後端伺服器

系統實作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)由類別、實體、關係、屬性、函數與過程、

限制與規則所構成

本體論定義(續)

本體論應用

範例 類型

CoBrA(2003) 智慧環境

FLAME2008(2004) 奧運活動資訊推薦系統

RecomMetz(2015) 電影時刻與電影院推薦系統

• 資料來自「微笑台灣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公里」則「美食距離近」

本體論推理

• 舒適度溫度定義:攝氏20度~28度

本體論推理

資料來源:Olesen & Brager, 2004

• 距離計算公式: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

• APP設計概念

• APP介面流程設計

• APP功能展示與介面設計

• APP實務應用

系統實作

節省

精力

即時

體驗

達人

建議

APP設計概念

Mealionaire

APP介面流程設計

使用者登入

搖一搖

探索美食

管理關於我

查看美食資訊

使用者登入

使用者登入(續)

使用者登入(續)

使用者登入(續)

使用者登入(續)

搖一搖

搖一搖(續)

搖一搖(續)

探索美食

探索美食(續)

探索美食(續)

管理關於我

管理關於我(續)

管理關於我(續)

管理關於我(續)

管理關於我(續)

查看美食資訊

查看美食資訊(續)

查看美食資訊(續)

查看美食資訊(續)

查看美食資訊(續)

查看美食資訊(續)

查看美食資訊(續)

查看美食資訊(續)

查看美食資訊(續)

查看美食資訊(續)

其他功能

其他功能(續)

其他功能(續)

其他功能(續)

APP實務應用

APP實務應用(續)

系統評估

• 評估方法與實驗設計

• 評估結果

評估方法與實驗設計

• 本研究以問卷調查法進行實驗。本研究參考Delone與

McLean(2003)提出的資訊系統成功模式(Information

System Success Model)製作問卷,共含六個構面:

1. 系統品質

2. 資訊品質

3. 服務品質

4. 使用意圖

5. 使用者滿意度

6. 系統效益

評估方法與實驗設計(續)

• 由於本系統為一情境感知系統,因此本研究進行實驗的時

程為期一週,自103年6月21日開始,到27日結束

• 本次實驗的實驗對象為Android行動應用程式使用者,共蒐

集到117份問卷,剔除無效問卷19份後獲得98份問卷

• 使用者結構分析

• 各構面敘述統計

評估結果

使用者結構分析

使用者結構分析(續)

使用者結構分析(續)

使用者結構分析(續)

20000元(含以下)

使用者結構分析(續)

使用者結構分析(續)

各構面敘述統計

系統的介面是很好操作、容易使用的

藉由系統提供的功能,我有辦法獲得我所需要的資訊

系統具有良好的連線能力,頁面的切換皆不會延遲太久

系統是穩定的,很少有出錯、閃退的狀況發生

系統具有有趣並且能吸引人的特殊功能

各構面敘述統計(續)

系統所提供的美食資訊符合我的需要

系統所提供的美食資訊是正確的

系統所提供的美食資訊都是更新過的

系統所提供的美食資訊相當豐富

系統美食資訊的呈現方式讓我能容易的理解資訊的內容

各構面敘述統計(續)

我隨時隨地都能藉由系統獲得我所需要的美食資訊

藉由系統獲得美食資訊的過程是即時、快速的

系統能夠根據我的不同情況及需求提供不同的美食資訊

當我在選擇美食用餐時,我相信系統產生給我的推薦

系統有提供我反映意見與回饋建議的管道

各構面敘述統計(續)

系統可以幫助我節省挑選適合我的餐廳的時間

藉由使用系統,我嚐試到不喜歡店家餐點的機率變低了

藉由使用系統,就算不是在用餐時段,也可以享用到我喜歡的美食

使用系統後我認識了周遭更多的美食店家

系統可以幫助我以較少的精神,享用到讓我覺得物超所值的美食

各構面敘述統計(續)

使用此系統讓我的生活變得更加便利,我對此感到滿意

我對系統所設計的功能感到滿意

我對系統所提供的資訊感到滿意

我對系統對我推薦的結果感到滿意

整體而言,我對此系統的評價是良好的

各構面敘述統計(續)

我將會繼續使用本系統

我將會推薦別人使用本系統

當我要尋找美食資訊時,我會使用本系統來尋找

• 本研究發展了一套情境感知的推薦系統,使用本體論進行

情境的分析,提供個人化的推薦結果。最後根據系統評估,

結果顯示:

• 本系統不論在系統品質、資訊品質與服務品質都被使用者廣為接受

• 系統效益方面,推薦系統的設計確實為使用者降低了日常生活中尋

找美食的麻煩,為使用者帶來更加便利的生活

• 使用者對於本系統也是相當滿意的,使用者同意在未來將繼續使用

本系統來查詢美食資訊,並且也有將本研究所設計之具有實用性與

享樂性的美食推薦系統分享給親朋好友的意願。

結論

• 推薦系統中的美食資訊範圍僅包含中部地區,未來研究將

範圍擴大並驗證系統效益

• 未來可以考慮與美食店家合作,一方面提供店家曝光的管

道,一方面完善圖片資料的蒐集

• 可建置分散式運算環境以加強本體論的運算速度

• 可導入遊戲化機制,以加強和使用者之間的互動

後續研究建議

謝謝聆聽