<html><head><meta name="color-scheme" content="light dark"></head><body><pre style="word-wrap: break-word; white-space: pre-wrap;">\documentclass{bjfuthesis}
\addbibresource{bibliography.bib}
\usepackage[utf8]{inputenc}
\begin{document}
\includepdf[pages={1}]{contents/cover.pdf}
\includepdf{contents/statement-of-originality.pdf}
\includepdf{contents/mission-statement.pdf}
	\frontmatter
	\chapter*{æ‘˜è¦}
\begin{abstract}
	éšç€åœ¨çº¿ç”µå½±æ•°é‡ä¸æ–­å¢žåŠ&nbsp;ï¼Œç”¨æˆ·é€‰æ‹©ç”µå½±çš„æ—¶é—´æˆæœ¬ä¸æ–­ä¸Šå‡ï¼Œå‡†ç¡®çš„æŽ¨èç®—æ³•æˆä¸ºäº†å¿…ç„¶è¦æ±‚ã€‚ä¸ºè§£å†³ååŒè¿‡æ»¤æŽ¨èç®—æ³•ä¸­çš„ç¨€ç¼ºæ€§é—®é¢˜ä¸Žå†·å¯åŠ¨é—®é¢˜ï¼Œç&nbsp;”ç©¶äººå‘˜ç”¨å•†å“å±žæ€§æˆ–ç¤¾äº¤ç½‘ç»œç­‰ä¿¡æ¯æ¥è¾…åŠ©æŽ¨èç®—æ³•ã€‚çŽ°æœ‰çš„å°†çŸ¥è¯†å›¾è°±ä½œä¸ºè¾…åŠ©ä¿¡æ¯çš„æŽ¨èç®—æ³•åŒ…æ‹¬åŸºäºŽåµŒå…¥çš„æ–¹æ³•å’ŒåŸºäºŽè·¯å¾„çš„æ–¹æ³•ï¼Œä½†è¿™ä¸¤ç§æ–¹æ³•å‡å­˜åœ¨ä¸€äº›ç¼ºé™·ï¼Œæ²¡æœ‰å……åˆ†æœ‰æ•ˆåœ°åˆ©ç”¨çŸ¥è¯†å›¾è°±ä¸­çš„ç›¸å…³ä¿¡æ¯ï¼ŒæŽ¨èçš„å‡†ç¡®åº¦è¾ƒä½Žã€‚
	
	æœ¬æ–‡å®žçŽ°äº†åŸºäºŽçŸ¥è¯†å›¾è°±çš„â€œæ¶Ÿæ¼ªç½‘ç»œâ€æŽ¨èç®—æ³•ã€‚â€œæ¶Ÿæ¼ªç½‘ç»œâ€ç®—æ³•çš„æ&nbsp;¸å¿ƒæ˜¯åˆ©ç”¨çŽ°å®žç”Ÿæ´»ä¸­é›¨æ»´äº§ç”Ÿçš„æ¶Ÿæ¼ªåœ¨æ°´é¢ä¸Šä¸æ–­æ‰©æ•£çš„æ€è·¯ï¼Œæ¥æ¨¡æ‹Ÿç”¨æˆ·åå¥½çš„æ‰©æ•£ã€‚å¯¹äºŽæ¯ä¸€ä¸ªç”¨æˆ·ï¼Œæ¶Ÿæ¼ªç½‘ç»œå°†å…¶è¿‡å¾€åå¥½ä½œä¸ºçŸ¥è¯†å›¾è°±ä¸­çš„ä¸€ä¸ªç§å­é›†ï¼Œç„¶åŽæ²¿çŸ¥è¯†å›¾è°±ä¸­çš„å…³ç³»è·¯å¾„ä¸æ–­åœ°æ‹“å±•ç”¨æˆ·åå¥½ï¼Œè¿›è€Œå‘çŽ°è¯¥ç”¨æˆ·å¯¹æŸä¸ªå€™é€‰ç‰©å“ä»¥ç­‰çº§åˆ’åˆ†çš„æ½œåœ¨å…´è¶£ï¼Œå…¶ä¸­å¤šä¸ªâ€œæ¶Ÿæ¼ªâ€é‡å&nbsp;å½¢æˆçŸ¥è¯†å›¾è°±ä¸­çš„ç”¨æˆ·åå¥½åˆ†å¸ƒã€‚è¯¥ç®—æ³•çš„å®žéªŒç»“æžœå’Œä»¥å¾€çš„CKEã€DKNã€PERç­‰æ¨¡åž‹ç»“æžœç›¸æ¯”ï¼Œè¡¨çŽ°å‡ºæ›´ä¼˜çš„æ€§èƒ½ã€‚åˆ©ç”¨è¯¥ç®—æ³•ï¼Œæœ¬æ–‡è®¾è®¡å¹¶å®žçŽ°äº†ä¸€ä¸ªåŸºäºŽçŸ¥è¯†å›¾è°±çš„ç”µå½±æŽ¨èç³»ç»Ÿï¼Œè¯¥ç³»ç»ŸåŒ…æ‹¬ç®¡ç†å‘˜ç”¨æˆ·å’Œæ™®é€šç”¨æˆ·ï¼Œç®¡ç†å‘˜èƒ½æ–°å¢žã€ç¼–è¾‘å’Œåˆ&nbsp;é™¤ç”µå½±ä¸Žç”¨æˆ·ï¼Œæ™®é€šç”¨æˆ·èƒ½æµè§ˆã€æ”¶è—ä¸Žè´­ä¹°ç”µå½±ã€‚è¯¥ç³»ç»Ÿå¯ä»¥é«˜æ•ˆå‡†ç¡®åœ°ä¸ºç”¨æˆ·æŽ¨èç”µå½±ï¼Œæ–¹ä¾¿ç”¨æˆ·é€‰æ‹©æ»¡è¶³è‡ªå·±åå¥½çš„ç”µå½±ã€‚
\end{abstract}
\keywordscn{çŸ¥è¯†å›¾è°±ï¼ŒæŽ¨èç³»ç»Ÿï¼Œæ¶Ÿæ¼ªç½‘ç»œï¼Œç”¨æˆ·åå¥½ï¼Œç”µå½±å•†åº—}
\chapter*{Abstract}
\begin{abstract}
	As the number of online movies continues to increase and the time cost for users to choose movies continues to rise, accurate recommendation algorithms have become an necessary requirement. In order to address the scarcity and cold start problem of collaborative filtering, researchers usually make use of side information, such as product attributes or social networks as side information to assist the recommendation. The existing recommendation algorithms that use knowledge graph as side information include embedding-based methods and path-based methods, but both methods have some shortcomings. They do not make full and effective use of the relevant information in the knowledge graph, and the accuracy of recommendation is relatively low.
	
	This paper implements a recommendation algorithm, ``Ripple Network", based on knowledge graph. The core of the Ripple Network algorithm is to use the idea that the ripples produced by raindrops in real life continue to spread on the water surface to stimulate the spread of user preferences. For each user, Ripple Network uses its past preference as a seed set in the knowledge graph, and then continuously expands the user's preferences along the relationship path in the knowledge graph, and then discovers his hierarchical potential interests concerning a certain candidate item. Multiple ``ripples'' overlap to form the user preference distribution in the knowledge graph. Compared with previous model results of CKE, DKN, PER, etc., the experimental results of this algorithm show better performance. Using this algorithm, this paper designs and implements a recommendation system based on the movie knowledge graph. The system includes administrator users and general users. The administrator can add, edit and delete movies and users, and general users can browse, collect and purchase films. The system can provide users with an efficient movie recommendation function, which is convenient for users to choose movies that match their preferences.
\end{abstract}
\keywordsen{knowledge graph, recommender system, ripple network, user preferences, movie store}
	\tableofcontents
	\mainmatter
	\chapter{ç»ªè®º}
\section{ç&nbsp;”ç©¶èƒŒæ™¯ä¸Žæ„ä¹‰}
ä¸€ç›´ä»¥æ¥ï¼Œç”µå½±æŽ¨èéƒ½æ˜¯åœ¨çº¿æµåª’ä½“æ’­æ”¾å¹³å°å‘å±•ä¸­çš„ä¸€ä¸ªé‡è¦é—®é¢˜ï¼Œåšå¥½ç”µå½±æŽ¨èå¯ä»¥ä½¿ç”¨æˆ·èƒ½åœ¨æµ·é‡ç”µå½±ä¸­é€‰æ‹©æ»¡è¶³å…¶åå¥½çš„ç”µå½±ï¼Œæé«˜ç”¨æˆ·æ»¡æ„åº¦ï¼Œä»Žè€Œæé«˜åœ¨çº¿æµåª’ä½“æ’­æ”¾å¹³å°çš„æµé‡è½¬åŒ–çŽ‡åŠè´­ä¹°çŽ‡ï¼Œå¹¶æœ€ç»ˆæé«˜åœ¨çº¿æµåª’ä½“æ’­æ”¾å¹³å°çš„ç»æµŽæ”¶ç›Šã€‚è¿‘å¹´æ¥ï¼Œéšç€ç”µå½±è¡Œä¸šåŠäº’è”ç½‘è¡Œä¸šçš„ä¸æ–­å‘å±•ï¼Œåœ¨çº¿ç”µå½±æ•°é‡ä¸æ–­å¢žåŠ&nbsp;ï¼Œç”¨æˆ·åœ¨æµ·é‡ç”µå½±ä¸­é€‰æ‹©æ»¡è¶³å…¶åå¥½çš„ç”µå½±çš„éš¾åº¦ä¸æ–­ä¸Šå‡ï¼Œæ€§èƒ½ä¼˜å¼‚çš„æŽ¨èç®—æ³•æˆä¸ºäº†å¿…ç„¶è¦æ±‚ã€‚è‡ªä»Žåœ¨çº¿æµåª’ä½“æ’­æ”¾å¹³å°å‡ºçŽ°ä»¥æ¥ï¼Œäººä»¬ä¾¿å¼€å§‹å°è¯•åˆ©ç”¨æŽ¨èç®—æ³•æ¥æé«˜å¹³å°æµé‡è½¬åŒ–çŽ‡ï¼Œå‡ºçŽ°äº†è¯¸å¦‚ååŒè¿‡æ»¤çš„æŽ¨èç®—æ³•\cite{he2017neural}ã€‚ä½†è¿™äº›ç®—æ³•æœªèƒ½è§£å†³æ•°æ®ç¨€ç¼ºæ€§åŠå†·å¯åŠ¨é—®é¢˜ï¼Œå¹¶ä¸èƒ½ä¸ºåœ¨çº¿æµåª’ä½“æ’­æ”¾å¹³å°æä¾›è‰¯å¥½çš„æŽ¨èæ€§èƒ½ã€‚ä¸ºæ­¤ï¼Œäººä»¬å°è¯•å°†è¾…åŠ©ä¿¡æ¯èžå…¥æŽ¨èç®—æ³•ä¸­ä»¥è§£å†³æ•°æ®ç¨€ç¼ºæ€§åŠå†·å¯åŠ¨é—®é¢˜\cite{sun2017collaborative}ï¼Œå¹¶æé«˜æŽ¨èæ€§èƒ½ã€‚

çŸ¥è¯†å›¾è°±æ˜¯ä¸€ç§ç»“æž„åŒ–çš„è¯­ä¹‰çŸ¥è¯†åº“ï¼Œè¢«ç”¨äºŽè¿…é€Ÿæä¾›å¯¹ç‰©ç†ä¸–ç•Œä¸­çš„æ¦‚å¿µå’Œç›¸äº’å…³ç³»çš„æè¿°ï¼Œä¸ºè§£å†³æŽ¨èé—®é¢˜æä¾›äº†æ–°çš„æ–¹æ³•\cite{zou2020survey}ï¼Œè¿‘å¹´æ¥å—åˆ°å›½å†…å¤–ç&nbsp;”ç©¶äººå‘˜çš„å¹¿æ³›å…³æ³¨ï¼Œæˆä¸ºäº†å½“å‰çš„ç&nbsp;”ç©¶çƒ­ç‚¹ã€‚çŸ¥è¯†å›¾è°±é€šè¿‡å¯¹å¤æ‚çš„åŽŸå§‹æ•°æ®è¿›è¡ŒåŠ&nbsp;å·¥ã€å¤„ç†åŠæ•´åˆï¼Œè½¬åŒ–æˆç®€å•å¯é&nbsp;ã€æ¸…æ™°æ˜Žäº†çš„â€œå®žä½“ï¼Œå…³ç³»ï¼Œå®žä½“â€ä¸‰å…ƒç»„ï¼Œæ±‡èšäº†å¤§é‡çš„çŸ¥è¯†ä¿¡æ¯ï¼Œä»Žè€Œèƒ½å®žçŽ°åŸºäºŽçŸ¥è¯†ä¿¡æ¯çš„å“åº”å’ŒæŽ¨ç†ã€‚

çŸ¥è¯†å›¾è°±å¸¸è¢«ç”¨äºŽä½œä¸ºè¾…åŠ©ä¿¡æ¯æ·»åŠ&nbsp;è‡³æŽ¨èç®—æ³•ä¸­ä»¥æé«˜æŽ¨èçš„å‡†ç¡®æ€§ï¼Œè¿™å·²æ˜¯å½“å‰çš„ç&nbsp;”ç©¶ç„¦ç‚¹ã€‚

è¿‘å¹´æ¥ï¼Œéšç€åœ¨çº¿æµåª’ä½“æ’­æ”¾å¹³å°çš„å‘å±•ï¼Œç”µå½±æŽ¨èç³»ç»Ÿåº”è¿è€Œç”Ÿï¼Œå®ƒä½œä¸ºçŽ°ä»£ä¿¡æ¯æŠ€æœ¯ä¸Žä¼&nbsp;ç»Ÿç”µå½±äº§ä¸šç›¸ç»“åˆçš„äº§ç‰©ï¼Œå¯¹æµåª’ä½“æ’­æ”¾å¹³å°çš„ç”¨æˆ·ä½“éªŒèµ·ç€è‡³å…³é‡è¦çš„ä½œç”¨ï¼Œå…¶å¯å¤§å¹…åº¦å‡å°‘ç”¨æˆ·å¯»æ‰¾æ»¡è¶³å…¶åå¥½ç”µå½±çš„æ—¶é—´ï¼Œå¹¶æé«˜ç”¨æˆ·ç‚¹å‡»çŽ‡ä¸Žè´­ä¹°çŽ‡ï¼Œä»Žè€Œæé«˜æµåª’ä½“æ’­æ”¾å¹³å°çš„ç»æµŽæ”¶ç›Šã€‚ç”µå½±æŽ¨èç³»ç»Ÿèƒ½ä¸ºç”¨æˆ·æŽ¨èå…¶æ„Ÿå…´è¶£çš„ç”µå½±ï¼Œè€Œå‡å°‘å¯¹ç”¨æˆ·ä¸æ„Ÿå…´è¶£å†…å®¹çš„æ˜¾ç¤ºï¼Œä»Žè€Œæ»¡è¶³ç”¨æˆ·éœ€æ±‚ã€‚ä½†æ˜¯ï¼Œç›®å‰ç½‘ç»œä¸Šç»å¤§å¤šæ•°çš„ç”µå½±æŽ¨èç³»ç»Ÿéƒ½ä½¿ç”¨ä¼&nbsp;ç»Ÿçš„åŸºäºŽååŒè¿‡æ»¤çš„æŽ¨èç®—æ³•ï¼Œæœªèƒ½æœ‰æ•ˆåˆ©ç”¨çŸ¥è¯†å›¾è°±ç­‰è¾…åŠ©ä¿¡æ¯ï¼Œè¿”å›žç»™ç”¨æˆ·çš„æŽ¨èç»“æžœä¸­åŒ…å«å¤§é‡ç”¨æˆ·ä¸æ„Ÿå…´è¶£çš„ç”µå½±ï¼Œæ­¤å¤–ï¼Œè¿˜å°†ä¸€äº›æœ¬åº”æŽ¨èç»™ç”¨æˆ·çš„ã€ç”¨æˆ·æ„Ÿå…´è¶£çš„ç”µå½±ä¸¢å¼ƒäº†ã€‚é€&nbsp;æˆè¿™ä¸€é—®é¢˜çš„ä¸»è¦åŽŸå›&nbsp;æ˜¯æŽ¨èç®—æ³•ç¼ºå°‘æœ‰å…³æ–°åŠ&nbsp;å…¥çš„æ—&nbsp;ç”¨æˆ·è¯„åˆ†çš„ç”µå½±ä»¥åŠæ–°æ³¨å†Œçš„ç”¨æˆ·çš„ä¿¡æ¯ã€‚

å¯¹äºŽæµ·é‡çš„ç”µå½±æ•°æ®ï¼Œä¸ºäº†å®žçŽ°å‡†ç¡®åœ°æŽ¨èç»™ç”¨æˆ·å…¶æ„Ÿå…´è¶£çš„ç”µå½±ï¼ŒåŸºäºŽååŒè¿‡æ»¤çš„ä¼&nbsp;ç»ŸæŽ¨èç®—æ³•æ˜¯æ»¡è¶³äº†ä¸ç”¨æˆ·éœ€æ±‚çš„ï¼Œç‰¹åˆ«æ˜¯å¯¹æ–°æ³¨å†Œç”¨æˆ·ï¼ŒæŽ¨èçš„å‡†ç¡®åº¦æ—&nbsp;æ³•å¾—åˆ°ä¿è¯ã€‚æ‰€ä»¥ï¼Œæœ¬æ–‡æ—¨åœ¨ä»¥çŸ¥è¯†å›¾è°±ä½œä¸ºè¾…åŠ©ä¿¡æ¯ï¼Œæž„å»ºä¸€ä¸ªåˆé€‚çš„ç”µå½±æŽ¨èç³»ç»Ÿï¼Œå¹¶åˆ©ç”¨çŸ¥è¯†å›¾è°±ä¸­åŒ…å«çš„ä¸°å¯Œçš„è¾…åŠ©ä¿¡æ¯ï¼Œæœ€ç»ˆå®žçŽ°ä¸€ä¸ªç”µå½±æŽ¨èç³»ç»Ÿï¼Œä¸ºç”¨æˆ·æä¾›æœ‰æ•ˆçš„ã€å‡†ç¡®çš„ç”µå½±æŽ¨èï¼Œä»Žè€Œæé«˜ç”¨æˆ·æ»¡æ„åº¦ï¼Œæé«˜å¹³å°æ”¶ç›Šã€‚
\section{å›½å†…å¤–ç&nbsp;”ç©¶çŽ°çŠ¶}
\subsection{æŽ¨èç³»ç»Ÿç&nbsp;”ç©¶çŽ°çŠ¶}
æŽ¨èç³»ç»Ÿç”±Jussi KarlgrenäºŽå“¥ä¼¦æ¯”äºšå¤§å­¦åœ¨ä¸€ä»½æŠ€æœ¯æŠ¥å‘Šä¸­ä»¥â€œæ•°å­—ä¹¦æž¶â€çš„åç§°è¢«é¦–æ¬¡æåŠï¼Œè€ŒåŽè‡ª1994å¹´èµ·è¢«åœ¨SICSçš„Jussi Karlgrenã€ç”±Pattie MaesäºŽMITé¢†å¯¼çš„ç&nbsp;”ç©¶å›¢é˜Ÿã€ä½äºŽBellcoreçš„Will Hillä»¥åŠåŒæ&nbsp;·ä½äºŽMITçš„Paul Resnickå¤§è§„æ¨¡å®žçŽ°å¹¶åœ¨æŠ€æœ¯æ€§æŠ¥å‘ŠåŠå‡ºç‰ˆç‰©å¤§é‡å‡ºçŽ°ï¼Œä»¥ä¸Šäººå‘˜ä¸ŽGroupLensçš„å·¥ä½œè¢«æŽˆäºˆäº†2010å¹´ACMè½¯ä»¶ç³»ç»Ÿå¥–ã€‚

è‡ªä»Žåœ¨90å¹´ä»£ä¸­æœŸé¦–æ‰¹æœ‰å…³ååŒè¿‡æ»¤çš„è®ºæ–‡å‡ºçŽ°åŽæŽ¨èç³»ç»Ÿä¾¿æˆä¸ºäº†é‡è¦çš„ç&nbsp;”ç©¶é¢†åŸŸã€‚å·¥ä¸šç•Œä¸Žå­¦æœ¯ç•Œå‡ºçŽ°äº†ä¼—å¤šæœ‰å…³å»ºè®¾æ–°çš„æŽ¨èç³»ç»Ÿçš„å·¥ä½œã€‚ç”±äºŽè¯¥é¢†åŸŸåŒ…å«ä¼—å¤šçš„ç&nbsp;”ç©¶é—®é¢˜åŠå…¶èƒ½å¸®åŠ©ç”¨æˆ·è§£å†³åœ¨è¿‡å¤šä¿¡æ¯ä¸­æä¾›ä¸ªæ€§åŒ–æŽ¨èçš„å®žé™…åº”ç”¨ï¼Œå›&nbsp;æ­¤ç&nbsp;”ç©¶äººå‘˜å¯¹è¯¥é¢†åŸŸçš„å…´è¶£ä¾æ—§å¾ˆé«˜ã€‚

å½“å‰ï¼ŒæŽ¨èåˆ—è¡¨åœ¨æŽ¨èç³»ç»Ÿå°†å…¶äº§ç”Ÿçš„è¿‡ç¨‹ä¸­çš„æ–¹å¼ä¸»è¦æœ‰ä¸¤ç§ï¼šåŸºäºŽå†…å®¹æŽ¨èä¸ŽååŒè¿‡æ»¤æŽ¨è\cite{jafarkarimi2012naive}ã€‚åŸºäºŽå†…å®¹æŽ¨èçš„ç®—æ³•ä½¿ç”¨ä¸€äº›æœ‰å…³ç‰©å“çš„ç¦»æ•£ç‰¹å¾æ¥æŽ¨èå‡ºæ‹¥æœ‰ç›¸ä¼¼æ€§çš„ç‰©å“ã€‚ååŒè¿‡æ»¤æ–¹æ³•æ&nbsp;¹æ®ç”¨æˆ·çš„åŽ†å²è¡Œä¸ºï¼ˆè¯¸å¦‚å…¶è¯„ä»·è¿‡çš„ã€ç‚¹å‡»è¿‡çš„ã€è´­ä¹°è¿‡çš„å•†å“ç­‰ï¼‰å¹¶ä¸Žå…¶ä»–ç”¨æˆ·çš„ç›¸ä¼¼å†³ç­–ç»“åˆæ¥å»ºç«‹æ¨¡å½¢ï¼Œè¿™ç§ç®—æ³•å¯ä»¥è¢«ç”¨äºŽé¢„æµ‹ç”¨æˆ·å¯¹ç‰©å“çš„åå¥½ç¨‹åº¦ã€‚è¿™ä¸¤ç§æ–¹æ³•å¸¸å¸¸è¢«åŒæ—¶ä½¿ç”¨ã€‚

æ­¤å¤–ï¼Œè¿‘æ¥æœ‰è¶Šæ¥è¶Šå¤šçš„æŽ¨èç®—æ³•è¢«æå‡ºï¼šå¤šå‡†åˆ™æŽ¨èç³»ç»Ÿã€‚å¤šå‡†åˆ™æŽ¨èç³»ç»Ÿå¯ä»¥è¢«å®šä¹‰ä¸ºåŒ…å«å¤šæ&nbsp;‡å‡†åå¥½ä¿¡æ¯çš„æŽ¨èç³»ç»Ÿï¼Œè€Œä¸æ˜¯æž„å»ºåŸºäºŽå•ä¸€å‡­æ®çš„æŽ¨èç³»ç»Ÿã€‚é£Žé™©æ„ŸçŸ¥æŽ¨èç³»ç»Ÿï¼ŒçŽ°å­˜æŽ¨èç³»ç»Ÿçš„ä¸»è¦æ–¹æ³•èšç„¦äºŽåŸºäºŽä¸Šä¸‹æ–‡ä¿¡æ¯æŽ¨èæœ€ç›¸å…³å†…å®¹ç»™ç”¨æˆ·ï¼Œè€Œæ²¡æœ‰å°†ä¸ç›¸å…³å†…å®¹æ‰“æ‰°ç”¨æˆ·çš„æŽ¨èé£Žé™©è€ƒè™‘åœ¨å†…ã€‚è€ƒè™‘æŽ¨é€æŽ¨èå†…å®¹ç»™ç”¨æˆ·è€Œé€&nbsp;æˆæ‰“æ‰°ç”¨æˆ·çš„é£Žé™©åœ¨æŸäº›æƒ…å†µä¸‹æ˜¯éœ€è¦è€ƒè™‘çš„ï¼Œæ¯”å¦‚ï¼Œåœ¨ä¸€ä¸ªå·¥ä½œä¼šè®®ä¸Šæˆ–æ˜¯åœ¨å‡Œæ™¨æˆ–æ˜¯åœ¨æ™šä¸Šã€‚è€Œæ­¤ç±»æŽ¨èç®—æ³•ä¸ºè¯¥é—®é¢˜æä¾›äº†è§£å†³æ–¹æ¡ˆã€‚

çŽ°å®žä¸­ï¼Œå¤§é‡ä½¿ç”¨çš„å¾€å¾€æ˜¯æ··åˆæŽ¨èç³»ç»Ÿã€‚å…¶åŒæ—¶ç»“åˆäº†ååŒè¿‡æ»¤ã€åŸºäºŽå†…å®¹è¿‡æ»¤ä»¥åŠå…¶ä»–æ–¹æ³•ï¼Œè¿™ç§æ··åˆå¼çš„æŽ¨èæ–¹æ³•çŽ°åœ¨è¢«å¤§é‡ä½¿ç”¨ã€‚æ··åˆæŽ¨èå¯ä»¥åœ¨å¤šç§æ–¹å¼ä¸‹è¢«å®žçŽ°ï¼šå°†åŸºäºŽå†…å®¹çš„å’ŒåŸºäºŽååŒæ»¤çš„é¢„æµ‹æ¨¡åž‹è¢«åˆ†å¼€å®žçŽ°å†å°†ä»–ä»¬ç»“åˆèµ·æ¥ï¼Œäº¦æˆ–æ˜¯å°†ä¸¤ç§æ–¹æ³•ç»Ÿä¸€åˆ°åŒä¸€æ¨¡åž‹ä¸­å¹¶ä¸€åŒå®žçŽ°ã€‚
\subsection{çŸ¥è¯†å›¾è°±çš„ç&nbsp;”ç©¶çŽ°çŠ¶}
åœ¨çŸ¥è¯†è¡¨ç¤ºä¸ŽçŸ¥è¯†æŽ¨ç†ä¸­ï¼ŒçŸ¥è¯†å›¾è°±æ˜¯ä¸€ä¸ªä½¿ç”¨å›¾ç»“æž„çš„æ•°æ®æ¨¡åž‹æˆ–æ‹“æ‰‘ç»“æž„çš„çŸ¥è¯†åº“ã€‚çŸ¥è¯†å›¾è°±å¸¸è¢«ç”¨æ¥å­˜å‚¨åŸºäºŽå†…è¿žæŽ¥çš„å¯¹å®žä½“çš„æè¿°â€”â€”å¯¹è±¡ã€äº‹ä»¶ã€æƒ…å½¢æˆ–æŠ½è±¡æ¦‚å¿µï¼Œå¹¶åŒ…æ‹¬è‡ªç”±å½¢å¼çš„è¯­ä¹‰ã€‚

è¯¥è¯æ±‡æœ€æ—©åœ¨1972å¹´äºŽä¸€ä¸ªæœ‰å…³æž„å»ºæ¨¡å—åŒ–æŒ‡ä»¤ç³»ç»Ÿçš„è¯¾ç¨‹ä¸­è¢«æå‡ºã€‚åœ¨80å¹´ä»£æœ«ï¼Œå‘½åä¸ºçŸ¥è¯†å›¾è°±çš„é¡¹ç›®ä¸»è¦èšç„¦äºŽè¯­ä¹‰ç½‘ç»œçš„è®¾è®¡ã€‚åœ¨2007å¹´ï¼ŒDBpediaå’ŒFreebaseä½œä¸ºåŸºäºŽå›¾çš„å¸¸è¯†æ€§çŸ¥è¯†åº“è¢«åˆ›ç«‹ã€‚DBpediaè‡´åŠ›äºŽä»ŽWikipediaä¸­æŠ½å–æ•°æ®ï¼Œè€ŒFreebaseä¹ŸåŒ…å«ä¸€ç³»åˆ—å…¬å¼€çš„æ•°æ®é›†ã€‚å®ƒä»¬ä¸¤è€…éƒ½æœªå°†è‡ªå·±ç§°ä¸ºâ€œçŸ¥è¯†å›¾è°±â€ï¼Œä½†å®žåˆ™æž„å»ºå¹¶æè¿°äº†æœ‰å…³çŸ¥è¯†å›¾è°±çš„ç›¸å…³æ¦‚å¿µã€‚

åœ¨2012å¹´ï¼Œè°·æ­Œæ­£å¼æå‡ºäº†çŸ¥è¯†å›¾è°±çš„æ¦‚å¿µ\cite{singhal2012introducing}ï¼Œå¹¶æž„å»ºäº†åŸºäºŽDBpediaå’ŒFreebaseä»¥åŠå…¶ä»–æ•°æ®æºçš„è°·æ­ŒçŸ¥è¯†å›¾è°±ã€‚ä»–ä»¬åŽæ¥å°†åŒ…æ‹¬CIA World Factbook, Wikidataå’ŒWikipediaçš„ç½‘ç«™çš„RDFa, Microdata, JSON-LDå†…å®¹ä»Žå®ƒä»¬çš„ç´¢å¼•ç½‘ç«™ä¸ŠæŠ½å–å¹¶çº³å…¥çŸ¥è¯†å›¾è°±ã€‚ä¸ŽçŸ¥è¯†å›¾è°±ç›¸å…³è”çš„å®žä½“ä¸Žå…³ç³»ç±»åž‹ä½¿ç”¨æ¥è‡ªscheme.orgçš„æœ¯è¯­è¢«æ›´å¹¿æ³›åœ°ç»„ç»‡äº†èµ·æ¥ã€‚

è°·æ­ŒçŸ¥è¯†å›¾è°±ä¸­éžå¸¸é‡è¦çš„ä¸€é¡¹æ˜¯â€œè‡ªç”±åº“â€ï¼Œå®ƒæ˜¯ä¸€ä¸ªå¤§åž‹çš„ååŒå·¥ä½œçŸ¥è¯†åº“ã€‚â€œè‡ªç”±åº“â€ä½¿ç”¨å›¾ç»“æž„ä½œä¸ºå…¶æ•°æ®ç»“æž„ï¼Œå¯ä»¥å°†å…¶è§†ä½œä¸€ä¸ªæœ‰å‘å›¾ã€‚è°·æ­ŒçŸ¥è¯†å›¾è°±æ¨¡åž‹ä¾¿æ˜¯è°·æ­Œå›¢é˜Ÿåˆ©ç”¨å…¶åœ¨â€œè‡ªç”±åº“â€ä¹‹ä¸Šçš„æŠ€æœ¯ç§¯ç´¯å¼€å‘å‡ºæ¥çš„\cite{æ¼†æ¡‚æž—2017çŸ¥è¯†å›¾è°±ç&nbsp;”ç©¶è¿›å±•}ã€‚

è‡ªæ­¤ï¼Œæ•°ä¸ªå¤§åž‹è·¨å›½å…¬å¸å¼€å§‹åˆ©ç”¨å®ƒä»¬çš„çŸ¥è¯†å›¾è°±ï¼Œå¾ˆå¿«çŸ¥è¯†å›¾è°±æµè¡Œèµ·æ¥ï¼Œæœ‰å…è´¹çš„çŸ¥è¯†å›¾è°±ï¼Œå¦‚DBpediaå’ŒNELLï¼Œä»¥åŠå•†ä¸šæ€§è´¨çš„çŸ¥è¯†å›¾è°±ï¼Œå¦‚è°·æ­ŒçŸ¥è¯†å›¾è°±å’ŒMicrosoft Satoriã€‚è¿™äº›çŸ¥è¯†å›¾è°±è¢«æˆåŠŸåº”ç”¨äºŽé—®ç­”ç³»ç»Ÿã€è¯å‘é‡åµŒå…¥ä¸Žæ–‡å­—åˆ†ç±»ç­‰ã€‚åœ¨2019å¹´ï¼ŒIEEEå°†å…¶å…³äºŽâ€œå¤§æ•°æ®â€å’Œâ€œæ•°æ®æŒ–æŽ˜ä¸Žæ™ºèƒ½è®¡ç®—â€çš„å¹´åº¦å›½é™…ä¼šè®®èžå…¥æœ‰å…³çŸ¥è¯†å›¾è°±çš„å›½é™…ä¼šè®®ã€‚

ä»¥ä¸Šæ˜¯çŸ¥è¯†å›¾è°±å‘å±•çš„ä¸»è¦è¿›ç¨‹ã€‚

çŸ¥è¯†å›¾è°±ä¸€èˆ¬è¡¨ç¤ºä¸ºä¸‰å…ƒç»„çš„å½¢å¼ï¼Œå³$G=(h,r,t)$ï¼Œå…¶ä¸­$G$ä¸ºçŸ¥è¯†å›¾è°±ï¼Œ$h$å’Œ$t$æ˜¯çŸ¥è¯†åº“ä¸­çš„å®žä½“é›†åˆï¼Œåˆ†åˆ«ä¸ºä¸‰å…ƒç»„çš„å¤´ç»“ç‚¹ä¸Žå°¾èŠ‚ç‚¹\cite{å¾å¢žæž—2016çŸ¥è¯†å›¾è°±æŠ€æœ¯ç»¼è¿°}ã€‚çŸ¥è¯†å›¾è°±ä¹Ÿå¯ä»¥çœ‹ä½œæ˜¯ä¸€ç§ç»“ç‚¹å¯¹åº”å®žä½“ã€è¾¹å¯¹åº”å…³ç³»çš„æœ‰å‘å¼‚æž„å›¾ã€‚

ç›®å‰çŸ¥è¯†å›¾è°±çš„æž„å»ºè¿‡ç¨‹ä¸­ä¸»è¦ä½¿ç”¨äº†å®šä¹‰å±‚æ¬¡å­¦ä¹&nbsp;åŠäº‹å®žå­¦ä¹&nbsp;ã€‚

å®šä¹‰å±‚æ¬¡å­¦ä¹&nbsp;æ˜¯é€šè¿‡ä½¿ç”¨æœºå™¨å­¦ä¹&nbsp;ç­‰æŠ€æœ¯ï¼Œä»Žæ–‡å­—ã€å›¾ç‰‡ç­‰ä¿¡æ¯ä¸­æå–çŸ¥è¯†è¡¨è¾¾ä¸­çš„å®šä¹‰ï¼Œå¹¶ç¡®å®šå…¶ä¸Šä¸‹æ–‡ä¿¡æ¯ã€‚è€ŒçŸ¥è¯†å›¾è°±æœ¬è´¨ä¸Šæ˜¯å±žäºŽä¸€ç§ç²¾ç‚¼çš„å¼‚æž„ä¿¡æ¯ç½‘ç»œã€‚åˆ©ç”¨å®šä¹‰å±‚æ¬¡å­¦ä¹&nbsp;å¯ä»¥åœ¨ä¸€å®šç¨‹åº¦ä¸Šå®Œæˆå¯¹äºŽçŸ¥è¯†å›¾è°±çš„æž„å»ºã€‚

äº‹å®žå­¦ä¹&nbsp;åˆ†ä¸ºæœ‰ç›‘ç£çš„äº‹å®žå­¦ä¹&nbsp;ã€åŠç›‘ç£çš„äº‹å®žå­¦ä¹&nbsp;ä»¥åŠæ—&nbsp;ç›‘ç£çš„äº‹å®žå­¦ä¹&nbsp;ã€‚æœ‰ç›‘ç£çš„äº‹å®žå­¦ä¹&nbsp;é€šè¿‡äººä¸ºæ&nbsp;‡æ³¨çš„è¯­æ–™ä¿¡æ¯è¾“å…¥ä»¥åŠæ·±åº¦å­¦ä¹&nbsp;æ–¹æ³•æ¥å®ŒæˆçŸ¥è¯†å›¾è°±çš„æž„å»ºï¼Œè€ŒåŠç›‘ç£çš„äº‹å®žå­¦ä¹&nbsp;æ–¹æ³•ä½¿ç”¨å¯å‘å¼åœ°è‡ªåŠ¨æ&nbsp;‡æ³¨æ–‡æœ¬ï¼Œä½†ç¼ºé™·æ˜¯è®­ç»ƒæ•°æ®é›†ä¸­å¯èƒ½å«æœ‰å¤§é‡çš„å™ªå£°æ•°æ®ã€‚è€Œæ—&nbsp;ç›‘ç£çš„å­¦ä¹&nbsp;æ–¹æ³•ä¸»è¦ä½¿ç”¨åŸºäºŽæ·±åº¦å­¦ä¹&nbsp;æ¨¡åž‹çš„è‡ªç„¶è¯­è¨€å¤„ç†ï¼ˆNLPï¼‰çš„æ–¹æ³•ï¼Œæ—&nbsp;é¡»äººä¸ºå¹²é¢„ï¼Œç”±è®­ç»ƒæ¨¡åž‹è‡ªåŠ¨å®Œæˆä¿¡æ¯æŠ½å–ã€ä¿¡æ¯æ•´åˆã€‚éšç€æ·±åº¦å­¦ä¹&nbsp;ç®—æ³•çš„å‘å±•ï¼Œç›®å‰åŸºäºŽæ—&nbsp;ç›‘ç£çš„äº‹å®žå­¦ä¹&nbsp;é€æ¸æˆä¸ºä¸»æµ\cite{æŽæ¶“å­2017çŸ¥è¯†å›¾è°±ç&nbsp;”ç©¶ç»¼è¿°}ã€‚

ç›®å‰å‡ºçŽ°äº†è¯¸å¤šä½¿ç”¨ä»¥ä¸Šç†è®ºæ–¹æ³•è®¾è®¡çš„çŸ¥è¯†å›¾è°±åµŒå…¥ç®—æ³•ï¼šåŸºäºŽç¿»è¯‘çš„TransE\cite{bordes2013translating}ã€TransH\cite{wang2014knowledge}ã€TransR\cite{lin2017learning}å’ŒåŸºäºŽè¯­ä¹‰åˆ†æžçš„DistMult\cite{yang2014embedding}ç­‰ã€‚

ç›®å‰ï¼ŒçŸ¥è¯†å›¾è°±åœ¨ä¸šç•Œçš„åº”ç”¨å·²ç»å–å¾—äº†å·¨å¤§æˆåŠŸ\cite{æ›¹å€©2015çŸ¥è¯†å›¾è°±çš„æŠ€æœ¯å®žçŽ°æµç¨‹åŠç›¸å…³åº”ç”¨}ï¼š

ï¼ˆ1ï¼‰æœç´¢å¼•æ“ŽæŠ€æœ¯ã€‚å¦‚å‰æ‰€è¿°ï¼ŒçŸ¥è¯†å›¾è°±æœ€æ—©ä¾¿æ˜¯ç”±è°·æ­Œæå‡ºä»¥æ”¹å–„å…¶æœç´¢å¼•æ“Žçš„ã€‚åœ¨å°†çŸ¥è¯†å›¾è°±åº”ç”¨äºŽæœç´¢å¼•æ“Žä¹‹åŽï¼Œæœç´¢å¼•æ“Žèƒ½å¯¹ä¸€äº›å¸¸è§çš„æœç´¢å†…å®¹åŸºäºŽå…¶ä½¿ç”¨çš„çŸ¥è¯†å›¾è°±ä¿¡æ¯å¿«é€Ÿç»™å‡ºæœç´¢ç»“æžœã€‚åŒæ—¶ï¼Œå¯¹äºŽä¸€äº›åè¯æ€§çš„æœç´¢å†…å®¹ï¼Œæœç´¢å¼•æ“Žèƒ½ä½¿ç”¨çŸ¥è¯†å›¾è°±ä»¥çŸ¥è¯†å¡ç‰‡çš„å½¢å¼ç»™å‡ºå…¶ç›¸å…³ä¿¡æ¯ã€‚ç&nbsp;”ç©¶è¡¨æ˜Žï¼Œåœ¨è°·æ­Œå°†çŸ¥è¯†å›¾è°±æŠ€æœ¯èžå…¥å…¶æœç´¢å¼•æ“Žä¹‹åŽï¼Œç”¨æˆ·ç‚¹å‡»è¿›å…¥ç»´åŸºç™¾ç§‘çš„æ¬¡æ•°æ˜Žæ˜¾å‡å°‘ï¼Œè¯´æ˜Žåˆ©ç”¨çŸ¥è¯†å›¾è°±æŠ€æœ¯çš„æœç´¢å¼•æ“Žå¯ä»¥æ›´å¥½çš„ç›´æŽ¥ç»™å‡ºç”¨æˆ·éœ€è¦çš„ä¿¡æ¯è€Œä¸éœ€è¦ç”¨æˆ·å†æµè§ˆå…¶ä»–ç½‘ç«™ã€‚

ï¼ˆ2ï¼‰æ™ºèƒ½é—®ç­”ã€‚ä¿¡æ¯æ£€ç´¢ç³»ç»Ÿä¸­éžå¸¸å¸¸è§çš„ä¸€ç§ä¾¿æ˜¯é—®ç­”ç³»ç»Ÿã€‚é—®ç­”ç³»ç»Ÿåœ¨ç”¨æˆ·è¾“å…¥é—®é¢˜åŽèƒ½è¿…é€Ÿç»™å‡ºç”¨æˆ·éœ€è¦çš„ç­”æ¡ˆã€‚è€Œåœ¨å°†çŸ¥è¯†å›¾è°±æŠ€æœ¯åº”ç”¨äºŽé—®ç­”ç³»ç»ŸåŽï¼Œå…¶å›žç­”çš„å‡†ç¡®çŽ‡æœ‰éžå¸¸å¤§çš„æå‡ã€‚ç›®å‰è‹¹æžœçš„æ™ºèƒ½åŠ©ç†Siriä»¥åŠè°·æ­Œçš„æ™ºèƒ½åŠ©ç†è°·æ­ŒåŠ©ç†ï¼ˆGoogle Assistantï¼‰éƒ½ä½¿ç”¨äº†çŸ¥è¯†å›¾è°±æŠ€æœ¯ã€‚

æ­¤å¤–ï¼ŒçŸ¥è¯†å›¾è°±è¿˜å¹¿æ³›åº”ç”¨äºŽé‡‘èžã€åŒ»ç–—ç­‰å¤šä¸ªé¢†åŸŸã€‚
\subsection{åŸºäºŽçŸ¥è¯†å›¾è°±çš„æŽ¨èç³»ç»Ÿç&nbsp;”ç©¶çŽ°çŠ¶}
ç”±äºŽä¼&nbsp;ç»Ÿçš„æŽ¨èç³»ç»Ÿæ—&nbsp;æ³•è§£å†³ç¨€ç¼ºæ€§é—®é¢˜å’Œå†·å¯åŠ¨é—®é¢˜ï¼Œå›&nbsp;æ­¤ç&nbsp;”ç©¶äººå‘˜ä¼å›¾å°†è¾…åŠ©ä¿¡æ¯åŠ&nbsp;å…¥åˆ°æŽ¨èç®—æ³•ä¸­ä»¥æ”¹å–„æŽ¨èæ€§èƒ½ã€‚è€Œè¿™ç±»è¾…åŠ©ä¿¡æ¯æœ‰ç¤¾äº¤ç½‘ç»œã€ç”¨æˆ·/ç‰©å“å±žæ€§ã€å›¾åƒä¸Žä¸Šä¸‹æ–‡ç­‰ã€‚

åœ¨æ•°ç§ç±»åž‹çš„è¾…åŠ©ä¿¡æ¯ä¸­ï¼ŒçŸ¥è¯†å›¾è°±é€šå¸¸åŒ…å«æœ‰æ›´ä¸°å¯Œçš„ä¿¡æ¯ä»¥åŠç‰©å“é—´çš„è”ç³»ã€‚å›¾\ref{fig:enhanced-recommendation}ä¸­è¯´æ˜Žäº†çŸ¥è¯†å›¾è°±æä¾›ä¸°å¯Œçš„ä¿¡æ¯ä¸Žç‰©å“é—´çš„è¿žæŽ¥ï¼Œæœ‰åˆ©äºŽæé«˜æŽ¨èç»“æžœçš„å‡†ç¡®æ€§ã€å¤šæ&nbsp;·æ€§å’Œå¯è§£é‡Šæ€§ã€‚çŸ¥è¯†å›¾è°±å¯ä»¥ä»Žä»¥ä¸‹ä¸‰ä¸ªæ–¹é¢æé«˜æŽ¨èæ€§èƒ½ï¼š
\begin{figure}
	\includegraphics[width=\textwidth]{figures/enhanced-recommendation.png}
	\bicaption{åŸºäºŽçŸ¥è¯†å›¾è°±çš„ç”µå½±æŽ¨èç³»ç»Ÿ}{Knowledge graph enhanced movie recommendation system}\label{fig:enhanced-recommendation}
\end{figure}

ï¼ˆ1ï¼‰çŸ¥è¯†å›¾è°±å¼•å…¥äº†å®žä½“è¯­ä¹‰ç›¸å…³æ€§ï¼Œè¿™å¯ä»¥å¸®åŠ©æ‰¾åˆ°å®žä½“é—´æ½œåœ¨çš„è”ç³»å¹¶æé«˜æŽ¨èç‰©å“çš„å‡†ç¡®æ€§ã€‚

ï¼ˆ2ï¼‰çŸ¥è¯†å›¾è°±ç”±å„ç§ç±»åž‹çš„å…³ç³»æž„æˆï¼Œè¿™å¯¹åˆç†åœ°æ‰©å±•ç”¨æˆ·å…´è¶£å¹¶å¢žåŠ&nbsp;æŽ¨èå•†å“çš„å¤šæ&nbsp;·æ€§æ˜¯æœ‰ç›Šçš„ã€‚

ï¼ˆ3ï¼‰çŸ¥è¯†å›¾è°±è¿žæŽ¥ç”¨æˆ·çš„åŽ†å²è®°å½•åŠæŽ¨èçš„å•†å“ï¼Œå›&nbsp;æ­¤æé«˜äº†æŽ¨èç³»ç»Ÿçš„å¯è§£é‡Šæ€§ã€‚

å°†çŸ¥è¯†å›¾è°±ä½œä¸ºè¾…åŠ©ä¿¡æ¯åŠ&nbsp;å…¥è‡³æŽ¨èç³»ç»Ÿä¸­æ˜¯å½“å‰çš„çƒ­ç‚¹é—®é¢˜ï¼Œç›®å‰åŸºäºŽçŸ¥è¯†å›¾è°±æž„å»ºæŽ¨èç³»ç»Ÿçš„æ–¹æ³•ä¸»è¦æœ‰ä»¥ä¸‹å‡&nbsp;ç±»ï¼š

ï¼ˆ1ï¼‰åŸºäºŽåµŒå…¥çš„æ–¹æ³•ã€‚åŸºäºŽåµŒå…¥çš„æ–¹æ³•é€šè¿‡çŸ¥è¯†å›¾è°±åµŒå…¥è®¡ç®—ç®—æ³•å°†çŸ¥è¯†å›¾è°±ä¸­çš„å®žä½“ä¿¡æ¯ä¸Žå…³ç³»ä¿¡æ¯æ˜&nbsp;å°„ä¸ºä½Žç»´å‘é‡ç©ºé—´ä¸­çš„å‘é‡è¡¨ç¤ºï¼ˆåµŒå…¥è¡¨ç¤ºï¼‰ã€‚è€ŒåŽæŽ¨èç®—æ³•åˆ©ç”¨è¯¥åµŒå…¥è¡¨ç¤ºæ¥å®Œæˆç›¸åº”çš„è®¡ç®—ï¼Œå¹¶ç»™å‡ºæŽ¨èç»“æžœã€‚ç›®å‰å°†çŸ¥è¯†å›¾è°±ä¸­åµŒå…¥è¡¨ç¤ºä¿¡æ¯ä½œä¸ºè¾…åŠ©ä¿¡æ¯çš„æŽ¨èæ¨¡åž‹æœ‰CKE\cite{zhang2016collaborative}ã€DKN\cite{wang2018dkn}ä»¥åŠSHINE\cite{wang2018shine}ç­‰ã€‚CKEæ˜¯å¾®è½¯åœ¨ KDD2016 å¹´å‘è¡¨çš„ï¼Œå…¶æ¨¡åž‹ç»“æž„åœ¨åŽŸæœ‰ç³»ç»Ÿè¿‡æ»¤å¾—åˆ°$U$, $V$å‘é‡çš„åŸºç¡€ä¸Šï¼Œå°†ç‰©å“çš„åµŒå…¥ä¸Žå…¶ä»–æè¿°ä¿¡æ¯ç›¸ç»“åˆï¼Œè¿™äº›ä¿¡æ¯ä¸»è¦æœ‰:
é‡‡ç”¨ TransR ç®—æ³•åµŒå…¥å¾—åˆ°çš„çŸ¥è¯†å›¾è°±ï¼Œå›¾è°±å†…æ¯ä¸ªå®žä½“åµŒå…¥è¡¨ç¤ºè¢«æå–ä¸ºç‰©å“çš„ç»“æž„åŒ–å‘é‡ä¿¡æ¯ã€‚
é‡‡ç”¨SDAEæ¨¡åž‹å¾—åˆ°ç‰©å“æè¿°æ€§æ–‡æœ¬çš„æ–‡æœ¬åµŒå…¥è¡¨ç¤ºã€‚
é‡‡ç”¨SCAEæ¨¡åž‹å¾—åˆ°ç‰©å“ç›¸å…³å›¾åƒçš„è§†è§‰åµŒå…¥è¡¨ç¤ºã€‚DKNæ˜¯ä¹‹å‰åŒæ&nbsp;·ç”±å¾®è½¯å›¢é˜Ÿåœ¨WWW2018ä¼šè®®ä¸Šå‘è¡¨çš„ã€‚å®ƒæ˜¯ä¸€ä¸ªä¸»è¦é’ˆå¯¹æ–°é—»æŽ¨èä»»åŠ¡æå‡ºçš„æ¡†æž¶ï¼ŒçŸ¥è¯†å›¾è°±ç”¨äºŽè¾…åŠ©è®¡ç®—æ–°é—»æ&nbsp;‡é¢˜çš„åµŒå…¥è¡¨ç¤ºã€‚DKNæå‡ºå¯¹æ–°é—»æ&nbsp;‡é¢˜å†…æ¯ä¸€ä¸ªå…³é”®å®žä½“ï¼Œåœ¨çŸ¥è¯†å›¾è°±å†…æ‰¾åˆ°å…¶å®žä½“åµŒå…¥å’Œä¸Šä¸‹æ–‡åµŒå…¥ã€‚
SHINEè®¾è®¡æ·±åº¦è‡ªç¼–ç&nbsp;å™¨æ¥åµŒå…¥è¯­ä¹‰ç½‘ç»œï¼Œç¤¾äº¤ç½‘ç»œå¹¶è¿›è¡ŒæŽ¨èã€‚å…¶ä¸ºç”¨æˆ·-ç‰©å“çš„äº¤äº’ä½¿ç”¨è‡ªåŠ¨ç¼–ç&nbsp;å™¨å¹¶è®¡ç®—ç”¨æˆ·æ„Ÿå…´è¶£çš„æ¦‚çŽ‡ã€‚æ­¤å¤–ï¼ŒåµŒå…¥è¡¨ç¤ºå¯ä»¥åŒ…å«å®žä½“çš„ç‹¬çƒ­ç¼–ç&nbsp;\cite{koren2008factorization}ã€è¯æ±‡é›†\cite{wang2018dkn}ã€ä¸Šä¸‹æ–‡ä¿¡æ¯\cite{sun2017collaborative}æˆ–å±žæ€§\cite{wang2018shine}ï¼Œè€Œé€‰æ‹©å“ªä¸€ç§åµŒå…¥å‘é‡çš„è®¡ç®—æ–¹å¼å–å†³äºŽå…¶åº”ç”¨åœºåˆã€‚

ï¼ˆ2ï¼‰åŸºäºŽè·¯å¾„çš„æ–¹æ³•ã€‚åŸºäºŽè·¯å¾„çš„æ–¹æ³•å°†çŸ¥è¯†å›¾è°±ä½œä¸ºå¼‚æž„ä¿¡æ¯ç½‘ç»œï¼Œä¸»è¦æ˜¯é€šè¿‡çŸ¥è¯†å›¾è°±ä¸­çš„è·¯å¾„å…³ç³»ä¿¡æ¯æ¥è¾…åŠ©æŽ¨èç®—æ³•å®ŒæˆæŽ¨èç›¸å…³çš„è®¡ç®—å·¥ä½œã€‚ç›®å‰åŸºäºŽçŸ¥è¯†å›¾è°±ä¸­è·¯å¾„ä¿¡æ¯çš„æŽ¨èæ¨¡åž‹æœ‰HIN\cite{zhao2017meta}ã€RKGE\cite{sun2018recurrent}ç­‰ã€‚HINæ˜¯2017å¹´åœ¨KDDä¸Šæå‡ºçš„ï¼Œä¸ŽPER\cite{yu2014personalized}ç±»ä¼¼ï¼Œéƒ½å°†çŸ¥è¯†å›¾è°±ä½œä¸ºå¼‚æž„ä¿¡æ¯ç½‘ç»œã€‚å®ƒé’ˆå¯¹Yelpå’ŒAmazonæ•°æ®é›†åˆ†åˆ«è®¾è®¡äº†å…ƒè·¯å¾„ï¼Œå¹¶å¾—åˆ°äº†Lä¸ªè¯„ä¼°å‡½æ•°ã€‚å¹¶åœ¨å»ºæ¨¡æ—¶ä½¿ç”¨FMæ¨¡åž‹ï¼Œä½¿ç”¨FMæŸå¤±å‡½æ•°ç»„è¿›è¡Œæ¢¯åº¦ä¸‹é™ï¼Œå¹¶æœ€ç»ˆå¾—åˆ°æŽ¨èç»“æžœã€‚RKGEæ¨¡åž‹ä½¿ç”¨äº†åŸºäºŽå¾ªçŽ¯ç¥žç»ç½‘ç»œçš„æ–¹æ³•ã€‚åœ¨äººä¸ºå®šä¹‰å…ƒè·¯å¾„å¹¶æŠ½å–å‡ºæ‰€æœ‰è·¯å¾„ä¹‹åŽï¼Œå¯¹æ¯ç§å…ƒè·¯å¾„éƒ½ä½¿ç”¨å¾ªçŽ¯ç¥žç»ç½‘ç»œæ¨¡åž‹æ¥æŠ½å–å¹¶æŽ¨ç†å…¶è·¯å¾„ä¸­æ‰€åŒ…å«çš„ä¿¡æ¯ã€‚

ï¼ˆ3ï¼‰æ··åˆå¼æ–¹æ³•ã€‚åŸºäºŽåµŒå…¥çš„æ–¹æ³•æœªèƒ½å……åˆ†åˆ©ç”¨å®žä½“é—´çš„å…³ç³»æ¨¡å¼ä¿¡æ¯ï¼Œè€ŒåŸºäºŽè·¯å¾„çš„æ–¹æ³•ä»…è€ƒè™‘äº†å®žä½“é—´çš„è¯­ä¹‰è¿žé€šä¿¡æ¯ï¼Œæœªèƒ½æœ‰æ•ˆä½¿ç”¨ç”¨æˆ·/ç‰©å“æœ¬èº«çš„è¯­ä¹‰ä¿¡æ¯ã€‚å›&nbsp;æ­¤ï¼Œç›®å‰å‡ºçŽ°äº†æ··åˆå¼æ–¹æ³•ï¼Œå³åŒæ—¶ç»“åˆäº†åŸºäºŽåµŒå…¥çš„æ–¹æ³•ä¸ŽåŸºäºŽè·¯å¾„çš„æ–¹æ³•çš„ä¼˜ç‚¹ã€‚æ··åˆå¼æ–¹æ³•æ˜¯å½“å‰çš„ç&nbsp;”ç©¶çƒ­ç‚¹ä¸Žç„¦ç‚¹ï¼Œä½¿ç”¨è¯¥æ–¹æ³•çš„å…¸åž‹æ¨¡åž‹æœ‰AKUPM\cite{tang2019akupm}å’ŒRCoLM\cite{cao2019unifying}ç­‰ã€‚AKUPMæ˜¯é€šè¿‡æ³¨æ„åŠ›æœºåˆ¶å¢žå¼ºçš„æŽ¨èæ¨¡åž‹ï¼ŒRCoLMåˆ™æ˜¯åŸºäºŽè”åˆå­¦ä¹&nbsp;å¹¶ä»¥ä»»åŠ¡ä¸ºå¯¼å‘çš„æŽ¨èç®—æ³•ã€‚æœ¬æ–‡å®žçŽ°çš„ç”µå½±æŽ¨èç³»ç»ŸåŸºäºŽæ–‡çŒ®\parencite{wang2018ripplenet}ï¼Œå…¶æ‰€ä½¿ç”¨çš„ç®—æ³•æ¨¡åž‹æ˜¯ä¹Ÿå±žäºŽæ··åˆå¼æ–¹æ³•ã€‚
\section{æœ¬æ–‡çš„ä¸»è¦ç&nbsp;”ç©¶å†…å®¹}
æœ¬æ–‡åœ¨æŽ¨èç®—æ³•ã€çŸ¥è¯†å›¾è°±å’ŒåŸºäºŽçŸ¥è¯†å›¾è°±çš„æŽ¨èç®—æ³•çš„ç›¸å…³ç&nbsp;”ç©¶åŸºç¡€ä¸Šï¼Œåšäº†ä»¥ä¸‹ä¸‰æ–¹é¢çš„ç&nbsp;”ç©¶ï¼š

ï¼ˆ1ï¼‰å¯¹æŽ¨èç³»ç»Ÿæ‰€éœ€çš„æ•°æ®è¿›è¡Œé‡‡é›†å’Œå¤„ç†ï¼Œä½¿ç”¨â€œMovieLens 1M Datasetâ€ä½œä¸ºæ•°æ®é›†ï¼Œæ­¤å¤–è¿˜ä»ŽIMDbåŠè±†ç“£ç½‘çˆ¬å–äº†ç›¸å…³ç”µå½±æ•°æ®å¹¶è¿›è¡Œå¤„ç†ï¼Œä½œä¸ºæœ¬æ–‡çš„ç&nbsp;”ç©¶å¯¹è±¡ã€‚

ï¼ˆ2ï¼‰æ&nbsp;¹æ®æ–‡çŒ®\parencite{wang2018ripplenet}æå‡ºçš„ç®—æ³•ï¼Œå®žçŽ°äº†åŸºäºŽçŸ¥è¯†å›¾è°±çš„æ¶Ÿæ¼ªç½‘ç»œæŽ¨èç®—æ³•ï¼Œæ­¤ç®—æ³•èƒ½æ&nbsp;¹æ®ç”¨æˆ·çš„åŽ†å²è¡Œä¸ºä¸ºç”¨æˆ·è¿›è¡Œç”µå½±æŽ¨èã€‚ä¸åŒäºŽæ–‡çŒ®\parencite{wang2018ripplenet}ä¸­ä»…ä½¿ç”¨ç”¨æˆ·è¯„åˆ†è®¡ç®—ç”¨æˆ·åå¥½ï¼Œæœ¬æ–‡åœ¨ç”¨æˆ·åå¥½çš„è®¡ç®—è¿‡ç¨‹ä¸­è¿˜ç»“åˆäº†ç”¨æˆ·æ”¶è—ï¼Œè¿™åœ¨ä¸€å®šç¨‹åº¦ä¸Šç¼“è§£äº†å†·å¯åŠ¨é—®é¢˜å¹¶æ”¹è¿›äº†æŽ¨èæ€§èƒ½ã€‚æ­¤å¤–ï¼Œå°†æ¶Ÿæ¼ªç½‘ç»œç®—æ³•ä¸Žå…¶ä»–åŸºäºŽçŸ¥è¯†å›¾è°±çš„æŽ¨èç®—æ³•ï¼ˆDKN\cite{wang2018dkn}ã€CKE\cite{zhang2016collaborative} ã€PER\cite{yu2014personalized}ã€SHINE\cite{wang2018shine}ã€LibFM\cite{rendle2012factorization}å’ŒWide\&amp;Deep\cite{cheng2016wide}ç­‰ï¼‰è¿›è¡Œäº†æ€§èƒ½æ¯”è¾ƒã€‚

ï¼ˆ3ï¼‰å®žçŽ°äº†ä¸€ä¸ªåŸºäºŽçŸ¥è¯†å›¾è°±çš„ç”µå½±æŽ¨èç³»ç»Ÿï¼Œè¯¥ç³»ç»Ÿèƒ½å¤Ÿæ&nbsp;¹æ®ç”¨æˆ·çš„åŽ†å²è¡Œä¸ºï¼ˆè¯„åˆ†ã€æ”¶è—ç­‰ï¼‰æ¥ä¸ºç”¨æˆ·è¿›è¡Œç”µå½±æŽ¨èã€‚è¯¥ç³»ç»Ÿåˆ†ä¸ºç®¡ç†å‘˜ã€æœªç™»å½•ç”¨æˆ·ã€æ™®é€šç™»å½•ç”¨æˆ·ã€‚ç®¡ç†å‘˜èƒ½å¢žåŠ&nbsp;ã€ä¿®æ”¹å’Œåˆ&nbsp;é™¤ç”µå½±å’Œæ™®é€šç”¨æˆ·ï¼›æœªç™»å½•ç”¨æˆ·èƒ½æ&nbsp;¹æ®ç”µå½±åˆ†ç±»æŸ¥çœ‹ç”µå½±åˆ—è¡¨ä»¥åŠæŸ¥çœ‹ç”µå½±è¯¦æƒ…ï¼›æ™®é€šç™»å½•ç”¨æˆ·é™¤äº†èƒ½è¿›è¡Œæœªç™»å½•ç”¨æˆ·çš„æ‰€æœ‰æ“ä½œå¤–ï¼Œè¿˜èƒ½è´­ä¹°ã€æ”¶è—åŠä¸ºç”µå½±è¯„åˆ†ã€‚
\section{è®ºæ–‡ç»“æž„}
æœ¬è®ºæ–‡ä¸€å…±åˆ†ä¸ºäº”ä¸ªç«&nbsp;èŠ‚ã€‚

ç¬¬1ç«&nbsp;æ˜¯ç»ªè®ºã€‚ç®€æ˜Žä»‹ç»çŸ¥è¯†å›¾è°±ä½œä¸ºè¾…åŠ©ä¿¡æ¯åœ¨æŽ¨èç®—æ³•ä¸­çš„ä½œç”¨ä»¥åŠæŽ¨èç®—æ³•å¯¹åœ¨çº¿æµåª’ä½“æ’­æ”¾å¹³å°çš„ä½œç”¨ï¼ŒåŒæ—¶ä»‹ç»äº†æŽ¨èç³»ç»Ÿã€çŸ¥è¯†å›¾è°±å’ŒåŸºäºŽçŸ¥è¯†å›¾è°±çš„æŽ¨èç³»ç»Ÿçš„å‘å±•å’Œåº”ç”¨ï¼Œå¹¶è¯´æ˜Žäº†æœ¬æ–‡çš„ä¸»è¦å·¥ä½œã€‚

ç¬¬2ç«&nbsp;æ˜¯ç›¸å…³ç†è®ºå’ŒæŠ€æœ¯ã€‚ä»‹ç»äº†ç›®å‰çŸ¥è¯†å›¾è°±å’ŒæŽ¨èç³»ç»Ÿçš„ç&nbsp;”ç©¶çŽ°çŠ¶ï¼Œå¹¶å¯¹ä¼&nbsp;ç»Ÿçš„æŽ¨èç®—æ³•ä¸ŽåŠ&nbsp;å…¥è¾…åŠ©ä¿¡æ¯çš„æŽ¨èç®—æ³•ä½œäº†è¾ƒä¸ºç»†è‡´çš„åˆ†ç±»ä¸Žé˜è¿°ã€‚åŒæ—¶è¿˜ä»‹ç»äº†æœ¬æ–‡å®žçŽ°çš„ç”µå½±æŽ¨èç³»ç»Ÿæ‰€ä½¿ç”¨çš„æŠ€æœ¯æ&nbsp;ˆï¼Œè¯¸å¦‚æ•°æ®åº“ã€å‰ç«¯æž¶æž„ã€åŽç«¯æž¶æž„ç­‰ã€‚

ç¬¬3ç«&nbsp;æ˜¯æ¶Ÿæ¼ªç½‘ç»œã€‚ä»‹ç»äº†æ¶Ÿæ¼ªç½‘ç»œç®—æ³•ï¼Œä»¥åŠè®¡ç®—ç›¸å…³å®žä½“åµŒå…¥çš„è¿‡ç¨‹ä¸­ä½¿ç”¨çš„æ·±åº¦å­¦ä¹&nbsp;ç®—æ³•ï¼Œå¹¶å¯¹ä»¥ä¸Šç®—æ³•è¿›è¡Œäº†è®¨è®ºã€‚æœ€åŽï¼Œè¿˜å¯¹æ¶Ÿæ¼ªç½‘ç»œæŽ¨èç®—æ³•çš„å‡†ç¡®åº¦è¿›è¡Œäº†æµ‹è¯•ã€‚

ç¬¬4ç«&nbsp;æ˜¯ç”µå½±æŽ¨èç³»ç»Ÿã€‚ä»‹ç»äº†ä»¥æ¶Ÿæ¼ªç½‘ç»œç®—æ³•ä¸ºåŸºç¡€æž„å»ºçš„ç”µå½±æŽ¨èç³»ç»Ÿï¼šä»‹ç»äº†ç³»ç»Ÿæž¶æž„ã€ç³»ç»ŸåŠŸèƒ½ã€ç”µå½±æŽ¨èæµç¨‹ä»¥åŠå¦‚ä½•ä¿è¯è¯¥ç³»ç»Ÿçš„å®‰å…¨æ€§ã€‚

ç¬¬5ç«&nbsp;æ˜¯ç&nbsp;”ç©¶ç»“è®ºå’Œå±•æœ›ã€‚æ€»ç»“äº†æ¶Ÿæ¼ªç½‘ç»œç®—æ³•çš„è®¾è®¡ä¸Žå®žçŽ°ã€ç”µå½±æŽ¨èç³»ç»Ÿçš„åŠŸèƒ½ï¼Œå¹¶æŒ‡å‡ºäº†å…¶ä¸­å¯ä»¥æ”¹è¿›çš„åœ°æ–¹ã€‚
\chapter{ç›¸å…³ç†è®ºå’ŒæŠ€æœ¯}
\section{çŸ¥è¯†å›¾è°±}
\subsection{çŸ¥è¯†å›¾è°±çš„æ¦‚å¿µåŠå‘å±•è¿›ç¨‹}
çŸ¥è¯†å›¾è°±ï¼Œæ˜¯ä¸€ç§çŸ¥è¯†å¯è§†åŒ–æˆ–çŸ¥è¯†é¢†åŸŸæ˜&nbsp;å°„åœ°å›¾ï¼Œæ˜¯æ˜¾ç¤ºçŸ¥è¯†å‘å±•è¿›ç¨‹ä¸Žç»“æž„å…³ç³»çš„ä¸€ç³»åˆ—ä¸‰å…ƒç»„ï¼ˆå®žä½“ï¼Œå…³ç³»ï¼Œå®žä½“ï¼‰ï¼Œç”¨å¯è§†åŒ–æŠ€æœ¯æè¿°çŸ¥è¯†ä¿¡æ¯åŠå…¶è½½ä½“ï¼ŒæŒ–æŽ˜ã€åˆ†æžã€å»ºç«‹ã€ç»˜åˆ¶å’Œå¯è§†åŒ–çŸ¥è¯†ä»¥åŠå®žä½“ä¹‹é—´çš„ç›¸äº’å…³ç³»ã€‚

çŸ¥è¯†å›¾è°±æ˜¯è°·æ­ŒäºŽ2012å¹´æå‡ºçš„ï¼Œç›®çš„æ˜¯ä¸ºäº†å¢žå¼ºå…¶æœç´¢å¼•æ“Žã€‚è€ŒåŽå¾®è½¯äºŽ2013å¹´7æœˆå‘å¸ƒäº†Microsoft SatoriçŸ¥è¯†å›¾è°±ã€‚é™¤ä¼&nbsp;ç»Ÿæœç´¢æœåŠ¡æä¾›å•†ä¹‹å¤–ï¼ŒåŒ…æ‹¬Appleï¼ŒFacebookï¼ŒIBMç­‰äº’è”ç½‘ä¼ä¸šä¹Ÿåœ¨æŽ¢ç´¢è¯¥é¢†åŸŸã€‚æ­¤å¤–ï¼Œä¸šç•Œä¹Ÿå‡ºçŽ°äº†ç¤¾åŒºæž„å»ºçš„å¼€æºçŸ¥è¯†å›¾è°±ï¼Œå¦‚DBpediaï¼ŒNELLå’ŒWikidataç­‰ã€‚ä»¥Freebaseã€WordNetå’ŒGeneOntologyç­‰ä¸ºä¾‹çš„çŸ¥è¯†å›¾è°±å·²æˆä¸ºæ”¯æŒäººå·¥æ™ºèƒ½ç›¸å…³åº”ç”¨çš„éžå¸¸é‡è¦çš„èµ„æºã€‚
\subsection{çŸ¥è¯†å›¾è°±çš„æž„å»ºæ–¹æ³•}
çŸ¥è¯†å›¾è°±æ˜¯ç”±å¤šå®žä½“ç»“ç‚¹å’Œä¸åŒå…³ç³»è¾¹æž„æˆçš„å¤šå…³ç³»å›¾ï¼Œä¸€ä¸ªè¾¹æ˜¯ä¸€ä¸ªäº‹å®žä¸‰å…ƒç»„ï¼ˆå¤´ç»“ç‚¹ï¼Œå…³ç³»ï¼Œå°¾ç»“ç‚¹ï¼‰ï¼Œè®°ä¸º$(h,r,t)$ã€‚è€ŒçŸ¥è¯†å›¾è°±çš„æž„å»ºä¾¿æ˜¯å¯»æ‰¾è¿™æ&nbsp;·çš„ä¸‰å…ƒç»„ã€‚

åœ¨è¿‡åŽ»åå¹´é—´ï¼Œå‡ºçŽ°äº†è¯¸å¤šæž„å»ºå¤§åž‹çŸ¥è¯†å›¾è°±çš„æ–¹æ³•ï¼Œç„¶è€Œï¼Œè¿˜æ²¡æœ‰æ¸…æ™°å‡†ç¡®çš„æž„å»ºçŸ¥è¯†å›¾è°±çš„èŒƒå¼ã€‚ä¸»è¦æœ‰ä¸¤ä¸ªå›°éš¾ï¼šï¼ˆ1ï¼‰çŸ¥è¯†å›¾è°±æ˜¯ç¬¦å·åŒ–çš„é€»è¾‘ç³»ç»Ÿè€ŒçŸ¥è¯†å›¾è°±çš„åº”ç”¨å¸¸å¸¸åŒ…å«åœ¨è¿žç»­ç©ºé—´ä¸­çš„è®¡ç®—ï¼›ï¼ˆ2ï¼‰åœ¨ä¸€å¼&nbsp;çŸ¥è¯†å›¾è°±ä¸Šè¿›è¡ŒçŸ¥è¯†èšåˆæ˜¯å›°éš¾çš„ã€‚

ç›®å‰ï¼ŒçŸ¥è¯†å›¾è°±ä¸»è¦é€šè¿‡ä»¥ä¸‹3ä¸ªæ­¥éª¤æ¥å®Œæˆæž„å»ºï¼š

ï¼ˆ1ï¼‰ä¿¡æ¯æŠ½å–ã€‚å³ä»Žå„ç±»åž‹çš„æºæ•°æ®ä¸­æŠ½å–å‡ºå®žä½“ï¼ˆæ¦‚å¿µï¼‰ã€å®žä½“é—´çš„å…³ç³»ï¼Œå¹¶åœ¨æ­¤åŸºç¡€ä¹‹ä¸Šå½¢æˆç¡®åˆ‡çš„çŸ¥è¯†è¡¨è¾¾ã€‚

ï¼ˆ2ï¼‰çŸ¥è¯†èžåˆã€‚å¯¹æ–°èŽ·å¾—çš„çŸ¥è¯†è¿›è¡Œæ•´åˆï¼Œä»¥å®Œæˆæ¶ˆæ­§ä¹‰ã€‚

ï¼ˆ3ï¼‰çŸ¥è¯†åŠ&nbsp;å·¥ã€‚ç»è¿‡è´¨é‡æ&nbsp;¸æŸ¥åŽå°†èžåˆåŽçš„æ–°çŸ¥è¯†çš„æ­£ç¡®çš„éƒ¨åˆ†åŠ&nbsp;å…¥è‡³çŸ¥è¯†å›¾è°±ä¸­ã€‚
\subsection{çŸ¥è¯†å›¾è°±çš„åº”ç”¨}
çŸ¥è¯†å›¾è°±ä»¥æ›´æŽ¥è¿‘äººç±»è®¤çŸ¥çš„æ–¹å¼ä¸ºäº’è”ç½‘çš„ä¿¡æ¯è¡¨è¾¾æä¾›äº†ä¸€ç§æ–°çš„æ–¹å¼ï¼Œè€Œä¸”æä¾›äº†ä¸€ç§æ›´ç›ŠäºŽç»„ç»‡ä¸Žåˆ©ç”¨æµ·é‡æ•°æ®çš„æ–¹å¼ã€‚å½“å‰çŸ¥è¯†å›¾è°±ä¸»è¦ç”¨äºŽæŽ¨èç³»ç»Ÿã€æœç´¢å¼•æ“Žã€ä¸ªäººåŠ©ç†ä»¥åŠé—®ç­”ç³»ç»Ÿã€‚
\section{æŽ¨èç³»ç»Ÿ}
æŽ¨èç³»ç»Ÿæ˜¯å†…å®¹è¿‡æ»¤ç³»ç»Ÿçš„ä¸€ä¸ªå­é›†ï¼Œè¢«å¹¿æ³›ä½¿ç”¨äºŽå¤šä¸ªé¢†åŸŸï¼Œå®ƒå‘ç”¨æˆ·æŽ¨èæ»¡è¶³å…¶åå¥½çš„ç‰©å“ï¼Œå¹¶é€šå¸¸å…·æœ‰ä¸ºè§†é¢‘æˆ–éŸ³ä¹æœåŠ¡ç”ŸæˆæŽ¨èæ¸…å•çš„è¡¨çŽ°å½¢å¼ã€‚
\subsection{ä¼&nbsp;ç»Ÿçš„æŽ¨èç³»ç»Ÿ}
ä¼&nbsp;ç»Ÿçš„æŽ¨èç³»ç»Ÿä¸»è¦åˆ†ä¸ºåŸºäºŽå†…å®¹çš„æŽ¨èç³»ç»Ÿã€åŸºäºŽååŒè¿‡æ»¤çš„æŽ¨èç³»ç»Ÿå’Œæ··åˆæŽ¨èç³»ç»Ÿ\cite{é»„ç«‹å¨2018åŸºäºŽæ·±åº¦å­¦ä¹&nbsp;çš„æŽ¨èç³»ç»Ÿç&nbsp;”ç©¶ç»¼è¿°}ã€‚åŸºäºŽå†…å®¹çš„æŽ¨èç³»ç»Ÿä¸»è¦ç”¨äºŽæ–‡æœ¬ç›¸å…³çš„é¡¹ç›®ï¼Œå›&nbsp;ä¸ºå†…å®¹å¸¸å¸¸æ˜¯ä½¿ç”¨å…³é”®å­—æ¥æè¿°çš„ã€‚è¯¥ç®—æ³•é€šè¿‡è®¡ç®—ç›¸å…³ç‰©å“çš„ç¦»æ•£ç‰¹å¾ï¼Œç„¶åŽæŽ¨èå…·æœ‰ä¸Žç”¨æˆ·åŽ†å²åå¥½ç‰©å“ç±»ä¼¼ç‰¹å¾çš„æœ‰å…³ç‰©å“ã€‚åŸºäºŽååŒè¿‡æ»¤çš„æŽ¨èç³»ç»Ÿä¸»è¦é€šè¿‡å°†å…·æœ‰ä¸Žç›®æ&nbsp;‡ç”¨æˆ·ç›¸ä¼¼ç‰¹å¾çš„ç”¨æˆ·æ‰€äº¤äº’è¿‡çš„ç‰©å“æŽ¨èç»™ç›®æ&nbsp;‡ç”¨æˆ·ã€‚

åŸºäºŽå†…å®¹çš„æŽ¨èä¸ŽåŸºäºŽååŒè¿‡æ»¤çš„æŽ¨èçš„æœ‰å…³åŒºåˆ«å¯ä»¥é€šè¿‡æ¯”è¾ƒä¸¤ä¸ªæµè¡ŒéŸ³ä¹æŽ¨èç³»ç»Ÿçš„å®žçŽ°æ–¹å¼çœ‹å‡ºã€‚ï¼ˆ1ï¼‰æ½˜å¤šæ‹‰éŸ³ä¹ä½¿ç”¨ä¸€ä¸ªåŸºäºŽå†…å®¹æŽ¨èçš„æŽ¨èç®—æ³•ã€‚å®ƒæ&nbsp;¹æ®è‰ºäººæˆ–æ­Œæ›²çš„å±žæ€§æ¥ç”Ÿæˆä¸€ä¸ªåŒ…å«ç›¸ä¼¼é£Žæ&nbsp;¼æ­Œæ›²çš„ç”µå°ï¼Œå¹¶ä¸”è¯¥ç”µå°çš„å†…å®¹ä¼šæ&nbsp;¹æ®æ”¶å¬ç”¨æˆ·çš„åé¦ˆè¿›è¡Œè°ƒæ•´ã€‚å½“ç”¨æˆ·å¯¹ä¸€é¦–æ­Œæ›²â€œä¸æ„Ÿå…´è¶£â€æ—¶è¯¥ç®—æ³•å°†å¼±åŒ–è¯¥æ­Œæ›²çš„ä¸€äº›å±žæ€§ï¼›è€Œå½“ç”¨æˆ·å–œæ¬¢ä¸€é¦–æ­Œæ›²æ—¶ï¼Œå°†å¼ºåŒ–ä¸€äº›å±žæ€§ã€‚å¹¶ä¸”è¯¥ç®—æ³•ä¼šæ&nbsp;¹æ®è¯¥å±žæ€§è°ƒæ•´æ­Œæ›²çš„é¡ºåºï¼Œè‹¥å±žæ€§çš„å€¼è¶Šè¿‡ä¸€ä¸ªé˜€å€¼æ—¶æŽ¨èç®—æ³•ä¾¿å°†æŸä¸€æ­Œæ›²ä»Žåˆ—è¡¨ä¸­åˆ&nbsp;é™¤ã€‚ï¼ˆ2ï¼‰â€œç»ˆçº§fmâ€ä½¿ç”¨ååŒè¿‡æ»¤çš„æŽ¨èç®—æ³•ã€‚å®ƒè®°å½•ç”¨æˆ·ç»å¸¸æ”¶å¬çš„ä¹é˜Ÿå’Œæ­Œæ‰‹ï¼Œç„¶åŽä¸Žå…¶å®ƒç”¨æˆ·çš„æœ‰å…³è¡Œä¸ºè¿›è¡Œæ¯”è¾ƒï¼Œå»ºç«‹ä¸€ä¸ªç”µå°ï¼Œå¹¶ä»¥æ­¤æŽ¨èæ­Œæ›²ã€‚â€œç»ˆçº§fmâ€ä¼šç»™ç”¨æˆ·æŽ¨èå…¶ä»–å…·æœ‰ç›¸ä¼¼ç‰¹å¾ç”¨æˆ·çš„æ’­æ”¾åˆ—è¡¨ï¼ˆå¹¶ä¿è¯ç›®æ&nbsp;‡ç”¨æˆ·æœªæ”¶å¬è¿‡ï¼‰ã€‚

åŸºäºŽå†…å®¹çš„æŽ¨èä¸ŽåŸºäºŽååŒè¿‡æ»¤çš„æŽ¨èå„æœ‰ä¼˜ç¼ºç‚¹ã€‚æ½˜å¤šæ‹‰éŸ³ä¹æ‰€ä½¿ç”¨çš„åŸºäºŽå†…å®¹æŽ¨èçš„æŽ¨èç®—æ³•æ˜¯æ&nbsp;¹æ®ç‰©å“æœ¬èº«çš„æ€§è´¨æ¥è¿›è¡ŒæŽ¨èçš„ï¼Œå›&nbsp;æ­¤ä¸éœ€è¦ç”¨æˆ·ä¿¡æ¯å°±å¯ä»¥æœ‰è¾ƒå¥½çš„å‡†ç¡®åº¦ã€‚ä½†è¯¥ç®—æ³•ä¸¥é‡ä¾èµ–ç‰©å“æœ¬èº«çš„ç‰¹æ€§ï¼Œå›&nbsp;æ­¤å±€é™æ€§è¾ƒå¤§ï¼ŒæŽ¨èçš„å†…å®¹éƒ½æ˜¯ä¸Žç§å­é›†ç›¸å…³çš„ï¼ŒæŽ¨èç»“æžœçš„å¤šæ&nbsp;·æ€§è¾ƒä½Žã€‚è€Œâ€œç»ˆçº§fmâ€ä½¿ç”¨çš„ååŒè¿‡æ»¤ç®—æ³•éœ€è¦æ&nbsp;¹æ®ç”¨æˆ·ä¸Žç‰©å“çš„äº¤äº’æ¥ç”ŸæˆæŽ¨èç»“æžœï¼Œå›&nbsp;æ­¤éœ€è¦å¤§é‡çš„ç”¨æˆ·æ•°æ®ï¼Œå­˜åœ¨æ•°æ®ç¨€ç¼ºæ€§é—®é¢˜ä¸Žå†·å¯åŠ¨é—®é¢˜ã€‚
\subsection{åŸºäºŽçŸ¥è¯†å›¾è°±çš„æŽ¨èç³»ç»Ÿ}
åŸºäºŽå†…å®¹æŽ¨èä¸ŽååŒè¿‡æ»¤æŽ¨èä¸¤è€…å‡å­˜åœ¨ä¸€äº›å±€é™æ€§ï¼Œä¸ºäº†æé«˜æŽ¨èçš„å‡†ç¡®æ€§ï¼Œè§£å†³ä¼&nbsp;ç»ŸæŽ¨èç®—æ³•çš„æ•°æ®ç¨€ç¼ºæ€§ä¸Žå†·å¯åŠ¨é—®é¢˜ï¼Œç&nbsp;”ç©¶è€…å°†ä¸€äº›è¾…åŠ©ä¿¡æ¯åŠ&nbsp;å…¥è‡³æŽ¨èç®—æ³•ä¸­ï¼Œé€šå¸¸è¿™äº›è¾…åŠ©ä¿¡æ¯åŒ…æ‹¬ä¸Šä¸‹æ–‡ä¿¡æ¯ã€ç”¨æˆ·æˆ–ç‰©å“çš„å±žæ€§ã€å›¾ç‰‡å’Œç¤¾äº¤ç½‘ç»œ\cite{å¸¸äº®2019çŸ¥è¯†å›¾è°±çš„æŽ¨èç³»ç»Ÿç»¼è¿°, ç§¦å·2020åŸºäºŽçŸ¥è¯†å›¾è°±çš„æŽ¨èç³»ç»Ÿç&nbsp;”ç©¶ç»¼è¿°}ã€‚

è€Œéšç€çŸ¥è¯†å›¾è°±çš„å‘å±•ï¼Œå°†çŸ¥è¯†å›¾è°±ä½œä¸ºè¾…åŠ©ä¿¡æ¯æ¥æé«˜æŽ¨èç³»ç»Ÿçš„æ€§èƒ½å·²ç»æˆä¸ºäº†çƒ­é—¨çš„ç&nbsp;”ç©¶æ–¹å‘ã€‚å°†çŸ¥è¯†å›¾è°±ä½œä¸ºè¾…åŠ©ä¿¡æ¯åŠ&nbsp;å…¥æŽ¨èç®—æ³•çš„ä¼˜ç‚¹æœ‰ï¼š

ï¼ˆ1ï¼‰æé«˜æŽ¨èç³»ç»Ÿçš„å‡†ç¡®æ€§ã€‚çŸ¥è¯†å›¾è°±å¯ä»¥è¡¨ç¤ºä¸åŒå®žä½“é—´çš„å…³ç³»ï¼Œå¯ä»¥å°†ç‰©å“åŠå…¶ç›¸å…³å±žæ€§å¯¹åº”äºŽçŸ¥è¯†å›¾è°±ä¹‹ä¸­ï¼Œä»Žè€ŒæŽ¨èç®—æ³•å¯ä»¥ç†è§£ç‰©å“ä¹‹é—´çš„å…³ç³»ã€‚æ­¤å¤–ï¼Œç”¨æˆ·ä¸Žç”¨æˆ·é—´çš„å…³ç³»ä¿¡æ¯ä¹Ÿå¯ä»¥æ˜&nbsp;å°„è‡³çŸ¥è¯†å›¾è°±ä¹‹ä¸­ï¼Œä»Žè€ŒæŽ¨èç®—æ³•å¯ä»¥æ›´å‡†ç¡®åœ°åˆ†æžç‰©å“ä¸Žç‰©å“é—´çš„å…³ç³»ã€ç”¨æˆ·ä¸Žç‰©å“ä¹‹é—´çš„å…³ç³»ã€‚
    
ï¼ˆ2ï¼‰æé«˜æŽ¨èç³»ç»Ÿçš„å¯è§£é‡Šæ€§ã€‚ç”±äºŽæŽ¨èç»“æžœä¾ç…§çŸ¥è¯†å›¾è°±ä¸­çš„å…³ç³»ä¿¡æ¯ï¼Œå›&nbsp;æ­¤å¯ä»¥ç”±çŸ¥è¯†å›¾è°±ä¸­çš„å…³ç³»è·¯å¾„å¾—åˆ°æŽ¨èç³»ç»Ÿç»™å‡ºæŽ¨èç»“æžœçš„åŽŸå›&nbsp;ã€‚

ç›®å‰ä¸»è¦çš„åŸºäºŽçŸ¥è¯†å›¾è°±çš„æŽ¨èç®—æ³•æœ‰åŸºäºŽåµŒå…¥çš„æ–¹æ³•ã€åŸºäºŽè·¯å¾„çš„æ–¹æ³•ä»¥åŠæ··åˆå¼æ–¹æ³•ï¼š

ï¼ˆ1ï¼‰åŸºäºŽåµŒå…¥çš„æ–¹æ³•ã€‚åŸºäºŽåµŒå…¥çš„æ–¹æ³•ä½¿ç”¨çŸ¥è¯†å›¾è°±çš„ä¿¡æ¯æ¥å®Œå–„å®žä½“çš„åµŒå…¥è¡¨ç¤ºã€‚ä¸ºäº†å°†çŸ¥è¯†å›¾è°±ä¸­çš„ä¿¡æ¯æ·»åŠ&nbsp;è‡³æŽ¨èç®—æ³•ä¸­æ¥è¾…åŠ©æŽ¨èï¼Œéœ€è¦ä½¿ç”¨çŸ¥è¯†å›¾è°±åµŒå…¥è¡¨ç¤ºç®—æ³•ï¼ˆKnowledge Graph Embedding, KGEï¼‰è¡¨è®¡ç®—å®žä½“åµŒå…¥ï¼ˆå®žä½“åµŒå…¥æŒ‡ç”±çŸ¥è¯†å›¾è°±ä¸­çš„ä¿¡æ¯å¾—åˆ°çš„åœ¨ä½Žç»´å‘é‡ç©ºé—´ä¸­çš„å‘é‡è¡¨ç¤ºï¼‰ã€‚KGEç®—æ³•æœ‰TransE\cite{bordes2013translating}ã€TransH\cite{wang2014knowledge}ã€TransR\cite{lin2017learning}å’ŒDistMult\cite{yang2014embedding}ç­‰ã€‚è€ŒæŽ¨èç®—æ³•åˆ©ç”¨è¯¥åµŒå…¥è¡¨ç¤ºæ¥è¿›è¡Œç›¸å…³è®¡ç®—ï¼Œä»Žè€Œå¯¹ç”¨æˆ·è¿›è¡Œç‰©å“æŽ¨èã€‚

ï¼ˆ2ï¼‰åŸºäºŽè·¯å¾„çš„æ–¹æ³•\cite{lin2015modeling, guu2015traversing, toutanova2016compositional}ã€‚åŸºäºŽè·¯å¾„çš„æ–¹æ³•å°†çŸ¥è¯†å›¾è°±è§†ä¸ºå¼‚æž„ä¿¡æ¯ç½‘ç»œã€‚è€ŒæŽ¨èç³»ç»Ÿåˆ©ç”¨è¯¥å¼‚æž„ä¿¡æ¯ç½‘ç»œå¯»æ‰¾å®žä½“é—´çš„å…³ç³»ï¼Œä»Žè€Œå®ŒæˆæŽ¨èã€‚

ï¼ˆ3ï¼‰æ··åˆå¼æ–¹æ³•ã€‚åŸºäºŽåµŒå…¥çš„æ–¹æ³•æœªèƒ½å……åˆ†åˆ©ç”¨å®žä½“é—´çš„å…³ç³»æ¨¡å¼ä¿¡æ¯ï¼Œè€ŒåŸºäºŽè·¯å¾„çš„æ–¹æ³•ä»…è€ƒè™‘äº†å®žä½“é—´çš„è¯­ä¹‰è¿žé€šä¿¡æ¯ï¼Œæœªèƒ½æœ‰æ•ˆåˆ©ç”¨ç”¨æˆ·/ç‰©å“æœ¬èº«çš„è¯­ä¹‰ä¿¡æ¯ã€‚æ··åˆå¼æ–¹æ³•ç»“åˆäº†åŸºäºŽåµŒå…¥çš„æ–¹æ³•ä¸ŽåŸºäºŽè·¯å¾„çš„æ–¹æ³•çš„ä¼˜ç‚¹ï¼Œè¯¥æ–¹æ³•æ˜¯å½“å‰çš„ç&nbsp;”ç©¶çƒ­ç‚¹ä¸Žç„¦ç‚¹ï¼Œä½¿ç”¨è¯¥æ–¹æ³•çš„å…¸åž‹æ¨¡åž‹æœ‰AKUPM\cite{tang2019akupm}å’ŒRCoLM\cite{cao2019unifying}ç­‰ã€‚æœ¬æ–‡å®žçŽ°çš„ç®—æ³•å±žäºŽæ··åˆæ–¹æ³•ã€‚
\section{ç³»ç»Ÿå¼€å‘æŠ€æœ¯}
\label{sec:tech-stack}
\subsection{æ•°æ®é‡‡é›†æŠ€æœ¯}
ç”µå½±æŽ¨èç³»ç»Ÿä½¿ç”¨çš„æ•°æ®æ¥è‡ªâ€œMovieLens 1M Datasetâ€\footnote{https://grouplens.org/datasets/movielens/1m/}æ•°æ®é›†ï¼Œæ­¤å¤–è¿˜ä»ŽIMDb\footnote{https://www.imdb.com/}åŠè±†ç“£ç½‘\footnote{https://www.douban.com/}çˆ¬å–äº†ç›¸å…³ç”µå½±æ•°æ®å¹¶è¿›è¡Œå¤„ç†ä½œä¸ºæœ¬æ–‡çš„ç&nbsp;”ç©¶å¯¹è±¡ã€‚

åœ¨æ•°æ®é‡‡é›†çš„è¿‡ç¨‹ä¸­ï¼Œä½¿ç”¨Scrapyæ¡†æž¶è¿›è¡Œäº†æ•°æ®çˆ¬å–ï¼Œçˆ¬å–çš„æ•°æ®åŒ…æ‹¬ç”µå½±åç§°ã€ç”µå½±å°é¢ã€é¢„å‘Šç‰‡å›¾ç‰‡ã€ç”µæ™¯æƒ…èŠ‚ä»‹ç»ã€å¯¼æ¼”ã€æ¼”å‘˜ä»¥åŠå‰§ä½œå®¶ã€‚

æœ€ç»ˆï¼Œæ€»è®¡çˆ¬å–äº†3684éƒ¨ç”µå½±çš„æ•°æ®ã€‚å…¶ä¸­ï¼Œä»ŽIMDbçˆ¬å–äº†3494æ¡ç”µå½±æ•°æ®ï¼Œä»Žè±†ç“£çˆ¬å–äº†190æ¡ç”µå½±æ•°æ®ï¼ˆç”±äºŽè±†ç“£ç½‘é™åˆ¶äº†æ¯IPè®¿é—®é‡æ•…çˆ¬å–çš„æ•°æ®è¾ƒå°‘ï¼‰ã€‚
\subsection{æ•°æ®å­˜å‚¨æŠ€æœ¯}
æœ¬ç³»ç»Ÿä½¿ç”¨MongoDBä¸ŽNeo4jå­˜å‚¨æ•°æ®ã€‚

\noindent ï¼ˆ1ï¼‰MongoDB

MongoDBæ˜¯ä¸€ä¸ªæ–°å…´çš„éžå…³ç³»åž‹å­˜å‚¨çš„åˆ†å¸ƒå¼å­˜å‚¨æ•°æ®çš„æ•°æ®åº“ï¼Œå±žäºŽNoSQLï¼Œä¸ŽMySQLç­‰ä¼&nbsp;ç»Ÿçš„å…³ç³»åž‹æ•°æ®åº“ç›¸æ¯”ï¼Œå®ƒæä¾›æ›´å¥½çš„é«˜å¹¶å‘æ”¯æŒï¼Œå…·æœ‰é«˜å¯é&nbsp;æ€§çš„ä¼˜ç‚¹ã€‚ä¸Žæ­¤åŒæ—¶ï¼Œå¾—ç›ŠäºŽå…¶åŸºäºŽæ–‡æ¡£å‚¨å­˜çš„ç‰¹ç‚¹ï¼Œç›¸æ¯”è¾ƒä¼&nbsp;ç»Ÿçš„å…³ç³»åž‹æ•°æ®åº“ï¼Œå®ƒçš„å­˜å‚¨ç»“æž„æ›´çµæ´»ã€‚

åœ¨æœ¬ç³»ç»Ÿä¸­ï¼ŒMongoDBå­˜å‚¨æ™®é€šç”¨æˆ·æ•°æ®ã€ç®¡ç†å‘˜æ•°æ®ã€ç”µå½±æ•°æ®ç­‰ã€‚

\noindentï¼ˆ2ï¼‰Neo4j

Neo4jæ˜¯ä¸€ä¸ªå…·æœ‰é«˜æ€§èƒ½çš„å›¾æ•°æ®åº“ï¼Œå®ƒå°†ç»“æž„åŒ–çš„æ•°æ®ä¿¡æ¯å‚¨å­˜åœ¨ç½‘ç»œä¸Šè€Œä¸æ˜¯å­˜å‚¨åœ¨è¡¨ä¸­ã€‚å®ƒå…·æœ‰å¥å£®å’Œæˆç†Ÿçš„æ•°æ®åº“çš„æ‰€æœ‰ç‰¹ç‚¹ã€‚è™½ç„¶Neo4jæ˜¯ä¸€ä¸ªæ–°å…´çš„æ•°æ®åº“ï¼Œä½†å®ƒå·²åœ¨å…·æœ‰è¶…è¿‡1äº¿èŠ‚ç‚¹ã€å…³ç³»å’Œå±žæ€§çš„äº§å“ä¸­å¾—åˆ°äº†åº”ç”¨ï¼Œå……åˆ†ä½“çŽ°äº†å…¶é«˜æ€§èƒ½ã€é«˜å¯é&nbsp;æ€§çš„ç‰¹ç‚¹ã€‚

åœ¨æœ¬ç³»ç»Ÿä¸­ï¼Œæœ€ç»ˆéœ€å­˜å‚¨çš„å›¾ç»“ç‚¹æœ‰182011ä¸ªï¼Œéœ€å­˜å‚¨çš„è¾¹æœ‰1241995æ¡ã€‚å¦‚æžœå°†å®ƒä»¬å­˜å‚¨åœ¨ä¼&nbsp;ç»Ÿçš„å…³ç³»åž‹æ•°æ®åº“ä¸­ï¼Œä¼šå›&nbsp;å¤§é‡çš„è¿žæŽ¥æŸ¥è¯¢å¯¼è‡´æžå¤§çš„æ€§èƒ½å¼€é”€ï¼Œè¡¨çŽ°ä¸ºæŸ¥è¯¢è€—æ—¶ä¹…ã€‚Neo4jå¯¹å›¾æ•°æ®å¤„ç†åšäº†ä¼˜åŒ–ï¼Œå›&nbsp;æ­¤æŸ¥è¯¢ç­‰æ“ä½œå¯ä»¥åœ¨è¾ƒçŸ­çš„æ—¶é—´å†…å®Œæˆï¼Œæ•…æœ¬ç³»ç»Ÿå°†çŸ¥è¯†å›¾è°±æ•°æ®å­˜å‚¨åœ¨Neo4jä¸­è€Œä¸æ˜¯å…³ç³»åž‹æ•°æ®åº“ä¸­ã€‚

\subsection{åŽç«¯æŠ€æœ¯}
æœ¬ç³»ç»Ÿä½¿ç”¨Flaskæ¡†æž¶ä½œä¸ºç½‘ç«™åŽç«¯æ¡†æž¶ã€‚Flaskæ˜¯ä¸€ä¸ªPythonç¼–å†™çš„è½»é‡çº§å¾®æ¡†æž¶ã€‚å®ƒå…·æœ‰è½»é‡ã€ä¾¿æ·ã€å¯æ‰©å±•ç­‰ç‰¹ç‚¹ã€‚ç³»ç»Ÿä½¿ç”¨Flaskæ¡†æž¶å……åˆ†åˆ©ç”¨äº†å…¶ä¾¿æ·ã€å¯æ‰©å±•ä»¥åŠå¼€å‘ä¾¿æ·çš„ç‰¹ç‚¹ï¼Œä¸Žæœ¬ç³»ç»Ÿè¦æ±‚ç›¸ç¬¦ã€‚

ç³»ç»Ÿä½¿ç”¨è¡¨çŽ°å±‚çŠ¶æ€è½¬æ¢ï¼ˆRESTï¼‰é£Žæ&nbsp;¼çš„åº”ç”¨ç¨‹åºæŽ¥å£ï¼ˆAPIï¼‰ä½œä¸ºå‰åŽç«¯çš„äº¤äº’æŽ¥å£ã€‚è¡¨çŽ°å±‚çŠ¶æ€è½¬æ¢ï¼ˆRepresentational State Transferï¼ŒRESTï¼‰æ˜¯ä¸€ç§åŸºäºŽHTTPåè®®çš„è½¯ä»¶äº¤äº’ä½“ç³»ç»“æž„æ&nbsp;·å¼ï¼Œè¯¥åè®®æ˜¯ç”±Roy Thomas Fieldingåšå£«åœ¨2000å¹´çš„åšå£«è®ºæ–‡ä¸­å¼•ç”¨çš„\cite{fielding2000architectural}ï¼Œç›®çš„æ˜¯ä¿ƒè¿›ä¸åŒçš„è½¯ä»¶/ç¨‹åºçš„å¼€å‘ã€‚åœ¨ç½‘ç»œä¸Šäº’ç›¸ä¼&nbsp;è¾“æ•°æ®ã€‚è¡¨ç¤ºå±‚çŠ¶æ€è½¬æ¢åŸºäºŽè¶…æ–‡æœ¬ä¼&nbsp;è¾“â€‹â€‹åè®®ï¼ˆHTTPï¼‰çš„ä¸€ç»„çº¦æŸï¼Œè¯¥åè®®æ˜¯ä¸€ç§æ—¨åœ¨æä¾›ä¸‡ç»´ç½‘æœåŠ¡çš„è½¯ä»¶æž„é€&nbsp;æ&nbsp;·å¼ã€‚ç¬¦åˆæˆ–å…¼å®¹æ­¤ä½“ç³»ç»“æž„æ&nbsp;·å¼ï¼ˆç®€ç§°ä¸ºRESTæˆ–RESTfulï¼‰çš„ç½‘ç»œæœåŠ¡å…è®¸å®¢æˆ·ç«¯å‘å‡ºä½¿ç”¨ç»Ÿä¸€èµ„æºæ&nbsp;‡è¯†ç¬¦è®¿é—®å’Œæ“ä½œç½‘ç»œèµ„æºçš„è¯·æ±‚ï¼Œè¿™äº›èµ„æºä¸Žä¸€ç»„é¢„å®šä¹‰çš„æ“ä½œä¸€è‡´ã€‚å›&nbsp;æ­¤ï¼Œè¡¨ç¤ºå±‚çŠ¶æ€è½¬æ¢æä¾›äº†Internetä¸Šè®¡ç®—æœºç³»ç»Ÿä¹‹é—´ç›¸äº’ä½¿ç”¨èµ„æºçš„äº’æ“ä½œæ€§ã€‚ä¸Žå…¶ä»–ç±»åž‹çš„ç½‘ç»œæœåŠ¡ï¼ˆä¾‹å¦‚SOAPæœåŠ¡ï¼‰ç›¸æ¯”ï¼Œå®ƒä»¬ä½¿ç”¨è‡ªå·±å®šä¹‰çš„ä¸€ç»„æ“ä½œæ¥è®¿é—®ç½‘ç»œèµ„æºã€‚

å¾—ç›ŠäºŽæœ¬ç³»ç»Ÿä½¿ç”¨äº†RESTé£Žæ&nbsp;¼çš„APIï¼Œæœ¬ç³»ç»Ÿèƒ½æ›´æœ‰æ•ˆåœ°ä½¿ç”¨ç¼“å­˜æ¥æå‡å“åº”é€Ÿåº¦ï¼ŒåŒæ—¶å‰åŽç«¯é—´çš„é€šè®¯çš„æ—&nbsp;çŠ¶æ€æ€§å¯ä»¥è®©ä¸åŒçš„æœåŠ¡å™¨å¤„ç†ä¸€è¿žä¸²è¯·æ±‚ä¸­ä¸åŒçš„è¯·æ±‚ï¼Œæé«˜äº†æœ¬ç³»ç»Ÿçš„å¯æ‰©å±•æ€§ã€‚ä¸Žæ­¤åŒæ—¶ï¼Œå¾—ç›ŠäºŽRESTé£Žæ&nbsp;¼è¯­ä¹‰åŒ–çš„æŽ¥å£ï¼Œä½¿å‰åŽç«¯äº¤äº’æŽ¥å£æ›´æ¸…æ™°æ˜Žäº†ï¼Œä½¿æŽ¥å£çš„ä½¿ç”¨è€…èƒ½æ›´é«˜æ•ˆä¾¿æ·åœ°è¿›è¡Œç›¸å…³çš„å¼€å‘å·¥ä½œã€‚
\subsection{å‰ç«¯æŠ€æœ¯}
æœ¬ç³»ç»Ÿå‰ç«¯ä½¿ç”¨Angularæ¡†æž¶ã€‚Angularï¼ˆé€šå¸¸æŒ‡â€œAngular 2+â€æˆ–â€œAngular v2åŠä»¥ä¸Šâ€ï¼‰æ˜¯ä¸€ä¸ªåŸºäºŽTypeScriptçš„å¼€æºç½‘ç»œåº”ç”¨æ¡†æž¶ï¼Œå®ƒçš„å¼€å‘ç”±Googleçš„Angularå›¢é˜Ÿé¢†å¯¼åŒæ—¶ä¹Ÿæœ‰ä¸ªäººåŠå…¶ä»–å…¬å¸ç»´æŠ¤ã€‚Angularå®Œå…¨ä»Žç›¸åŒå›¢é˜Ÿå¼€å‘çš„AngularJSé‡æ–°ç¼–å†™è€Œæ¥ã€‚Angularå¸¸å¸¸ä½œä¸ºMEANæŠ€æœ¯æ&nbsp;ˆçš„ä¸€éƒ¨åˆ†ã€‚MEANæŠ€æœ¯æ&nbsp;ˆæŒ‡MongoDBæ•°æ®åº“ã€Express.jsç½‘ç»œæœåŠ¡å™¨æ¡†æž¶ã€Angular/AngularJSä»¥åŠNode.jsæœåŠ¡å™¨è¿è¡Œæ—¶ã€‚ä¸åŒäºŽMEANæŠ€æœ¯æ&nbsp;ˆï¼Œæœ¬ç³»ç»Ÿå°†å…¶ä¸­çš„â€œEâ€ï¼ˆæŒ‡Express.jsç½‘ç»œæœåŠ¡å™¨æ¡†æž¶ï¼‰æ›¿æ¢ä¸ºäº†Flaskç½‘ç»œæœåŠ¡å™¨æ¡†æž¶ã€‚

é€šè¿‡ä½¿ç”¨Angularæ¡†æž¶ï¼Œæœ¬ç³»ç»Ÿå…·æœ‰ä¸€ä¸ªçŽ°ä»£åŒ–ã€æ¨¡å—åŒ–ã€å“åº”å¼çš„ç½‘é¡µæž¶æž„ã€‚åŒæ—¶å€ŸåŠ©äºŽAngular Material Componentså®˜æ–¹ç»„ä»¶åº“ï¼Œæœ¬ç³»ç»Ÿå‰ç«¯UIç¬¦åˆææ–™è®¾è®¡ï¼ˆMaterial Designï¼‰ã€‚
\chapter{åŸºäºŽæ¶Ÿæ¼ªç½‘ç»œçŸ¥è¯†å›¾è°±çš„æŽ¨èç®—æ³•}
\label{ch:offline-recommendation}
\section{æ¶Ÿæ¼ªç½‘ç»œ}
æœ¬ç®—æ³•åŸºäºŽæ–‡çŒ®\parencite{wang2018ripplenet}å®žçŽ°ï¼Œå¹¶åœ¨å…¶åŸºç¡€ä¸Šè¿›è¡Œäº†ä¸€å®šçš„æ”¹è¿›ï¼šæ–‡çŒ®\parencite{wang2018ripplenet}ä¸­è®¡ç®—ç”¨æˆ·åå¥½æ—¶å¹¶æœªè€ƒè™‘ç”¨æˆ·æ”¶è—ï¼Œæœ¬æ–‡åœ¨è®¡ç®—ç”¨æˆ·åå¥½æ—¶ï¼Œå°†ç”¨æˆ·æ”¶è—è€ƒè™‘åœ¨å†…ï¼Œè¿™åœ¨ä¸€å®šç¨‹åº¦ä¸Šç¼“è§£äº†æ•°æ®ç¨€ç¼ºæ€§é—®é¢˜å’Œå†·å¯åŠ¨é—®é¢˜å¹¶æ”¹è¿›äº†æŽ¨èæ€§èƒ½ã€‚
\subsection{æž¶æž„}
æ¶Ÿæ¼ªç½‘ç»œçš„æ€»ä½“æž¶æž„å¦‚å›¾\ref{fig:ripplenet-framework}æ‰€ç¤ºï¼Œå›¾ä¸Šæ–¹çš„çŸ¥è¯†å›¾è°±ä¸­å±•ç¤ºäº†ç”±ç”¨æˆ·äº¤äº’äº§ç”Ÿçš„æ¶Ÿæ¼ªã€‚æ¶Ÿæ¼ªç½‘ç»œä»¥ä¸€ä¸ªç”¨æˆ·$u$å’Œä¸€ä¸ªç”µå½±$v$ä½œä¸ºè¾“å…¥ï¼Œå¹¶è¾“å‡ºç”¨æˆ·$u$ä¸Žç”µå½±$v$ä¹‹é—´äº§ç”Ÿäº¤äº’çš„æ¦‚çŽ‡ã€‚å¯¹è¾“å…¥ç”¨æˆ·$u$è€Œè¨€ï¼Œå…¶åŽ†å²äº¤äº’è®°å½•$V_u$æ˜¯çŸ¥è¯†å›¾è°±ä¸­çš„ç§å­é›†ï¼Œè€ŒåŽæ²¿ç€çŸ¥è¯†å›¾è°±ä¸­çš„å…³ç³»è¾¹å½¢æˆå¤šä¸ªæ¶Ÿæ¼ªé›†$S_u^{k}\ (k=1, 2, \dots, H)$ã€‚ç¬¬$k$ä¸ªæ¶Ÿæ¼ªé›†æ˜¯ç§å­é›†$V_u$ç»è¿‡$k$è·³å¾—åˆ°çš„çŸ¥è¯†ä¸‰å…ƒç»„ã€‚ç„¶åŽè¿­ä»£åœ°åˆ©ç”¨è¿™äº›æ¶Ÿæ¼ªé›†ä¸Žç”µå½±$v$çš„åµŒå…¥è¡¨ç¤ºï¼ˆé»„è‰²çš„å—ï¼‰è®¡ç®—å‡ºç”¨æˆ·$u$å¯¹ç”µå½±$v$çš„çš„å“åº”ï¼ˆç»¿è‰²çš„å—ï¼‰ï¼Œæœ€åŽç»“åˆå¾—åˆ°ç”¨æˆ·çš„æœ€ç»ˆåµŒå…¥è¡¨ç¤ºï¼ˆç°è‰²çš„å—ï¼‰ã€‚æœ€ç»ˆï¼Œåˆ©ç”¨ç”¨æˆ·$u$ä¸Žç”µå½±$v$çš„åµŒå…¥è¡¨ç¤ºè®¡ç®—å‡ºç”¨æˆ·$u$å¯¹ç”µå½±$v$æ„Ÿå…´è¶£çš„é¢„æµ‹æ¦‚çŽ‡$y_{uv}$ã€‚
\begin{figure}
	\includegraphics[width=\textwidth]{figures/ripplenet-framework.png}
	\bicaption{æ¶Ÿæ¼ªç½‘ç»œçš„æ€»ä½“æž¶æž„}{The overall framework of the Ripple Network}\label{fig:ripplenet-framework}
\end{figure}
\subsection{æ¶Ÿæ¼ªé›†}
\begin{figure}
	\includegraphics[width=\textwidth]{figures/illustration-of-ripple-sets.png}
	\bicaption{ç”µå½±çŸ¥è¯†å›¾è°±ä¸­ç”±â€œé˜¿ç”˜æ­£ä¼&nbsp;â€æ¿€å‘çš„æ¶Ÿæ¼ªé›†}{Sets of ripples of â€œForest Gumpâ€ in Knowledge Graph of movies}\label{fig:illustration-of-ripple-sets}
\end{figure}
çŸ¥è¯†å›¾è°±å¸¸å¸¸å«æœ‰ä¸°å¯Œçš„äº‹å®žä¿¡æ¯ä¸Žå®žä½“é—´çš„è”ç³»ã€‚æ¯”å¦‚ï¼Œå›¾\ref{fig:illustration-of-ripple-sets}ï¼ˆå›¾ä¸­ä¸åŒé¢œè‰²çš„åœ†åœˆè¡¨ç¤ºä¸åŒè·³æ•°çš„æ¶Ÿæ¼ªé›†ï¼Œè¶Šæµ…çš„è“è‰²ä»£è¡¨ç§å­é›†ä¸Žè¯¥åŒºåŸŸå†…å®žä½“çš„å…³è”ç¨‹åº¦è¶Šä½Žï¼‰ä¸­ç”µå½±â€œé˜¿ç”˜æ­£ä¼&nbsp;â€ä¸Žâ€œç½—ä¼¯ç‰¹Â·æ³½ç±³å‰æ–¯â€ç›¸è¿žï¼Œå®ƒä»¬ä¹‹é—´çš„è”ç³»ä¸ºâ€œç½—ä¼¯ç‰¹Â·æ³½ç±³å‰æ–¯â€æ˜¯ç”µå½±â€œé˜¿ç”˜æ­£ä¼&nbsp;â€çš„å¯¼æ¼”ã€‚è€Œâ€œå›žåˆ°æœªæ¥â€ä¹Ÿä¸Žâ€œç½—ä¼¯ç‰¹Â·æ³½ç±³å‰æ–¯â€ç›¸è¿žã€‚å›&nbsp;æ­¤ï¼Œå¦‚æžœä¸€ä¸ªç”¨æˆ·ä¸Žç”µå½±â€œé˜¿ç”˜æ­£ä¼&nbsp;â€äº¤äº’è¿‡ï¼Œåˆ™ä»–å¾ˆæœ‰å¯èƒ½ä¹Ÿå¯¹â€œå›žåˆ°æœªæ¥â€æ„Ÿå…´è¶£ã€‚ä¸ºäº†æè¿°ç”¨æˆ·åœ¨çŸ¥è¯†å›¾è°±ä¸­åˆ†å±‚æ¬¡çš„æ½œåœ¨åå¥½é›†ï¼Œé€’å½’å®šä¹‰ç”¨æˆ·$u$çš„$k$è·³ç›¸å…³å®žä½“å¦‚ä¸‹ï¼š

\textbf{å®šä¹‰1ï¼ˆç›¸å…³å®žä½“é›†ï¼‰} ç»™å®šäº¤äº’çŸ©é˜µ$\Upsilon$ä¸ŽçŸ¥è¯†å›¾è°±$G$ï¼Œåˆ™ç”¨æˆ·$u$çš„$k$è·³ç›¸å…³å®žä½“é›†çš„å®šä¹‰ä¸ºå¼\eqref{eq:relevant-entities}ã€‚

\begin{equation}
	E_u^k=\{t|(h, r, t)\in G \text{ä¸”} h\in E^{k-1}_u\}, k = 1, 2, \dots, H\label{eq:relevant-entities}
\end{equation}

å¼\eqref{eq:relevant-entities}ä¸­ï¼Œ$E_u^0=V_u=\{v | y_{uv}=1\}$æ˜¯ç”¨æˆ·çš„åŽ†å²åå¥½é›†ï¼ˆåŽ†å²åå¥½é›†æ˜¯æŒ‡ç”¨æˆ·åœ¨æœ€é«˜ä¸º5çš„è¯„åˆ†ä¸­ç»™å‡ºçš„è¯„åˆ†$\geqslant$4çš„ç‰©å“ä»¥åŠç”¨æˆ·å·²åŠ&nbsp;å…¥æ”¶è—çš„ç‰©å“ï¼‰ï¼Œå¯ä»¥çœ‹ä½œæ˜¯ç”¨æˆ·$u$åœ¨çŸ¥è¯†å›¾è°±ä¸­çš„ç§å­é›†ã€‚

ç›¸å…³å®žä½“é›†å¯ä»¥çœ‹ä½œæ˜¯ç”¨æˆ·çš„åŽ†å²åå¥½é›†åœ¨çŸ¥è¯†å›¾è°±ä¸­çš„è‡ªç„¶æ‰©å±•ã€‚ç»™å®šç›¸å…³å®žä½“é›†çš„å®šä¹‰ï¼Œä»¥ä¸‹å®šä¹‰ç”¨æˆ·$u$çš„$k$è·³æ¶Ÿæ¼ªé›†ï¼š

\textbf{å®šä¹‰2ï¼ˆæ¶Ÿæ¼ªé›†ï¼‰}ç”¨æˆ·$u$çš„$k$è·³æ¶Ÿæ¼ªé›†å¯ä»¥çœ‹ä½œæ˜¯çŸ¥è¯†å›¾è°±ä¸­ä»¥$E^{k-1}_u$ä¸ºèµ·ç‚¹çš„çŸ¥è¯†ä¸‰å…ƒç»„ï¼Œå®šä¹‰å¦‚å¼\eqref{eq:ripple-set}æ‰€ç¤ºã€‚

\begin{equation}
	S_u^k = \{(h, r, t)|(h, r, t)\in G \text{ä¸”} h\in E^{k-1}_u\}, k = 1, 2, \dots, H\label{eq:ripple-set}
\end{equation}

â€œæ¶Ÿæ¼ªâ€è¿™ä¸ªè¯æœ‰ä¸¤é‡æ„æ€ï¼šï¼ˆ1ï¼‰å¯¹ç”±å¤šä¸ªé›¨ç‚¹äº§ç”Ÿçš„çœŸå®žæ¶Ÿæ¼ªçš„æ¨¡æ‹Ÿï¼Œç”¨æˆ·å¯¹ç”µå½±çš„æ½œåœ¨å…´è¶£é›†åœ¨çŸ¥è¯†å›¾è°±ä¸­ç”±è¿‘åŠè¿œåœ°ä¼&nbsp;é€’ã€‚è¿™ä¸€è¿‡ç¨‹å¦‚å›¾\ref{fig:illustration-of-ripple-sets}æ‰€ç¤ºã€‚ï¼ˆ2ï¼‰ç”¨æˆ·çš„æ½œåœ¨å…´è¶£éšç€çŸ¥è¯†å›¾è°±ä¸­ä¼&nbsp;é€’çš„è·³æ•°$k$çš„å¢žå¤§é€æ¸é€’å‡ã€‚å›¾\ref{fig:illustration-of-ripple-sets}ä¸­è“è‰²çš„å˜æµ…æ˜¾ç¤ºäº†æ½œåœ¨å…´è¶£é€’å‡çš„è¿‡ç¨‹ã€‚

ä¸€ä¸ªå¯èƒ½å‡ºçŽ°çš„é—®é¢˜æ˜¯åœ¨è·³æ•°$k$å¢žåŠ&nbsp;çš„è¿‡ç¨‹ä¸­æ¶Ÿæ¼ªé›†çš„å¤§å°å¯èƒ½è¿‡å¤§ã€‚ä¸ºäº†è§£å†³è¿™ä¸ªé—®é¢˜ï¼Œæ³¨æ„åˆ°ï¼š

ï¼ˆ1ï¼‰åœ¨çœŸå®žä½¿ç”¨çš„çŸ¥è¯†å›¾è°±ä¸­å¤§é‡çš„å®žä½“æ˜¯æ²‰æ²¡å®žä½“ï¼Œæ„æ€æ˜¯å®ƒä»¬åªæœ‰ä¼&nbsp;å…¥é“¾è·¯è€Œæ²¡æœ‰ä¼&nbsp;å‡ºé“¾è·¯ã€‚

ï¼ˆ2ï¼‰åœ¨ç”µå½±æŽ¨èçš„å…·ä½“æƒ…å¢ƒä¸‹ï¼Œå…³ç³»å¯ä»¥é™åˆ¶åœ¨æƒ…å¢ƒç›¸å…³çš„åˆ†ç±»ä¸­ä»¥å‡å°‘æ¶Ÿæ¼ªé›†çš„æ•°é‡å¹¶æé«˜å®žä½“é—´çš„ç›¸å…³åº¦ã€‚

ï¼ˆ3ï¼‰æœ€å¤§è·³æ•°$H$é€šå¸¸åœ¨å®žé™…åº”ç”¨ä¸­ä¸ä¼šè¿‡å¤§ï¼Œå›&nbsp;ä¸ºç¦»ç”¨æˆ·åŽ†å²åå¥½é›†è¾ƒè¿œçš„å®žä½“ä¼šå¸¦æ¥æ›´å¤šçš„é”™è¯¯æŽ¨èè€Œä¸æ˜¯æ›´ä¸°å¯Œçš„æŽ¨èç»“æžœã€‚

ï¼ˆ4ï¼‰åœ¨æ¶Ÿæ¼ªç½‘ç»œä¸­ï¼Œæˆ‘ä»¬å¯ä»¥å¯¹ä¸€ä¸ªå›ºå®šå¤§å°çš„é‚»é›†è€Œä¸æ˜¯å¯¹å®Œæ•´çš„æ¶Ÿæ¼ªé›†é‡‡æ&nbsp;·ä»Žè€Œæ›´è¿›ä¸€æ­¥åœ°å‡å°è®¡ç®—å·¥ä½œé‡ã€‚è®¾è®¡è¿™æ&nbsp;·çš„é‡‡æ&nbsp;·å™¨æ˜¯ä¸€ä¸ªé‡è¦çš„å·¥ä½œï¼Œå°¤å…¶æ˜¯éžç»Ÿä¸€çš„é‡‡æ&nbsp;·å™¨èƒ½æ›´å¥½åœ°æ•èŽ·ç”¨æˆ·çš„åˆ†ç­‰çº§çš„æ½œåœ¨å…´è¶£ã€‚
\subsection{åå¥½æ‰©æ•£}
\label{sec:osum}
ä¼&nbsp;ç»Ÿçš„ååŒè¿‡æ»¤ç®—æ³•æ˜¯é€šè¿‡å­¦ä¹&nbsp;ç”¨æˆ·ä¸Žç‰©å“é—´çš„æ½œåœ¨è”ç³»æ¥å®ŒæˆæŽ¨èï¼Œè€Œåœ¨æ¶Ÿæ¼ªç½‘ç»œç®—æ³•ä¸­ï¼Œè¿™ä¸€è¿‡ç¨‹æ˜¯é€šè¿‡åå¥½æ‰©æ•£å®Œæˆçš„ï¼šå¯¹æ¯ä¸ªç”¨æˆ·ï¼Œæ¶Ÿæ¼ªç½‘ç»œå°†ä»–çš„è¿‡å¾€å…´è¶£è§†ä¸ºçŸ¥è¯†å›¾è°±ä¸­çš„ç§å­é›†ï¼Œç„¶åŽæ²¿çŸ¥è¯†å›¾è°±ä¸­çš„è·¯å¾„ä¸æ–­åœ°æ‹“å±•ç”¨æˆ·çš„æ½œåœ¨å…´è¶£é›†ï¼Œè¿›è€Œå¾—åˆ°æŒ‰ç­‰çº§åˆ’åˆ†çš„å…³äºŽå€™é€‰ç‰©å“çš„æ½œåœ¨å…´è¶£é›†ã€‚æˆ‘ä»¬åˆ©ç”¨çŽ°å®žç”Ÿæ´»ä¸­çš„ç”±é›¨æ»´äº§ç”Ÿçš„æ¶Ÿæ¼ªåœ¨æ°´é¢ä¸Šæ‰©æ•£æ¥æ¨¡æ‹Ÿåå¥½æ‰©æ•£çš„è¿‡ç¨‹ï¼Œå…¶ä¸­å¤šä¸ªâ€œæ¶Ÿæ¼ªâ€é‡å&nbsp;å½¢æˆåŸºäºŽçŸ¥è¯†å›¾è°±çš„ç”¨æˆ·åå¥½åˆ†å¸ƒã€‚

å¦‚å›¾\ref{fig:ripplenet-framework}ï¼Œæ¯éƒ¨ç”µå½±éƒ½æœ‰ä¸€ä¸ªåµŒå…¥è¡¨ç¤º$v$ï¼Œ$v\in \mathbb{R}^{d}$ï¼Œå…¶ä¸­$\mathbb{R}$æ˜¯å®žæ•°é›†ï¼Œ$d$æ˜¯åµŒå…¥è¡¨ç¤ºå‘é‡çš„ç»´æ•°ã€‚ç»™å®šç”µå½±çš„åµŒå…¥è¡¨ç¤º$v$ä»¥åŠç”¨æˆ·$1$è·³æ¶Ÿæ¼ªé›†$S_u^{1}$ï¼Œå¯ä»¥åˆ©ç”¨ç”µå½±$v$ã€$S_u^{1}$ä¸­çš„ä¸‰å…ƒç»„ä¸­å¤´èŠ‚ç‚¹$head_i$ä»¥åŠè¯¥ä¸‰å…ƒç»„ä¸­çš„å…³ç³»$r_i$æ¥è®¡ç®—å‡ºç”µå½±$v$å’Œå®žä½“$head_i$ä¹‹é—´çš„ç›¸å…³åº¦ï¼Œå¦‚å¼\eqref{eq:item-entity-relevance}æ‰€ç¤ºã€‚

\begin{equation}
	p_i=softmax(v^TR_ih_i)=\frac{exp(v^TR_ih_i)}{\sum_{(h, r, t)\in S_u^1} exp(v^TRh)}\label{eq:item-entity-relevance}
\end{equation}

å¼\eqref{eq:item-entity-relevance}ä¸­ï¼Œ$R_i\in \mathbb{R}^{d\times d}$ä¸Ž$h_i\in \mathbb{R}^d$åˆ†åˆ«æ˜¯å…³ç³»$r_i$å’Œå¤´èŠ‚ç‚¹$h_i$çš„åµŒå…¥è¡¨ç¤ºã€‚ç›¸å…³åº¦$p_i$ä¸ºå‘é‡ç©ºé—´$R_i$ä¸­çš„ç”µå½±$v$ä¸Žå®žä½“$h_i$ä¹‹é—´çš„ç›¸ä¼¼åº¦ã€‚åŒæ—¶è¿˜è€ƒè™‘äº†å…³ç³»ä¿¡æ¯çš„åµŒå…¥è¡¨ç¤ºçŸ©é˜µåœ¨è®¡ç®—ç”µå½±$v$ä¸Žå®žä½“$h_i$ä¹‹é—´çš„ç›¸ä¼¼åº¦ï¼Œå›&nbsp;ä¸ºä¸åŒç”µå½±-å®žä½“å¯¹ä¹‹é—´çš„ç›¸ä¼¼åº¦åœ¨ä¸åŒå…³ç³»çš„åœºæ™¯ä¸‹å¯èƒ½æœ‰æ‰€ä¸åŒã€‚æ¯”å¦‚ï¼Œâ€œé˜¿ç”˜æ­£ä¼&nbsp;â€ä¸Žâ€œå›žåˆ°æœªæ¥â€åœ¨å¯¼æ¼”æ–¹é¢æœ‰å¾ˆé«˜çš„ç›¸ä¼¼åº¦ï¼Œä½†å®ƒä»¬åœ¨ä½“è£æˆ–å‰§ä½œå®¶æ–¹é¢å¯èƒ½æ²¡æœ‰è”ç³»ã€‚

åœ¨å®Œæˆç›¸ä¼¼åº¦è®¡ç®—ä¹‹åŽï¼Œå°†$S_u^{1}$ä¸­ä¸‰å…ƒç»„çš„å°¾èŠ‚ç‚¹æ&nbsp;¹æ®è®¡ç®—å¾—åˆ°çš„ç›¸ä¼¼åº¦è¿›è¡ŒåŠ&nbsp;æƒæ±‚å’Œï¼Œå¾—åˆ°å‘é‡$o^{1}_u$ï¼Œå¦‚å¼\eqref{eq:o1}æ‰€ç¤ºã€‚

\begin{equation}
	o^1_u=\sum_{(h_i,r_i,t_i)\in S_u^1}p_it_i\label{eq:o1}
\end{equation}

å¼\eqref{eq:o1}ä¸­ï¼Œ$t_i\in \mathbb{R}^{d}$ï¼Œ$t_i$æ˜¯äº‹å®žä¸‰å…ƒç»„ä¸­çš„å°¾èŠ‚ç‚¹ã€‚å‘é‡$o^{1}_u$å¯ä»¥è§†ä¸ºç”¨æˆ·åå¥½é›†$V_u$å…³äºŽç”µå½±$v$çš„$1$æ¬¡å“åº”ã€‚ä¸ŽååŒè¿‡æ»¤ç®—æ³•ç±»ä¼¼çš„æ˜¯ï¼Œå®ƒæ&nbsp;¹æ®ç”¨æˆ·äº¤äº’è¿‡çš„ç‰©å“æ¥è¡¨ç¤ºç”¨æˆ·åµŒå…¥è€Œä¸æ˜¯ä½¿ç”¨å•ç‹¬çš„å‚æ•°æ¥è¡¨ç¤ºç”¨æˆ·ï¼Œä»Žè€Œå‡å°‘äº†å‚æ•°æ•°é‡ã€‚é€šè¿‡å¼\eqref{eq:item-entity-relevance}ä¸Žå¼\eqref{eq:o1}ï¼Œç”¨æˆ·çš„åå¥½ä»Žå…¶äº¤äº’è¿‡çš„ç”µå½±ï¼ˆå³ç§å­é›†ï¼‰æˆåŠŸåœ¨çŸ¥è¯†å›¾è°±ä¸­è¿›è¡Œäº†ä¸€æ¬¡æ‰©æ•£ï¼Œè¿™ç§°ä¸ºæ¶Ÿæ¼ªç½‘ç»œä¸­çš„åå¥½æ‰©æ•£ã€‚

å¯ä»¥å°†å¼\eqref{eq:item-entity-relevance}ä¸­çš„$v$æ›¿æ¢ä¸º$o_u^1$ï¼Œæˆ‘ä»¬å¯ä»¥å†æ¬¡è¿›è¡Œåå¥½æ‰©æ•£ä»¥å¾—åˆ°ç”¨æˆ·çš„2æ¬¡å“åº”$o_u^2$ã€‚ä»¥æ­¤ç±»æŽ¨ï¼Œæœ€ç»ˆæˆ‘ä»¬å¯ä»¥å°†è¯¥ç”¨æˆ·çš„åå¥½é›†æ‰©æ•£è‡³$H$è·³ï¼Œå¾—åˆ°ç”¨æˆ·çš„æ¶Ÿæ¼ªé›†$S_u^{i}, i=1,\dots,H$ã€‚ä»Žä¸­å¯ä»¥å¾—åˆ°ç”¨æˆ·çš„å¤šæ¬¡å“åº”$o^{1}_u, o^{2}_u, o^{H}_u$ã€‚ç”¨æˆ·$u$å…³äºŽç”µå½±$v$çš„åµŒå…¥è¡¨ç¤ºæ˜¯é€šè¿‡ç»“åˆæ‰€æœ‰çš„ä¸åŒå“åº”å¹¶è®¡ç®—å¾—åˆ°çš„ï¼Œå¦‚å¼\eqref{eq:osum}æ‰€ç¤ºã€‚
\begin{equation}
	u=o_u^1+o_u^2+\dots+o_u^H\label{eq:osum}
\end{equation}

å°½ç®¡æœ€åŽä¸€è·³çš„ç”¨æˆ·å“åº”ä¸­ç†è®ºä¸ŠåŒ…å«äº†æ‰€æœ‰ä¹‹å‰å¾—åˆ°çš„ä¿¡æ¯ï¼Œä½†æ˜¯å¯¹$o^k_u$è¿›è¡Œæ±‚å’Œä»ç„¶æ˜¯æœ‰å¿…è¦çš„ï¼Œå›&nbsp;ä¸ºä¹‹å‰å¾—åˆ°çš„ç”¨æˆ·å“åº”å¯èƒ½åœ¨åå¥½ä¼&nbsp;é€’çš„è¿‡ç¨‹ä¸­ç¨€é‡Šäº†ï¼Œå›&nbsp;æ­¤ä»…ä½¿ç”¨æœ€åŽä¸€è·³çš„å“åº”ä¸èƒ½å¾ˆå¥½åœ°è¡¨ç¤ºç”¨æˆ·åµŒå…¥ã€‚æœ€ç»ˆï¼Œåˆ©ç”¨ç”¨æˆ·åµŒå…¥ä¸Žç”µå½±åµŒå…¥ï¼Œè®¡ç®—å‡ºç”¨æˆ·å¯¹ç”µå½±æ„Ÿå…´è¶£çš„æ¦‚çŽ‡ï¼Œå¦‚å¼\eqref{eq:predicted-possibility}æ‰€ç¤ºã€‚
\begin{equation}
	y_{uv}=\zeta(u^Tv)\label{eq:predicted-possibility}
\end{equation}

å…¶ä¸­ï¼Œ$\zeta(x)=\frac{1}{1+exp(-x)}$æ˜¯sigmoidå‡½æ•°ã€‚
\section{å­¦ä¹&nbsp;ç®—æ³•}
åœ¨æ¶Ÿæ¼ªç½‘ç»œç®—æ³•ä¸­ï¼Œæˆ‘ä»¬çš„ç›®æ&nbsp;‡æ˜¯é€šè¿‡å¼\eqref{eq:predicted-possibility}æ±‚å‡ºç”¨æˆ·å¯¹ç”µå½±æ„Ÿå…´è¶£çš„æ¦‚çŽ‡ã€‚ä½†æ˜¯ï¼Œä¸ºäº†å°†å…¶è®¡ç®—å‡ºæ¥æˆ‘ä»¬éœ€è¦å…ˆæ±‚å‡ºæ‰€æœ‰ç‰©å“ã€ç”¨æˆ·ä»¥åŠå…³ç³»çš„åµŒå…¥è¡¨ç¤ºï¼Œå¦‚ç¬¬\ref{sec:osum}èŠ‚ä¸­æ‰€è¿°ï¼Œç”¨æˆ·çš„åµŒå…¥è¡¨ç¤ºå¯ä»¥é€šè¿‡å…¶æ¶Ÿæ¼ªé›†æ¥ä»£æ›¿ï¼Œä»¥æ­¤æ¶ˆå…ƒã€‚ä½†ç‰©å“åŠå…³ç³»çš„åµŒå…¥è¡¨ç¤ºå´æ˜¯éœ€è¦æ±‚å‡ºæ¥çš„ã€‚

ä¸ºäº†æ±‚å‡ºç‰©å“åŠå…³ç³»çš„åµŒå…¥è¡¨ç¤ºï¼Œè¿™é‡Œä½¿ç”¨æœ€å¤§åŽéªŒæ¦‚çŽ‡ä¼°è®¡çš„æ–¹æ³•ã€‚

æˆ‘ä»¬çš„ç›®æ&nbsp;‡æ˜¯åœ¨å·²ç»å¾—åˆ°çŸ¥è¯†å›¾è°±$G$ä»¥åŠç”¨æˆ·ä¸Žç”µå½±çš„äº¤äº’çŸ©é˜µ$\Upsilon$çš„æƒ…å†µä¸‹æœ€å¤§åŒ–æ¨¡åž‹å‚æ•°$\Gamma$ï¼Œå¦‚å¼\eqref{eq:max}æ‰€ç¤ºã€‚
\begin{equation}
	max\ p(\Gamma |G,\Upsilon)\label{eq:max}
\end{equation}

å¼\eqref{eq:max}ä¸­ï¼Œå‚æ•°$\Gamma$åŒ…å«äº†å…¨éƒ¨çš„å®žä½“ã€å…³ç³»å’Œç”µå½±çš„åµŒå…¥è¡¨ç¤ºã€‚å¯ä»¥å°†å¼\eqref{eq:max}ç­‰ä»·äºŽæœ€å¤§åŒ–å¼\eqref{eq:equal-max}ã€‚

\begin{equation}
	p(\Gamma |G,\Upsilon)=\frac{p(\Gamma,G,\Upsilon)}{p(G,\Upsilon)}\varpropto p(\Gamma)\centerdot p(G|\Gamma)\centerdot p(\Upsilon|\Gamma,G)\label{eq:equal-max}
\end{equation}

æ&nbsp;¹æ®è´å¶æ–¯å…¬å¼ï¼Œåœ¨å¼\eqref{eq:equal-max}ä¸­ï¼Œç¬¬ä¸€é¡¹$p(\Gamma)$ä»£è¡¨æ¨¡åž‹å‚æ•°çš„å…ˆéªŒæ¦‚çŽ‡ã€‚è®¾$p(\Gamma)$ä¸ºå‡å€¼ä¸º0ï¼Œæ–¹å·®ä¸ºå¯¹è§’åæ–¹å·®çŸ©é˜µçš„æ­£æ€åˆ†å¸ƒï¼Œå¦‚å¼\eqref{eq:normal-distribution}æ‰€ç¤ºã€‚

\begin{equation}
	p(\Gamma)=N(0,\lambda_1^{-1}I)\label{eq:normal-distribution}
\end{equation}

å¼\eqref{eq:equal-max}ä¸­ï¼Œ$p(G|\Gamma)$æ˜¯ç»™å®š$\Gamma$çš„çŸ¥è¯†å›¾è°±çš„æœ€å¤§ä¼¼ç„¶å‡½æ•°ã€‚æœ€è¿‘ï¼Œæœ‰ç&nbsp;”ç©¶è€…æå‡ºäº†å¤šç§è®¡ç®—çŸ¥è¯†å›¾è°±åµŒå…¥çš„æ–¹æ³•ï¼ŒåŒ…æ‹¬åŸºäºŽè·ç¦»çš„æ–¹æ³•å’ŒåŸºäºŽè¯­ä¹‰åŒ¹é…çš„æ–¹æ³•ã€‚åœ¨æœ¬ç®—æ³•ä¸­ï¼Œä½¿ç”¨ä¸‰è·¯å¼&nbsp;é‡åˆ†è§£çš„æ–¹æ³•æ¥å»ºç«‹çŸ¥è¯†å›¾è°±åµŒå…¥çš„æœ€å¤§ä¼¼ç„¶å‡½æ•°ï¼Œå¦‚å¼\eqref{eq:term2}ã€‚

\begin{equation}
	p(G|\Gamma)=\prod_{(h,r,t)\in E\times R\times E}p((h,r,t)|\Gamma)=\prod_{(h,r,t)\in E\times R\times E}N(I_{h,r,t}-h^TRt,\lambda_2^{-1})\label{eq:term2}
\end{equation}

å¼\eqref{eq:term2}ä¸­ï¼Œè‹¥$I_{h,r,t}\in G$åˆ™æ&nbsp;‡å¿—$I_{h,r,t}$ç­‰äºŽ1,å¦åˆ™ä¸º0ã€‚å¼\eqref{eq:equal-max}ä¸­çš„ç¬¬ä¸‰é¡¹æ˜¯ç»™å®š$\Gamma$ä¸ŽçŸ¥è¯†å›¾è°±çš„ä¼¼ç„¶å‡½æ•°ï¼Œå¯ä»¥çœ‹ä½œä¼¯åŠªåˆ©åˆ†å¸ƒçš„ç´¯ä¹˜ï¼Œå¦‚å¼\eqref{eq:bernoulli}ã€‚

\begin{equation}
	p(\Upsilon|\Gamma,G)=\prod_{(u,v)\in \Upsilon}\zeta(u^Tv)^{y_{uv}}\centerdot (1-\zeta (u^Tv))^{1-y_{uv}}\label{eq:bernoulli}
\end{equation}

å¯¹å¼\eqref{eq:equal-max}å–è´Ÿå¯¹æ•°ï¼Œæœ‰å¦‚å¼\eqref{eq:term3}æ‰€ç¤ºçš„æŸå¤±å‡½æ•°ï¼š
\begin{multline}
	min\ L=-log(p(\Upsilon|\Gamma,G)\centerdot p(G|\Gamma)\centerdot p(\Gamma))\\
=\sum_{(u,v)\in \Upsilon}-(y_{uv}log\ \zeta(u^Tv)+(1-y_{uv}log(1-\zeta(u^Tv))))\\
+\frac{\lambda_2}{2}\sum_{r\in R}\|I_r-E^TRE\|_2^2+\frac{\lambda_1}{2}(\|V\|^2_2+\|E\|^2_2+\sum_{r\in R}\|R\|^2_2)\label{eq:term3}
\end{multline}

å¼\eqref{eq:term3}ä¸­ï¼Œ$V$å’Œ$E$æ˜¯æ‰€æœ‰ç”µå½±ä¸Žå®žä½“çš„åµŒå…¥è¡¨ç¤ºï¼Œ$I_r$æ˜¯åœ¨çŸ¥è¯†å›¾è°±ä¸­å¯¹å…³ç³»$r$çš„æ&nbsp;‡å¿—å‘é‡$I$çš„åˆ†å‘é‡ã€‚åœ¨å¼\eqref{eq:term3}ä¸­ï¼Œç¬¬ä¸€é¡¹æ˜¯äº¤äº’çŸ©é˜µ$\Upsilon$ä¸Žæ¶Ÿæ¼ªç½‘ç»œçš„ä¼°æµ‹å€¼ä¹‹é—´çš„äº¤å‰ç†µï¼Œç¬¬äºŒé¡¹æ˜¯çœŸå®žçš„çŸ¥è¯†å›¾è°±åˆ†å‘é‡$I_r$ä»¥åŠäººä¸ºæž„å»ºçš„æŒ‡ç¤ºçŸ©é˜µ$E^{T}RE$ä¹‹é—´çš„å‡æ–¹è¯¯å·®ï¼Œæœ€åŽä¸€é¡¹æ˜¯ä¸ºé˜²æ­¢è¿‡æ‹ŸåˆåŠ&nbsp;å…¥çš„æ­£åˆ™é¡¹ã€‚

ç›´æŽ¥æ±‚è§£ä¸Šå¼æ¥å¾—åˆ°å‚æ•°$\Gamma$æ˜¯ä¸å¯èƒ½çš„ï¼Œå›&nbsp;æ­¤å¯ä»¥ä½¿ç”¨éšæœºæ¢¯åº¦ä¸‹é™ç®—æ³•é€’å½’åœ°ä¼˜åŒ–æŸå¤±å‡½æ•°æ¥æ±‚è§£æ¨¡åž‹å‚æ•°ï¼Œè€ŒåŽå†è®¡ç®—å‚æ•°$\Gamma$çš„æŸå¤±å‡½æ•°çš„æ¢¯åº¦ï¼Œå¹¶æ&nbsp;¹æ®é‡‡æ&nbsp;·å¾—åˆ°çš„ä¸€å°æ‰¹æ•°æ®åå‘ä¼&nbsp;é€’ï¼Œç„¶åŽæ›´æ–°å‚æ•°å¹¶æœ€ç»ˆå¾—åˆ°å‚æ•°$\Gamma$ã€‚
\section{åˆ†æž}
\subsection{å¯è§£é‡Šæ€§}
å¯è§£é‡Šçš„æŽ¨èç³»ç»Ÿæ—¨åœ¨é˜é‡Šä¸ºä»€ä¹ˆç”¨æˆ·ä¼šå¯¹ä¸€ä»¶ç‰©å“æ„Ÿå…´è¶£ï¼Œè¿™å¸®åŠ©æå‡ç”¨æˆ·å¯¹æŽ¨èç»“æžœçš„æ»¡æ„åº¦ä»¥åŠå¯¹æŽ¨èç³»ç»Ÿçš„ä¿¡ä»»ã€‚å¯¹æŽ¨èç»“æžœçš„è§£é‡Šé€šå¸¸åŸºäºŽæ&nbsp;‡ç­¾ã€è¯­ä¹‰åˆ†æžç­‰ã€‚å›&nbsp;ä¸ºæ¶Ÿæ¼ªç½‘ç»œæŽ¢ç´¢ç”¨æˆ·åŸºäºŽçŸ¥è¯†å›¾è°±çš„å…´è¶£ï¼Œå›&nbsp;æ­¤å®ƒæä¾›äº†ä¸€ç§åŸºäºŽçŸ¥è¯†å›¾è°±ä¸­çš„å…³ç³»è·¯å¾„æ¥é˜è¿°æŽ¨èç»“æžœçš„å…¨æ–°æ–¹å¼ã€‚æ¯”å¦‚ï¼Œåœ¨å›¾\ref{fig:illustration-of-ripple-sets}ä¸­ï¼Œå½“ç”¨æˆ·å¯¹â€œå¹¸ç¦ç»ˆç‚¹ç«™â€æ„Ÿå…´è¶£ï¼Œåˆ™è¯¥ç”¨æˆ·ä¹Ÿå¯èƒ½å¯¹â€œè’å²›ä½™ç”Ÿâ€æ„Ÿå…´è¶£ã€‚å›&nbsp;ä¸ºåœ¨çŸ¥è¯†å›¾è°±ä¸­ï¼Œâ€œæ±¤å§†Â·æ±‰å…‹æ–¯â€ä¸Žâ€œå¹¸ç¦ç»ˆç‚¹ç«™â€ç›¸è¿žï¼Œå…³ç³»æ˜¯æ¼”å‘˜ï¼Œè€Œâ€œæ±¤å§†Â·æ±‰å…‹æ–¯â€ä¸Žâ€œè’å²›ä½™ç”Ÿâ€ä¹Ÿç›¸è¿žï¼Œå…³ç³»ä¹Ÿæ˜¯æ¼”å‘˜ï¼Œæ¢å¥è¯è¯´ï¼Œâ€œè’å²›ä½™ç”Ÿâ€ä¸Žâ€œå¹¸ç¦ç»ˆç‚¹ç«™â€æœ‰ç›¸åŒçš„æ¼”å‘˜ã€‚è¿™ä¾¿è§£é‡Šäº†ç”¨æˆ·å¯¹â€œå¹¸ç¦ç»ˆç‚¹ç«™â€å’Œâ€œè’å²›ä½™ç”Ÿâ€åŒæ—¶æ„Ÿå…´è¶£çš„åŽŸå›&nbsp;ã€‚æ¶Ÿæ¼ªç½‘ç»œç®—æ³•é€šè¿‡åœ¨çŸ¥è¯†å›¾è°±ä¸­å¯»æ‰¾ä¸Žç”¨æˆ·äº¤äº’è¿‡çš„ç”µå½±ï¼ˆç§å­é›†ï¼‰ç›¸è¿žçš„ç‰©å“ï¼Œå¹¶ä¸æ–­æ‰©æ•£ï¼Œæœ€ç»ˆç¡®ä¿æŽ¨èç»“æžœå…·æœ‰è¾ƒé«˜çš„å‡†ç¡®æ€§ã€‚
\subsection{æ¶Ÿæ¼ªé‡å&nbsp;}
åœ¨æ¶Ÿæ¼ªç½‘ç»œä¸­ï¼Œä¸€ä¸ªå¯èƒ½çš„é—®é¢˜æ˜¯æ¶Ÿæ¼ªé›†ä¸­çš„ç”µå½±éžå¸¸å¤šï¼Œä»Žè€Œåœ¨åå¥½ä¼&nbsp;é€’çš„è¿‡ç¨‹ä¸­ä¸å¯é¿å…åœ°å¯¼è‡´ç”¨æˆ·çš„çœŸå®žæ½œåœ¨åå¥½ä¿¡æ¯è¢«ç¨€é‡Šã€‚ç„¶è€Œï¼Œç”¨æˆ·ç‚¹å‡»è®°å½•ä¸­ä¸åŒçš„ç”µå½±å¸¸å¸¸é«˜åº¦é‡å&nbsp;ï¼ˆä»Žç§å­é›†å‡ºå‘åˆ°è¾¾ä¸€éƒ¨ç”µå½±å¸¸å¸¸æœ‰ä¸æ­¢ä¸€æ¡è·¯å¾„ï¼‰ï¼Œè¿™åœ¨å¾ˆå¤§ç¨‹åº¦ä¸Šé¿å…äº†çœŸå®žæ½œåœ¨åå¥½ä¿¡æ¯è¢«ç¨€é‡Šçš„é—®é¢˜ã€‚æ¯”å¦‚ï¼Œåœ¨å›¾\ref{fig:illustration-of-ripple-sets}ä¸­ï¼Œå¦‚æžœä¸€ä¸ªç”¨æˆ·å–œæ¬¢â€œé˜¿ç”˜æ­£ä¼&nbsp;â€ï¼Œåˆ™ä»–ä¹Ÿå¯èƒ½å–œæ¬¢â€œè’å²›ä½™ç”Ÿâ€ã€‚åœ¨è¯¥çŸ¥è¯†å›¾è°±ä¸­ï¼Œä»Žâ€œé˜¿ç”˜æ­£ä¼&nbsp;â€åˆ°â€œè’å²›ä½™ç”Ÿâ€æœ‰ä¸¤æ¡è·¯å¾„ï¼šâ€œé˜¿ç”˜æ­£ä¼&nbsp;-U.S.-è’å²›ä½™ç”Ÿâ€ä¸Žâ€œé˜¿ç”˜æ­£ä¼&nbsp;-æ±¤å§†Â·æ±‰å…‹æ–¯-è’å²›ä½™ç”Ÿâ€ï¼Œè¿™æ­£æ˜¯æ¶Ÿæ¼ªé‡å&nbsp;çš„è¡¨çŽ°ã€‚
\section{æµ‹è¯•}
\subsection{æ•°æ®é›†}
æœ¬æµ‹è¯•ä½¿ç”¨â€œMovieLens 1M Datasetâ€æ•°æ®é›†ã€‚è¯¥æ•°æ®é›†ç”±ç”µå½±ä¿¡æ¯ã€ç”¨æˆ·ä¿¡æ¯ä»¥åŠç”¨æˆ·å¯¹ç”µå½±çš„è¯„ä»·ä¸‰éƒ¨åˆ†ç»„æˆã€‚å…¶ä¸­ï¼Œå«æœ‰ç”µå½±æ•°æ®3883æ¡ã€ç”¨æˆ·æ•°æ®6040æ¡ä»¥åŠ1000209æ¡ç”¨æˆ·å¯¹ç”µå½±çš„è¯„ä»·æ•°æ®ã€‚å›&nbsp;è¯¥æ•°æ®é›†æ•°æ®é‡é€‚ä¸­ï¼Œæ•°æ®å‡†ç¡®å¯é&nbsp;ï¼Œå›&nbsp;æ­¤åœ¨æŽ¨èç³»ç»Ÿçš„æ€§èƒ½æµ‹è¯•ä¸­è¢«å¹¿æ³›ä½¿ç”¨ã€‚

æœ¬æµ‹è¯•ä½¿ç”¨çš„çŸ¥è¯†å›¾è°±æ¥è‡ªMicrosoft Satoriï¼Œæ˜¯ä¾æ®â€œMovieLens 1M Datasetâ€ä¸­çš„ç”µå½±åç§°ä»ŽMicrosoft Satoriä¸­æå–ç›¸å…³çš„èŠ‚ç‚¹çš„ä¸Žå…³ç³»æ•°æ®å¾—åˆ°çš„ã€‚
\subsection{åŸºçº¿}
æœ¬æµ‹è¯•ä¸­ï¼Œä¼šå°†æœ¬ç®—æ³•çš„æµ‹è¯•ç»“æžœä¸Žä»¥ä¸‹ç®—æ³•çš„ç›¸æ¯”è¾ƒï¼š

DKN\cite{wang2018dkn}æ˜¯ç”±å¾®è½¯å›¢é˜Ÿåœ¨WWW2018ä¼šè®®ä¸Šå‘è¡¨çš„ã€‚å®ƒæ˜¯ä¸€ä¸ªä¸»è¦é’ˆå¯¹æ–°é—»ä»»åŠ¡æå‡ºçš„æ¡†æž¶ï¼ŒçŸ¥è¯†å›¾è°±ç”¨äºŽè¾…åŠ©è®¡ç®—æ–°é—»æ&nbsp;‡é¢˜çš„åµŒå…¥è¡¨ç¤ºã€‚DKNæå‡ºå¯¹æ–°é—»æ&nbsp;‡é¢˜å†…æ¯ä¸€ä¸ªå…³é”®å®žä½“ï¼Œåœ¨çŸ¥è¯†å›¾è°±å†…æ‰¾åˆ°å…¶å®žä½“åµŒå…¥å’Œä¸Šä¸‹æ–‡åµŒå…¥ã€‚

CKE\cite{zhang2016collaborative}æ˜¯å¾®è½¯åœ¨KDD2016å¹´å‘è¡¨çš„ï¼Œå…¶æ¨¡åž‹ç»“æž„åœ¨åŽŸæœ‰ç³»ç»Ÿè¿‡æ»¤å¾—åˆ°$U$,$V$å‘é‡çš„åŸºç¡€ä¸Šï¼Œå°†ç‰©å“çš„åµŒå…¥ä¸Žå…¶ä»–æè¿°ä¿¡æ¯ç›¸ç»“åˆï¼Œè¿™äº›ä¿¡æ¯ä¸»è¦æœ‰:
é‡‡ç”¨TransRç®—æ³•è®¡ç®—çŸ¥è¯†å›¾è°±åµŒå…¥è¡¨ç¤ºï¼ŒçŸ¥è¯†å›¾è°±å†…æ¯ä¸ªå®žä½“åµŒå…¥è¡¨ç¤ºè¢«æå–ä¸ºç‰©å“çš„ç»“æž„åŒ–å‘é‡ä¿¡æ¯ã€‚
é‡‡ç”¨SDAEæ¨¡åž‹å¾—åˆ°ç‰©å“æè¿°æ€§æ–‡æœ¬çš„æ–‡æœ¬æ€§åµŒå…¥è¡¨ç¤ºã€‚
é‡‡ç”¨SCAEæ¨¡åž‹å¾—åˆ°ç‰©å“ç›¸å…³å›¾åƒçš„è§†è§‰åµŒå…¥è¡¨ç¤ºã€‚

SHINE\cite{wang2018shine}è®¾è®¡æ·±åº¦è‡ªç¼–ç&nbsp;å™¨å¹¶åµŒå…¥è¯­ä¹‰ç½‘ç»œä»¥åŠç¤¾äº¤ç½‘ç»œæ¥è¿›è¡ŒæŽ¨èã€‚å…¶ä¸ºç”¨æˆ·-ç‰©å“çš„äº¤äº’ä½¿ç”¨è‡ªåŠ¨ç¼–ç&nbsp;å™¨å¹¶åˆ»ç”»ç”¨æˆ·æ„Ÿå…´è¶£çš„æ¦‚çŽ‡ã€‚

PER\cite{yu2014personalized}æ˜¯ä»¥åŸºäºŽè·¯å¾„çš„æ–¹æ³•æ¥å°†çŸ¥è¯†å›¾è°±ä½œä¸ºè¾…åŠ©ä¿¡æ¯ä¸­çš„æ¯”è¾ƒç»å…¸çš„ç®—æ³•ã€‚å…¶æå‡ºçš„å…ƒè·¯å¾„å¯ä»¥ä¸ºæŽ¨èç³»ç»Ÿæä¾›å¯é&nbsp;çš„æ–¹å‘ï¼Œä½†æ˜¯éœ€è¦ä½¿ç”¨è€…äº†è§£é¢†åŸŸå†…çŸ¥è¯†ï¼Œè¿›è¡Œäººä¸ºè·¯å¾„è®¾è®¡ã€‚

LibFM\cite{rendle2012factorization}æ˜¯ä¸€ä¸ªå¹¿æ³›ä½¿ç”¨çš„åœ¨CTRåœºæ™¯ä¸­çš„åˆ†è§£æŽ¨èæ¨¡åž‹ã€‚

Wide\&amp;Deep\cite{cheng2016wide}æ˜¯ä¸€ä¸ªç»“åˆçº¿æ€§è·¯å¾„çš„æŽ¨èæ¨¡åž‹ã€‚ç±»ä¼¼äºŽLibFMï¼Œæˆ‘ä»¬å°†ç”¨æˆ·ã€ç‰©å“åŠå®žä½“çš„åµŒå…¥è¡¨ç¤ºä½œä¸ºå…¶è¾“å…¥ã€‚
\subsection{æµ‹è¯•æ­¥éª¤}
åœ¨æ¶Ÿæ¼ªç½‘ç»œä¸­ï¼Œè®¾ç½®è·³æ•°$H=2$ã€‚æ&nbsp;¹æ®å®žéªŒç»“æžœï¼Œè¾ƒå¤§çš„è·³æ•°å‡&nbsp;ä¹Žæ—&nbsp;æ³•æé«˜æ€§èƒ½å´ä¼šé€&nbsp;æˆè¾ƒå¤§çš„è®¡ç®—å¼€é”€ã€‚æˆ‘ä»¬å°†æ•°æ®åˆ’åˆ†ä¸ºè®­ç»ƒé›†ã€è¯„ä¼°é›†ä¸Žæµ‹è¯•é›†ï¼ŒæŒ‰ç…§6:2:2çš„æ¯”ä¾‹è¿›è¡Œåˆ†é…ã€‚å®žéªŒè¿›è¡Œ5æ¬¡ï¼Œè®¡ç®—å‡†ç¡®åº¦ä»¥åŠAUCç„¶åŽå–å¹³å‡å€¼ã€‚
\subsection{ç»“æžœ}
æµ‹è¯•ç»“æžœå¦‚è¡¨\ref{tab:acc-auc}ä¸­æ‰€ç¤ºï¼Œæ€»ä½“ä¸Šæ¶Ÿæ¼ªç½‘ç»œç®—æ³•çš„æ€§èƒ½æœ€ä½³ï¼Œå…¶æ¬¡æ˜¯Wide\&amp;Deepç®—æ³•ï¼Œè¯´æ˜Žä»–ä»¬å¯ä»¥å……åˆ†åˆ©ç”¨çŸ¥è¯†å›¾è°±ä¸­çš„æœ‰æ•ˆä¿¡æ¯æ¥è¾…åŠ©æŽ¨èç®—æ³•ã€‚è€Œè¡¨çŽ°æœ€å·®çš„æ˜¯PERç®—æ³•ï¼Œè¿™å¯èƒ½æ˜¯å›&nbsp;ä¸ºæ‰‹å·¥å®šä¹‰çš„å…ƒè·¯å¾„åœ¨ç”µå½±æŽ¨èæ–¹é¢æ•ˆæžœè¾ƒå·®ã€‚
\begin{table}
	\bicaption{åœ¨å…´è¶£é¢„æµ‹è®¡ç®—ä¸­çš„AUCå’Œå‡†ç¡®åº¦}{AUC and ACC in interest prediction}\label{tab:acc-auc}
	\begin{tabular}{ccc}
	 \toprule
	 ç®—æ³• &amp; AUC &amp; å‡†ç¡®åº¦ \\
	 \midrule
	 æ¶Ÿæ¼ªç½‘ç»œ &amp; 0.899 &amp; 0.835 \\
	  DKN &amp; 0.655 &amp; 0.589 \\
	  CKE &amp; 0.796 &amp; 0.739 \\
	  SHINE &amp; 0.778 &amp; 0.732\\
	  LibFM &amp; 0.892 &amp; 0.812\\
	  Wide\&amp;Deep &amp; 0.903 &amp; 0.822\\
	  \bottomrule
	\end{tabular}
\end{table}
\chapter{åŸºäºŽçŸ¥è¯†å›¾è°±çš„ç”µå½±æŽ¨èç³»ç»Ÿ}
\section{ç³»ç»Ÿæ•´ä½“è®¾è®¡}
å¦‚ç¬¬\ref{sec:tech-stack}èŠ‚ä¸­æ‰€è¿°ï¼Œæœ¬ç³»ç»Ÿä½¿ç”¨çš„æ•°æ®æ¥è‡ªâ€œMovieLens 1M Datasetâ€ã€IMDbå’Œè±†ç“£ç½‘ã€‚å…¶ä¸­IMDbå’Œè±†ç“£ç½‘çš„æ•°æ®æ˜¯ä½¿ç”¨çˆ¬è™«çˆ¬å–å¾—åˆ°çš„ã€‚æœ€åŽå†ä½¿ç”¨Pythonè„šæœ¬å¯¹è¿™äº›æ•°æ®è¿›è¡Œå¤„ç†åŠ&nbsp;å·¥ï¼Œå¹¶å¯¼å…¥MongoDBæ•°æ®åº“å’ŒNeo4jæ•°æ®åº“ã€‚

æœ¬ç³»ç»Ÿä½¿ç”¨MongoDBå’ŒNeo4jå­˜å‚¨æ•°æ®ã€‚å…¶ä¸­ï¼ŒMongoDBä½œä¸ºéžå…³ç³»åž‹çš„æ–°å…´NoSQLæ•°æ®åº“ï¼Œä»¥çµæ´»çš„éžç»“æž„åŒ–çš„æ–¹å¼å­˜å‚¨æ™®é€šç”¨æˆ·æ•°æ®ã€ç®¡ç†å‘˜æ•°æ®ã€ç”µå½±æ•°æ®ç­‰ï¼Œå¹¶æä¾›é«˜å¹¶å‘çš„æ€§èƒ½æ”¯æŒä¸Žå¯åˆ†å¸ƒå¼å­˜å‚¨çš„æ‰©å±•æ€§ã€‚è€Œåœ¨ä»¥é«˜æ€§èƒ½è‘—ç§°çš„å›¾æ•°æ®åº“Neo4jä¸­ï¼Œå­˜å‚¨ç”¨äºŽæŽ¨èç®—æ³•ä½¿ç”¨çš„ç”µå½±çŸ¥è¯†å›¾è°±ã€‚

æœ¬ç³»ç»ŸåŽç«¯ä½¿ç”¨Pythonç¼–å†™çš„Flaskæ¡†æž¶ï¼ŒFlaskæ¡†æž¶æ˜¯è½»é‡çº§çš„å¾®æ¡†æž¶ï¼Œä»¥é«˜å¯æ‰©å±•æ€§è‘—ç§°ï¼Œä¸ºæœ¬ç³»ç»Ÿçš„åŽç«¯ç½‘é¡µåº”ç”¨æœåŠ¡å™¨æä¾›æ”¯æŒã€‚åœ¨Flaskä¸­ï¼ŒåŸºäºŽRESTé£Žæ&nbsp;¼æž„å»ºAPIä»¥ä¾›å‰ç«¯ä½¿ç”¨ï¼ŒRESTé£Žæ&nbsp;¼çš„è¯­ä¹‰åŒ–APIä½¿åŽç«¯APIçš„æž„å»ºä¸Žå‰ç«¯APIçš„ä½¿ç”¨ç®€å•æ–¹ä¾¿ã€‚

æœ¬ç³»ç»Ÿå‰ç«¯ä½¿ç”¨Angularä½œä¸ºå‰ç«¯ç½‘é¡µæ¡†æž¶ã€‚Angularæ˜¯åŸºäºŽTypeScriptçš„ç½‘é¡µæ¡†æž¶ï¼Œä»¥æ¨¡å—åŒ–åŠå¯é‡ç”¨çš„ç»„ä»¶è®¾è®¡è‘—ç§°ã€‚Angularä¸ºæœ¬ç³»ç»Ÿæä¾›äº†æ¨¡å—åŒ–çš„ç½‘é¡µè®¾è®¡ï¼Œä½¿æœ¬ç³»ç»Ÿå‰ç«¯é€»è¾‘æ¸…æ™°ï¼Œæ˜“äºŽç»´æŠ¤ã€‚æ­¤å¤–ï¼Œæœ¬ç³»ç»Ÿä½¿ç”¨äº†Angularææ–™ç»„ä»¶åº“ï¼ˆAngular Material Componentsï¼‰ï¼Œå¾—ç›ŠäºŽæ­¤ï¼Œæœ¬ç³»ç»Ÿéµå¾ªææ–™è®¾è®¡ï¼ˆMaterial Designï¼‰è¯­è¨€ï¼Œä½¿è§†è§‰ä¼&nbsp;è¾¾é£Žæ&nbsp;¼ç®€æ´ç¾Žè§‚ï¼Œå…·æœ‰å“åº”å¼åŠ¨åŒ–ä¸Žè¿‡æ¸¡æ•ˆè¿‡ã€å…‰çº¿ä¸Žé˜´å½±ç­‰ã€‚
\section{æ•°æ®åº“è®¾è®¡}
å¦‚å‰æ‰€è¿°ï¼Œæœ¬ç³»ç»Ÿçš„MongoDBæ•°æ®åº“ç”¨äºŽå­˜å‚¨æ™®é€šç”¨æˆ·æ•°æ®ã€ç®¡ç†å‘˜æ•°æ®ã€ç”µå½±æ•°æ®ç­‰ï¼Œè€ŒNeo4jä½œä¸ºé«˜æ€§èƒ½çš„å›¾æ•°æ®åº“ï¼Œç”¨äºŽå­˜å‚¨çŸ¥è¯†å›¾è°±ã€‚ä»¥ä¸‹é€ä¸€è¯´æ˜ŽMongoDBæ•°æ®åº“ä¸ŽNeo4jæ•°æ®åº“çš„å­˜å‚¨ç»“æž„ã€‚

ä¸åŒäºŽMySQLç­‰å…³ç³»åž‹æ•°æ®åº“ï¼ŒMongoDBæ•°æ®åº“ä½œä¸ºéžç»“æž„åŒ–å­˜å‚¨çš„NoSQLæ•°æ®åº“ï¼Œæ²¡æœ‰è¡¨ã€åˆ—ä¸Žè¡Œçš„æ¦‚å¿µï¼Œè€Œåªæœ‰é›†åˆä¸Žæ–‡æ¡£çš„æ¦‚å¿µï¼Œå³åœ¨æ•°æ®åº“ä¸­å­˜å‚¨é›†åˆï¼ˆä¸€å®šç¨‹åº¦ä¸Šå¯¹åº”äºŽå…³ç³»åž‹æ•°æ®åº“çš„è¡¨ï¼‰ï¼Œåœ¨é›†åˆä¸­å­˜å‚¨æ–‡æ¡£ï¼ˆä¸€å®šç¨‹åº¦ä¸Šå¯¹åº”äºŽå…³ç³»åž‹æ•°æ®åº“çš„è¡Œï¼‰ï¼Œè€Œå…³ç³»åž‹æ•°æ®åº“ä¸­çš„åˆ—åˆ™å¯¹åº”äºŽMongoDBæ•°æ®åº“ä¸­æ–‡æ¡£çš„å±žæ€§ã€‚

æœ¬ç³»ç»Ÿåœ¨MongoDBæ•°æ®åº“ä¸­å»ºç«‹4ä¸ªé›†åˆï¼Œåˆ†åˆ«ç”¨äºŽå­˜å‚¨ç”¨æˆ·ã€ç®¡ç†å‘˜ã€ä½“è£ä¸Žç”µå½±æ•°æ®ã€‚å›&nbsp;å…¶ä¸­çš„æ•°æ®ä¸ºéžç»“æž„åŒ–æ•°æ®ï¼Œå›&nbsp;æ­¤æ—&nbsp;æ³•ç”¨è¡¨æ&nbsp;¼çš„å½¢å¼ç»™å‡ºï¼Œç›®å‰ä¹&nbsp;æƒ¯ä¸Šä»¥JSONå½¢å¼ç»™å‡ºæ•°æ®çš„é€»è¾‘ç»“æž„ï¼Œä»¥ä¸‹ä»¥JSONå½¢å¼æ¥è¡¨ç¤ºå­˜å‚¨ç»“æž„ï¼š

ä»¥ä¸‹ä¸ºæ™®é€šç”¨æˆ·é›†åˆçš„æ•°æ®ç»“æž„ï¼Œç”¨æˆ·é›†åˆä¸­çš„æ–‡æ¡£å­˜å‚¨ç”¨æˆ·IDã€å“ˆå¸Œå¤„ç†åŽçš„å¯†ç&nbsp;ã€å…¶è¿›è¡Œè¿‡è¯„åˆ†çš„ç”µå½±ï¼ˆåŒ…æ‹¬ç”µå½±IDã€è¯„åˆ†åŠæ—¶é—´ï¼‰ä»¥åŠç”±æŽ¨èç®—æ³•æœåŠ¡å™¨å†™å…¥çš„æŽ¨èåˆ—è¡¨ã€å·²è´­ä¹°ç”µå½±åŠå¿ƒæ„¿å•ï¼š
\begin{verbatim}
    {
        _id: Integer,
        password: String,
        rating: Array([
            {
                movieId: Integer,
                rating: Integer,
                timestamp: Integer
            },
            ...
        ]),
        recommendation: Array([Interger, ...]),
        bought: Array([Interger, ...]),
        wishlist: Array([Interger, ...])
    }
\end{verbatim}

ä»¥ä¸‹ä¸ºç®¡ç†å‘˜é›†åˆçš„æ•°æ®ç»“æž„ï¼Œå…¶å­˜å‚¨ç»“æž„è¾ƒç®€å•ï¼Œç®¡ç†å‘˜é›†åˆä¸­çš„æ–‡æ¡£å­˜å‚¨ç®¡ç†å‘˜IDã€å“ˆå¸Œå¤„ç†åŽçš„å¯†ç&nbsp;ï¼š
\begin{verbatim}
    {
        _id: String,
        password: String
    }
\end{verbatim}

ä»¥ä¸‹ä¸ºä½“è£é›†åˆçš„æ•°æ®ç»“æž„ï¼Œå…¶å­˜å‚¨ç»“æž„è¾ƒç®€å•ï¼Œä½“è£é›†åˆä¸­çš„æ–‡æ¡£å­˜å‚¨ä½“è£åç§°ï¼š
\begin{verbatim}
    {
        _id: String
    }
\end{verbatim}

ä»¥ä¸‹ä¸ºç”µå½±é›†åˆçš„æ•°æ®ç»“æž„ï¼Œç”µå½±é›†åˆä¸­çš„æ–‡æ¡£å­˜å‚¨ç”µå½±IDã€ç”µå½±å°é¢ã€ä½“è£ã€ä»·æ&nbsp;¼ã€è¯„åˆ†ç´¯åŠ&nbsp;å’Œã€è¯„åˆ†æ€»æ•°é‡ã€é¢„å‘Šç‰‡å›¾ç‰‡ã€å‰§æƒ…ä»‹ç»ã€å¯¼æ¼”ã€å‰§æœ¬ä½œå®¶åŠæ¼”å‘˜ã€‚éœ€è¦è¯´æ˜Žçš„æ˜¯è¯„åˆ†ç´¯åŠ&nbsp;å’Œä»¥åŠè¯„åˆ†æ€»æ•°é‡å¯¹åº”äºŽç”¨æˆ·é›†åˆä¸­çš„è¯„åˆ†ï¼Œä½†åªèµ·ç¼“å­˜ä½œç”¨ï¼Œå®šæœŸè®¡ç®—ã€‚ï¼ˆç»æµ‹è¯•è¡¨æ˜Žï¼Œæ¯æ¬¡ç”¨æˆ·è®¿é—®æ—¶è®¡ç®—çš„å¼€é”€è¾ƒå¤§ï¼Œç”¨æˆ·å¾—åˆ°å“åº”çš„æ—¶é—´è¿‡é•¿ï¼‰ï¼š
\begin{verbatim}
    {
        _id: Integer,
        title: String,
        cover: String,
        genres: Array([String, ...]),
        price: Float,
        ratingSum: Integer,
        ratingCount: Integer,
        trailer_image_url: String,
        storyline: Array([String, ...]),
        directors: Array([String, ...]),
        writers: Array([String, ...]),
        actors: Array([String, ...]),
    }
\end{verbatim}

Neo4jæ•°æ®åº“ç”¨äºŽå­˜å‚¨æŽ¨èç®—æ³•ä½¿ç”¨çš„çŸ¥è¯†å›¾è°±ï¼Œå«æœ‰182011ä¸ªç»“ç‚¹ã€1241995æ¡è¾¹ï¼Œå…¶æ•°æ®ç»“æž„å¯è¡¨ç¤ºä¸ºï¼š
\begin{verbatim}
    node: actor | country | director | film | genre | language
        | person_or_entity_appearing_in_film | rating | star
        | writer
    relationship: actor.film | director.film | film.country
        | film.director | film.genre | film.language | film.rating
        | film.star | film.writer | genre.film
        | person_or_entity_appearing_in_film.film | writer.film
    edge = (node) - [relationship] -&gt; (node)
\end{verbatim}
\section{ç³»ç»ŸåŠŸèƒ½è¯´æ˜Ž}
\begin{figure}
	\includegraphics{figures/use-case.pdf}
	\bicaption{ç³»ç»ŸåŠŸèƒ½ç”¨ä¾‹å›¾}{Use case diagram for the system }\label{fig:use-case}
\end{figure}
æœ¬ç³»ç»Ÿç”¨æˆ·è§’è‰²åˆ†ä¸ºæœªç™»å½•ç”¨æˆ·ã€æ™®é€šç”¨æˆ·ä¸Žç®¡ç†å‘˜ç”¨æˆ·ï¼Œå…¶ç”¨ä¾‹è¯´æ˜Žå¦‚å›¾\ref{fig:use-case}ã€‚
\subsection{ç³»ç»Ÿå¯¼èˆª}
æœ¬ç³»ç»Ÿä½¿ç”¨æµ®åŠ¨ä¾§è¾¹æ&nbsp;ä½œä¸ºå¯¼èˆªæ–¹å¼ï¼Œå¦‚å›¾\ref{fig:admin-navigation}ã€‚ç‚¹å‡»ä¾§å¯¼èˆªæ&nbsp;å³ä¸‹è§’çš„å›ºå®šçš„æŒ‰é’®å¯ä»¥å°†æµ®åŠ¨ä¾§è¾¹æ&nbsp;è®¾ä¸ºå›ºå®šï¼Œå†æ¬¡ç‚¹å‡»åŽå°†å–æ¶ˆå›ºå®šã€‚
\begin{figure}
	\fbox{\includegraphics[width=.94\textwidth]{figures/admin-navigation.png}}
	\bicaption{ç³»ç»Ÿä¾§å¯¼èˆªæ&nbsp;ï¼ˆç®¡ç†å‘˜ï¼‰}{Side navigation panel of the system (for administrators)}\label{fig:admin-navigation}
\end{figure}

\subsection{æœªç™»å½•ç”¨æˆ·}
æœªç™»å½•ç”¨æˆ·èƒ½è¿›è¡Œä»¥ä¸‹æ“ä½œï¼š

\noindent ï¼ˆ1ï¼‰æŽ¥æ”¶éšæœºçš„ç”µå½±æŽ¨è

æœªç™»å½•ç”¨æˆ·é¦–é¡µéšæœºæ˜¾ç¤º50éƒ¨ç”µå½±ï¼Œå¦‚å›¾\ref{fig:anonymous-index}ã€‚
\begin{figure}
	\fbox{\includegraphics[width=.94\textwidth]{figures/anonymous-index.png}}
	\bicaption{æœªç™»å½•ç”¨æˆ·é¦–é¡µ}{Index page for anonymous users }\label{fig:anonymous-index}
\end{figure}

\noindent ï¼ˆ2ï¼‰æŒ‰åˆ†ç±»æŸ¥çœ‹ç”µå½±

æœªç™»å½•ç”¨æˆ·å¯ä»¥æ&nbsp;¹æ®ç”µå½±çš„åˆ†ç±»æ¥æŸ¥çœ‹ç”µå½±ï¼Œå¦‚å›¾\ref{fig:anonymous-category}ã€‚
\begin{figure}
	\fbox{\includegraphics[width=.94\textwidth]{figures/anonymous-category.png}}
	\bicaption{æœªç™»å½•ç”¨æˆ·åˆ†ç±»é¡µé¢}{Category page for anonymous users }\label{fig:anonymous-category}
\end{figure}

\noindent ï¼ˆ3ï¼‰æŸ¥çœ‹ç”µå½±è¯¦æƒ…

æœªç™»å½•ç”¨æˆ·å¯ä»¥æŸ¥çœ‹ç”µå½±è¯¦æƒ…ï¼Œå¦‚å›¾\ref{fig:anonymous-details}ã€‚ç‚¹å‡»é¡µé¢ä¸Šçš„â€œæ·»åŠ&nbsp;è‡³å¿ƒæ„¿å•â€å’Œâ€œè´­ä¹°â€ä¼šè·³è½¬è‡³ç™»å½•ç•Œé¢ã€‚
\begin{figure}
	\fbox{\includegraphics[height=.7\textheight]{figures/anonymous-details.png}}
	\bicaption{æœªç™»å½•ç”¨æˆ·ç”µå½±è¯¦æƒ…é¡µé¢}{Movie details page for anonymous users }\label{fig:anonymous-details}
\end{figure}

\noindent ï¼ˆ4ï¼‰æœç´¢ç”µå½±

æœªç™»å½•ç”¨æˆ·å¯ä»¥ä½¿ç”¨åº”ç”¨æ&nbsp;å³ä¾§çš„æœç´¢æ¡†æœç´¢ç”µå½±ï¼Œå¦‚å›¾\ref{fig:anonymous-search}ã€‚æœ¬ç³»ç»Ÿæ”¯æŒæ¨¡ç³Šæœç´¢ï¼Œä¸Žæ­¤åŒæ—¶ï¼Œéšç€ç”¨æˆ·æœç´¢å†…å®¹çš„ä¸æ–­è¾“å…¥ï¼Œç³»ç»Ÿä¼šåœ¨æœç´¢æ¡†ä¸‹æ–¹æ˜¾ç¤ºå€™é€‰çš„åŒ¹é…è¯æ¡ï¼Œæ–¹ä¾¿ç”¨æˆ·ç›´æŽ¥ç‚¹å‡»æŸ¥çœ‹ï¼Œæ­¤å¤–ï¼Œç”¨æˆ·ä¹Ÿèƒ½é€šè¿‡å›žè½¦è·³è½¬è‡³å®Œæ•´çš„æœç´¢ç»“æžœé¡µé¢ã€‚
\begin{figure}
	\fbox{\includegraphics[width=.94\textwidth]{figures/anonymous-search.png}}
	\bicaption{æœªç™»å½•ç”¨æˆ·ç”µå½±æœç´¢ç•Œé¢ï¼ˆä¾§å¯¼èˆªæ&nbsp;å·²å›ºå®šï¼‰}{Movie search page for anonymous users (side navigation panel pinned)}\label{fig:anonymous-search}
\end{figure}
\subsection{æ³¨å†Œä¸Žç™»å½•}
\noindentï¼ˆ1ï¼‰æ³¨å†Œ

æœ¬ç³»ç»Ÿå¯¹æ™®é€šç”¨æˆ·å¼€æ”¾æ³¨å†ŒåŠŸèƒ½ï¼Œå¹¶èƒ½æä¾›ç”¨æˆ·åæ˜¯å¦å«ä¸åˆæ³•å­—ç¬¦ã€æ˜¯å¦ä¸Žå·²æ³¨å†Œç”¨æˆ·åå†²çªã€å¯†ç&nbsp;æ˜¯å¦ç¬¦åˆå¤æ‚åº¦è¦æ±‚ç­‰çš„æ£€æµ‹ã€‚

\noindent ï¼ˆ2ï¼‰ç™»å½•

æœ¬ç³»ç»Ÿæä¾›ç™»å½•åŠŸèƒ½ï¼Œå¹¶èƒ½æ&nbsp;¹æ®ä¸åŒçš„ç™»å½•é”™è¯¯ç±»åž‹ç›¸åº”åœ°ä½œå‡ºå“åº”ã€‚
\subsection{æ™®é€šç”¨æˆ·}
æ™®é€šç”¨æˆ·å…·å¤‡æœªç™»å½•ç”¨æˆ·çš„æ‰€æœ‰åŠŸèƒ½ã€‚æ­¤å¤–ï¼Œè¿˜å…·å¤‡ä»¥ä¸‹åŠŸèƒ½ï¼š

\noindent ï¼ˆ1ï¼‰æ·»åŠ&nbsp;å¿ƒæ„¿å•

å·²ç™»å½•ç”¨æˆ·èƒ½åœ¨ç”µå½±è¯¦æƒ…é¡µé¢æ·»åŠ&nbsp;ç”µå½±è‡³å¿ƒæ„¿å•ã€‚

\noindent ï¼ˆ2ï¼‰è´­ä¹°

å·²ç™»å½•ç”¨æˆ·èƒ½åœ¨ç”µå½±è¯¦æƒ…é¡µé¢è´­ä¹°ç”µå½±ã€‚

\noindent ï¼ˆ3ï¼‰è¯„åˆ†

å·²ç™»å½•ç”¨æˆ·èƒ½åœ¨ç”µå½±è¯¦æƒ…é¡µé¢ç»™ç”µå½±è¯„åˆ†ã€‚ç”µå½±è¯„åˆ†åŠŸèƒ½ä½äºŽç”µå½±è¯¦æƒ…é¡µé¢ï¼Œå¦‚å›¾\ref{fig:general-details}æ‰€ç¤ºã€‚

\begin{figure}
	\fbox{\includegraphics[width=.94\textwidth]{figures/general-details.png}}
	\bicaption{ç”µå½±è¯„åˆ†é¡µé¢}{Rating page for movies}\label{fig:general-details}
\end{figure}

\noindent ï¼ˆ4ï¼‰æŸ¥çœ‹å·²è´­ä¹°çš„ç”µå½±

å·²ç™»å½•ç”¨æˆ·èƒ½é€šè¿‡ä¾§å¯¼èˆªæ&nbsp;è·³è½¬è‡³æŸ¥çœ‹å·²è´­ä¹°çš„ç”µå½±çš„é¡µé¢ã€‚

\noindent ï¼ˆ5ï¼‰æŸ¥çœ‹å·²æ·»åŠ&nbsp;å¿ƒæ„¿å•çš„ç”µå½±

å·²ç™»å½•ç”¨æˆ·èƒ½é€šè¿‡ä¾§å¯¼èˆªæ&nbsp;è·³è½¬è‡³æŸ¥çœ‹å·²æ·»åŠ&nbsp;å¿ƒæ„¿å•çš„ç”µå½±çš„é¡µé¢ã€‚
\subsection{ç®¡ç†å‘˜ç”¨æˆ·}
\noindent ï¼ˆ1ï¼‰ç®¡ç†ç”µå½±ä¿¡æ¯

ç®¡ç†å‘˜èƒ½å¢žåŠ&nbsp;ç”µå½±ã€åˆ&nbsp;é™¤ç”µå½±ä¸Žä¿®æ”¹ç”µå½±ä¿¡æ¯ï¼Œå¦‚å›¾\ref{fig:admin-movie}æ‰€ç¤ºã€‚
\begin{figure}
	\fbox{\includegraphics[width=.94\textwidth]{figures/admin-movie.png}}
	\bicaption{ç®¡ç†ç”µå½±é¡µé¢}{Movie administration page}\label{fig:admin-movie}
\end{figure}

\noindent ï¼ˆ2ï¼‰ç®¡ç†ç”¨æˆ·ä¿¡æ¯

ç®¡ç†å‘˜èƒ½å¢žåŠ&nbsp;ç”¨æˆ·ã€åˆ&nbsp;é™¤ç”¨æˆ·ä¸Žä¿®æ”¹ç”¨æˆ·å¯†ç&nbsp;ã€‚

\noindent ï¼ˆ3ï¼‰ç®¡ç†çŸ¥è¯†å›¾è°±

ç®¡ç†å‘˜èƒ½å¢žåŠ&nbsp;ã€åˆ&nbsp;é™¤ã€ä¿®æ”¹ä»¥åŠæŸ¥æ‰¾çŸ¥è¯†å›¾è°±ä¸­çš„ç»“ç‚¹ä¸Žå…³ç³»ï¼Œå¦‚å›¾\ref{fig:admin-knowledge-graph}æ‰€ç¤ºã€‚è¯¥ç•Œé¢ä¸­çš„ç»“ç‚¹åŠå…³ç³»å¯ä»¥ä»¥åŠ¨æ€çš„æ–¹å¼å‘ˆçŽ°ï¼ŒåŒæ—¶æ”¯æŒä»¥å¡«å†™é€‰é¡¹çš„æ–¹å¼ä»¥åŠä½¿ç”¨Cypherè¯­å¥çš„æ–¹å¼æ¥å¢žåŠ&nbsp;ã€åˆ&nbsp;é™¤ã€ä¿®æ”¹ä»¥åŠæŸ¥æ‰¾çŸ¥è¯†å›¾è°±ä¸­çš„ç»“ç‚¹ä¸Žå…³ç³»ã€‚å½“é¼&nbsp;æ&nbsp;‡æ‚¬æµ®äºŽæŸä¸€èŠ‚ç‚¹æˆ–å…³ç³»ä¹‹ä¸Šæ—¶ï¼Œå°†æ˜¾ç¤ºæœ‰å…³è¿™ä¸€èŠ‚ç‚¹æˆ–å…³ç³»çš„æœ‰å…³ä¿¡æ¯ã€‚
\begin{figure}
	\fbox{\includegraphics[width=.94\textwidth]{figures/admin-knowledge-graph.png}}
	\bicaption{ç®¡ç†çŸ¥è¯†å›¾è°±é¡µé¢}{Knowledge graph administration page}\label{fig:admin-knowledge-graph}
\end{figure}
\section{ç”µå½±æŽ¨èæµç¨‹}
æœ¬ç³»ç»Ÿçš„æŽ¨èæµç¨‹åˆ†ä¸ºç¦»çº¿æŽ¨èä¸Žå®žæ—¶æŽ¨èï¼Œå¦‚å›¾\ref{fig:recommendation-procedure}æ‰€ç¤ºã€‚

\begin{figure}
	\includegraphics{figures/recommendation-procedure.pdf}
	\bicaption{ç”µå½±æŽ¨èæµç¨‹}{Movie recommendation procedure}\label{fig:recommendation-procedure}
\end{figure}

å…¶ä¸­ï¼Œç¦»çº¿æŽ¨èä½¿ç”¨ç¬¬\ref{ch:offline-recommendation}ç«&nbsp;æ‰€è¿°çš„æ¶Ÿæ¼ªç½‘ç»œç®—æ³•ï¼Œæ­¤ç®—æ³•æ˜¯åŸºäºŽæ–‡çŒ®\parencite{wang2018ripplenet}å®žçŽ°çš„ã€‚ä¸åŒäºŽæ–‡çŒ®\parencite{wang2018ripplenet}ä¸­ä»…ä½¿ç”¨ç”¨æˆ·è¯„åˆ†è®¡ç®—ç”¨æˆ·åå¥½ï¼Œæœ¬æŽ¨èç³»ç»Ÿåœ¨ç”¨æˆ·åå¥½çš„è®¡ç®—è¿‡ç¨‹ä¸­è¿˜ç»“åˆäº†ç”¨æˆ·æ”¶è—ï¼Œè¿™åœ¨ä¸€å®šç¨‹åº¦ä¸Šç¼“è§£äº†å†·å¯åŠ¨é—®é¢˜å¹¶æ”¹è¿›äº†æŽ¨èæ€§èƒ½ã€‚
æ­¤å¤–ï¼Œæœ¬æŽ¨èç³»ç»Ÿè¿˜ç»“åˆäº†å®žæ—¶æŽ¨èæœºåˆ¶ä½œä¸ºè¡¥å……ï¼Œæè¿°å¦‚ä¸‹ï¼š

ï¼ˆ1ï¼‰ç¦»çº¿æŽ¨èæœåŠ¡å™¨å®šæœŸè¿è¡Œæ¶Ÿæ¼ªç½‘ç»œç®—æ³•ã€‚ç¦»çº¿æŽ¨èæœåŠ¡å™¨ä»ŽMongoDBæ•°æ®åº“æœåŠ¡å™¨èŽ·å–ç”¨æˆ·ä¿¡æ¯ä¸Žç”µå½±è¯„åˆ†ã€ç”µå½±æ˜¯å¦åŠ&nbsp;å…¥å¿ƒæ„¿å•ç­‰æ•°æ®ä»¥åŠä»ŽNeo4jæ•°æ®åº“æœåŠ¡å™¨èŽ·å–çŸ¥è¯†å›¾è°±æ•°æ®ä¿¡æ¯ã€‚ç„¶åŽæ‰§è¡Œæ¶Ÿæ¼ªç½‘ç»œç®—æ³•ã€‚æœ€åŽç¦»çº¿æŽ¨èæœåŠ¡å™¨å°†è®¡ç®—å¾—åˆ°çš„å„ç”¨æˆ·æŽ¨èåˆ—è¡¨å­˜å…¥MongoDBæ•°æ®åº“ä¸­ï¼Œç­‰å¾…ç”¨æˆ·è®¿é—®æ—¶å°†è¯¥ç»“æžœæŽ¨èç»™ç”¨æˆ·ã€‚

ï¼ˆ2ï¼‰å½“ç”¨æˆ·è®¿é—®æ—¶ï¼Œç½‘é¡µåŽç«¯æœåŠ¡å™¨æŸ¥è¯¢æŽ¨èåˆ—è¡¨ä¸­çš„ç”µå½±æ•°æ®æ˜¯å¦è¾¾åˆ°é˜€å€¼ï¼Œå¦‚æžœæŽ¨èåˆ—è¡¨ä¸­çš„æ•°é‡è¿‡å°‘ï¼Œåˆ™æ&nbsp;¹æ®ç”¨æˆ·äº¤äº’éšæœºå°†åŒä½“è£ç”µå½±åŠ&nbsp;å…¥æŽ¨èåˆ—è¡¨çš„æœ«ç«¯ä½œä¸ºè¡¥å……å¹¶æœ€ç»ˆæ˜¾ç¤ºç»™ç”¨æˆ·ã€‚

ä¸Šè¿°æ­¥éª¤ä¸­ï¼Œï¼ˆ1ï¼‰ä¸­çš„ç¦»çº¿æŽ¨èå‡†ç¡®åº¦é«˜ï¼Œä½†ç®—æ³•è¿ç®—æ—¶é—´é•¿ï¼Œæ—&nbsp;æ³•åšåˆ°å³æ—¶å“åº”ç”¨æˆ·è¯·æ±‚ã€‚ï¼ˆ2ï¼‰ä¸­çš„å®žæ—¶æŽ¨èæ–¹æ³•å‡†ç¡®åº¦ä½Žï¼Œä½†ç®—æ³•è¿ç®—å¿«ï¼Œå¯ä»¥åšåˆ°å®žæ—¶å“åº”è¯·æ±‚å¹¶å³æ—¶å‘å‡ºå“åº”ã€‚ä¸¤è€…ç›¸äº’è¡¥å……ç»„æˆäº†æœ¬ç³»ç»Ÿçš„ç”µå½±æŽ¨èç®—æ³•ã€‚
\section{ç³»ç»Ÿå®‰å…¨æ€§}
æœ¬ç³»ç»Ÿå¯¹å·²ç™»å½•æ™®é€šç”¨æˆ·ä¸Žç®¡ç†å‘˜åœ¨å‰åŽç«¯äº¤äº’è¿‡ç¨‹ä¸­ä½¿ç”¨JSONç½‘ç»œä»¤ç‰Œï¼ˆJSON Web Token, JWTï¼‰å®žçŽ°æŽˆæƒä¸Žè®¤è¯ï¼ˆAuthorization and Authenticationï¼‰ï¼Œä»¥æ­¤ä¿è¯ç³»ç»Ÿçš„å®‰å…¨æ€§ï¼Œæœ¬ç³»ç»Ÿçš„æ€»ä½“å®‰å…¨æ€§è®¾è®¡å¦‚å›¾\ref{fig:jwt}æ‰€ç¤ºã€‚

\begin{figure}
	\includegraphics{figures/jwt.pdf}
	\bicaption{ç³»ç»Ÿæ€»ä½“å®‰å…¨æ€§è®¾è®¡}{Overall security design for the system}\label{fig:jwt}
\end{figure}

åœ¨ç”¨æˆ·ç™»å½•æ—¶ï¼ŒFlaskåŽç«¯ç½‘é¡µæœåŠ¡å™¨ä¼šç”Ÿæˆä¸€ä¸ªé•¿æœŸJSONç½‘ç»œä»¤ç‰Œå’Œä¸€ä¸ªä¸´æ—¶JSONç½‘ç»œä»¤ç‰Œï¼Œä»¤ç‰Œä¸­å­˜å‚¨æœ‰ç”¨æˆ·idä»¥åŠè¿‡æœŸæ—¶é—´ï¼Œå¹¶ä¸”è¯¥ä»¤ç‰Œä½¿ç”¨éžå¯¹ç§°åŠ&nbsp;å¯†ç®—æ³•åŠ&nbsp;å¯†ï¼Œå…¶ä¸­å«æœ‰ç”±FlaskåŽç«¯ç½‘é¡µæœåŠ¡å™¨é¢å‘çš„ç­¾åä¿¡æ¯ï¼Œè¿™ç¡®ä¿äº†JSONç½‘ç»œä»¤ç‰Œä¸ä¼šè¢«ä¼ªé€&nbsp;ã€‚

å‰ç«¯ç½‘é¡µæœåŠ¡å™¨åœ¨æŽ¥æ”¶åˆ°ä»¤ç‰ŒåŽä¼šå°†ä»¤ç‰Œå­˜å‚¨åœ¨æµè§ˆå™¨çš„localStorageä¸­ï¼Œå¹¶åœ¨æ¯ä¸€ä¸ªæŽ¥ä¸‹æ¥çš„è¯·æ±‚å¤´ä¸­é™„ä¸Šè¯¥ä»¤ç‰Œï¼Œè€ŒåŽç«¯æœåŠ¡å™¨åªæœ‰åœ¨è¯¥ä»¤ç‰Œæœ‰æ•ˆï¼ˆæŒ‡ç¡®å®žä¸ºåŽç«¯ç½‘é¡µæœåŠ¡å™¨é¢å‘ä¸”è¯¥å¦ä»¤ç‰Œå°šæœªè¿‡æœŸï¼‰çš„æƒ…å†µä¸‹æ‰ä¼šç»§ç»­æ‰§è¡Œæœ‰å…³è¯·æ±‚ã€‚ä¸Žæ­¤åŒæ—¶ï¼Œè‹¥è¯¥è¯·æ±‚æ˜¯ç”¨æˆ·å†…å®¹ç›¸å…³çš„ï¼Œåˆ™åŽç«¯æœåŠ¡å™¨è¿˜ä¼šæ£€æµ‹ä»¤ç‰Œä¸­çš„idæ˜¯å¦ä¸Žè¯·æ±‚ä¸­ä½¿ç”¨çš„idç›¸åŒã€‚è‹¥ä¸æ»¡è¶³ä»¥ä¸Šä»»æ„ä¸€é¡¹ï¼Œåˆ™åŽç«¯ç½‘é¡µæœåŠ¡å™¨è¿”å›žæœªæŽˆæƒé”™è¯¯ã€‚

å…¶ä¸­ï¼Œè‹¥åŽç«¯ç½‘é¡µæœåŠ¡å™¨å‘çŽ°ä»¤ç‰Œè¿‡æœŸï¼Œåˆ™ä¼šå°†è¯¥ä¿¡æ¯å‘é€ç»™å‰ç«¯ç½‘é¡µæœåŠ¡å™¨ï¼Œå‰ç«¯ç½‘é¡µæœåŠ¡å™¨å°†ä¼šå°†é•¿æœŸä»¤ç‰Œå‘é€ç»™åŽç«¯æœåŠ¡å™¨ä»¥åˆ·æ–°ï¼ˆrenewï¼‰ä¸´æ—¶ä»¤ç‰Œã€‚

æ­¤å¤–ï¼Œæœ¬ç³»ç»Ÿè¿˜ä½¿ç”¨äº†å“ˆå¸Œç®—æ³•å¯¹å¯†ç&nbsp;è¿›è¡Œå“ˆå¸Œå¤„ç†ï¼Œæ•°æ®åº“ä¸­çš„å¯†ç&nbsp;å…¨éƒ¨ä¸ºå“ˆå¸Œå¤„ç†åŽçš„å¯†ç&nbsp;ã€‚åŒæ—¶ï¼Œç”¨æˆ·ç™»å½•è¿‡ç¨‹æ˜¯åŽç«¯ç½‘é¡µæœåŠ¡å™¨ä½¿ç”¨åŽŸå¯†ç&nbsp;ä¸Žå“ˆå¸Œå¤„ç†åŽçš„å¯†ç&nbsp;è¿›è¡Œæ¯”è¾ƒï¼Œè€Œæ²¡æœ‰å¼€æ”¾å“ˆå¸Œå¤„ç†åŽçš„å¯†ç&nbsp;ä¸Žå“ˆå¸Œå¤„ç†åŽçš„å¯†ç&nbsp;è¿›è¡Œæ¯”è¾ƒçš„æŽ¥å£ï¼Œè¿™ä¿éšœäº†æœ¬ç³»ç»Ÿçš„å®‰å…¨æ€§ã€‚è¿™åœ¨åŒæ—¶ä»¤ç½‘ç«™ä»…å…è®¸HTTPSï¼ˆHTTPS-onlyï¼‰ç½‘ç»œè¿žæŽ¥çš„æƒ…å†µä¸‹å¯ä»¥å……åˆ†ä¿è¯æœ¬ç³»ç»Ÿçš„å®‰å…¨æ€§ã€‚

éœ€è¦æŒ‡å‡ºçš„æ˜¯ï¼Œè™½ç„¶æœ¬ç³»ç»Ÿåœ¨ç”¨æˆ·ç™»å½•ä¸Žæ³¨å†Œæ—¶å¯†ç&nbsp;åœ¨å‰ç«¯æ²¡æœ‰è¿›è¡Œå“ˆå¸Œå¤„ç†ï¼Œä½†æ˜¯æœ¬ç³»ç»Ÿåœ¨éƒ¨ç½²æ—¶ä½¿ç”¨HTTPS-onlyçš„è¿žæŽ¥ï¼Œåœ¨è¿™ç§æƒ…å†µä¸‹ï¼Œæ‰€æœ‰çš„æ•°æ®ä¼&nbsp;è¾“éƒ½å¤„äºŽåŠ&nbsp;å¯†çŠ¶æ€ï¼Œé¿å…äº†ä¸­é—´äººæ”»å‡»çš„å¯èƒ½ï¼Œå›&nbsp;æ­¤æ˜Žæ–‡ä¼&nbsp;è¾“å¯†ç&nbsp;è€Œä¸ä½¿ç”¨å“ˆå¸Œå¤„ç†æ˜¯å®‰å…¨çš„ï¼Œåœ¨å®žé™…ä½¿ç”¨çš„è¿‡ç¨‹ä¸­å¯è¡Œã€‚è€Œæœ¬ç³»ç»Ÿçš„åŽç«¯ç½‘é¡µæœåŠ¡å™¨å¯¹å‰ç«¯ç½‘é¡µæœåŠ¡å™¨ä¼&nbsp;å…¥çš„æ˜Žæ–‡å¯†ç&nbsp;è¿›è¡Œå“ˆå¸Œå¤„ç†çš„ç›®çš„æ˜¯é¿å…æ•°æ®åº“ä¸­å­˜å…¥æ˜Žæ–‡çš„å¯†ç&nbsp;ã€‚å¦‚æžœæ•°æ®åº“ä¸­å­˜å…¥æ˜Žæ–‡çš„å¯†ç&nbsp;ï¼Œåˆ™å½“æ•°æ®åº“ä¸­ç”¨æˆ·å¯†ç&nbsp;æ³„éœ²æ—¶æ”»å‡»è€…å¯ä»¥è½»æ˜“ä½¿ç”¨æ³„éœ²çš„å¯†ç&nbsp;ç™»å½•æœ¬ç³»ç»Ÿã€‚è€Œå¦‚ä¸Šæ‰€è¿°ï¼Œæœ¬ç³»ç»ŸåŽç«¯åªå¼€æ”¾äº†æŽ¥æ”¶æ˜Žæ–‡å¯†ç&nbsp;çš„æŽ¥å£ï¼Œå³åªå°†æ•°æ®åº“ä¸­å“ˆå¸Œå¤„ç†åŽçš„å¯†ç&nbsp;ä¸Žç”¨æˆ·è¯·æ±‚ä¸­çš„æ˜Žæ–‡å¯†ç&nbsp;è¿›è¡Œå¯¹æ¯”ï¼Œå³ä½¿æ”»å‡»è€…èŽ·å–äº†ç”¨æˆ·å“ˆå¸ŒåŽçš„å¯†ç&nbsp;ï¼Œè¦è®¡ç®—å…¶å¯¹åº”çš„æ˜Žæ–‡å¯†ç&nbsp;ä¹Ÿæ˜¯å›°éš¾çš„ï¼Œç”šè‡³åœ¨æ˜Žæ–‡å¯†ç&nbsp;è¶³å¤Ÿå¤æ‚çš„æƒ…å†µä¸‹æ˜¯ä¸å¯èƒ½çš„ã€‚å›&nbsp;æ­¤ï¼Œä»¥ä¸ŠæŽªæ–½ä¿è¯äº†æœ¬ç³»ç»Ÿçš„å®‰å…¨æ€§ã€‚
\chapter{ç&nbsp;”ç©¶ç»“è®ºå’Œå±•æœ›}
\section{å·¥ä½œæ€»ç»“}
éšç€äº’è”ç½‘çš„å‘å±•ï¼Œç”¨æˆ·å¯é€‰æ‹©çš„ç”µå½±æ•°é‡ä¸æ–­å¢žåŠ&nbsp;ï¼Œä¸ºäº†è®©ç”¨æˆ·å¿«é€Ÿæ‰¾åˆ°æ„Ÿå…´è¶£çš„ç”µå½±ï¼Œå„ç§æŽ¨èç®—æ³•åº”è¿è€Œç”Ÿã€‚è¿™äº›ç®—æ³•å­˜åœ¨æŽ¨èå‡†ç¡®æ€§è¾ƒä½Žã€æ•°æ®ç¨€ç¼ºæ€§ä»¥åŠå†·å¯åŠ¨é—®é¢˜ã€‚æœ¬æ–‡é’ˆå¯¹æ­¤çŽ°çŠ¶ï¼Œä»¥ç”µå½±æŽ¨èä¸ºç&nbsp;”ç©¶å¯¹è±¡ï¼Œä½¿ç”¨çŸ¥è¯†å›¾è°±ä½œä¸ºè¾…åŠ©ä¿¡æ¯ï¼Œåˆ©ç”¨æ¶Ÿæ¼ªç½‘ç»œç®—æ³•å®žçŽ°äº†ç”µå½±æŽ¨èç³»ç»Ÿã€‚å…·ä½“åœ°è¯´ï¼Œä¸»è¦çš„ç&nbsp;”ç©¶å·¥ä½œå¦‚ä¸‹ï¼š

ï¼ˆ1ï¼‰ä½¿ç”¨åŸºäºŽScrapyæ¡†æž¶çš„çˆ¬è™«ä»ŽIMDbå’Œè±†ç“£ç½‘ä¸Šçˆ¬å–äº†3684æ¡ç”µå½±æ•°æ®ã€‚å…¶ä¸­ï¼Œä»ŽIMDbçˆ¬å–äº†3494æ¡ç”µå½±æ•°æ®ï¼Œä»Žè±†ç“£ç½‘çˆ¬å–äº†190æ¡ç”µå½±æ•°æ®ï¼ˆç”±äºŽè±†ç“£ç½‘é™åˆ¶äº†æ¯IPè®¿é—®é‡æ•…çˆ¬å–çš„æ•°æ®è¾ƒå°‘ï¼‰ã€‚è¿™äº›ç”µå½±æ•°æ®åŒ…æ‹¬ç”µå½±å°é¢å›¾ç‰‡ã€ç”µå½±æƒ…èŠ‚ä»‹ç»ã€ç”µå½±é¢„å‘Šç‰‡å›¾ç‰‡ã€ç”µå½±æ¼”å‘˜åˆ—è¡¨ã€å¯¼æ¼”ä»¥åŠå‰§æœ¬ä½œå®¶ç­‰ä¿¡æ¯ã€‚

ï¼ˆ2ï¼‰æ&nbsp;¹æ®æ–‡çŒ®\parencite{wang2018ripplenet}å®žçŽ°äº†åŸºäºŽçŸ¥è¯†å›¾è°±çš„æ¶Ÿæ¼ªç½‘ç»œæŽ¨èç®—æ³•ï¼Œé€šè¿‡ä½¿ç”¨â€œMovieLens 1M Datasetâ€æ•°æ®é›†ä»¥åŠä»ŽIMDbå’Œè±†ç“£ç½‘ä¸Šçˆ¬å–çš„ç”µå½±æ•°æ®ï¼Œå®žçŽ°äº†åŸºäºŽç”¨æˆ·å¿ƒæ„¿å•å’Œç”¨æˆ·è¯„åˆ†å¹¶ä»¥çŸ¥è¯†å›¾è°±ä¸ºè¾…åŠ©ä¿¡æ¯çš„æŽ¨èç®—æ³•ã€‚ä¸åŒäºŽæ–‡çŒ®\parencite{wang2018ripplenet}ä¸­ä»…ä½¿ç”¨ç”¨æˆ·è¯„åˆ†è®¡ç®—ç”¨æˆ·åå¥½ï¼Œæœ¬æ–‡åœ¨ç”¨æˆ·åå¥½çš„è®¡ç®—è¿‡ç¨‹ä¸­è¿˜ç»“åˆäº†ç”¨æˆ·æ”¶è—ï¼Œè¿™åœ¨ä¸€å®šç¨‹åº¦ä¸Šç¼“è§£äº†å†·å¯åŠ¨é—®é¢˜å¹¶æ”¹è¿›äº†æŽ¨èæ€§èƒ½ã€‚å¹¶å¯¹å®žçŽ°çš„æŽ¨èç®—æ³•è¿›è¡Œäº†å®žéªŒï¼Œè®¡ç®—äº†å…¶AUCå’Œå‡†ç¡®åº¦ä¸¤ä¸ªå…³é”®çš„æ€§èƒ½æŒ‡æ&nbsp;‡ï¼Œå°†è¯¥æŒ‡æ&nbsp;‡ä¸ŽDKN\cite{wang2018dkn}ã€CKE\cite{zhang2016collaborative}ã€PER\cite{yu2014personalized}ã€SHINE\cite{wang2018shine}ã€LibFM\cite{rendle2012factorization}ä»¥åŠWide\&amp;Deep\cite{cheng2016wide}ç®—æ³•çš„è¿›è¡Œäº†å¯¹æ¯”ã€‚å¹¶ä»¥æ­¤å‘çŽ°ï¼Œæ¶Ÿæ¼ªç½‘ç»œç®—æ³•çš„æ€§èƒ½æœ€ä¼˜ã€‚

ï¼ˆ3ï¼‰åŸºäºŽæ¶Ÿæ¼ªç½‘ç»œç®—æ³•å®žçŽ°äº†åŸºäºŽçŸ¥è¯†å›¾è°±çš„ç”µå½±æŽ¨èç³»ç»Ÿã€‚è¯¥ç³»ç»Ÿä¸ºæœªç™»å½•ç”¨æˆ·æä¾›æŒ‰åˆ†ç±»æŸ¥çœ‹ç”µå½±ã€æŸ¥çœ‹ç”µå½±è¯¦æƒ…çš„åŠŸèƒ½ï¼›ä¸ºæ™®é€šç”¨æˆ·æä¾›ç”µå½±æŽ¨èã€æŒ‰åˆ†ç±»æŸ¥çœ‹ç”µå½±ã€æŸ¥çœ‹ç”µå½±è¯¦æƒ…ã€ç”µå½±è¯„åˆ†ã€å°†ç”µå½±åŠ&nbsp;å…¥å¿ƒæ„¿å•ä»¥åŠè´­ä¹°ç”µå½±åŠŸèƒ½ï¼›ä¸ºç®¡ç†å‘˜æä¾›å¢žåŠ&nbsp;ã€åˆ&nbsp;é™¤ã€ä¿®æ”¹ã€æŸ¥æ‰¾ç”µå½±åŠç”¨æˆ·çš„åŠŸèƒ½ã€‚åŒæ—¶ä½¿ç”¨JSONç½‘ç»œä»¤ç‰Œã€HTTPSä»¥åŠå“ˆå¸ŒåŒ–å¯†ç&nbsp;ç­‰æ‰‹æ®µä¿éšœç³»ç»Ÿçš„å®‰å…¨æ€§ã€‚
\section{å·¥ä½œå±•æœ›}
ä¸ºäº†ç»™ç”¨æˆ·æä¾›å‡†ç¡®çš„æŽ¨èç”µå½±ï¼Œéœ€è¦ä¸æ–­ä¼˜åŒ–å¹¶æ”¹è¿›æŽ¨èè¿‡ç¨‹ã€‚æŽ¨èç³»ç»Ÿçš„åŸºç¡€æ˜¯ç”¨æˆ·åŽ†å²åå¥½é›†ã€çŸ¥è¯†å›¾è°±ä¿¡æ¯ä»¥åŠæŽ¨èç®—æ³•æœ¬èº«ã€‚å›&nbsp;æ­¤æœ‰æ•ˆåœ°è®°å½•ç”¨æˆ·åŽ†å²åå¥½é›†ï¼Œå®Œå–„çŸ¥è¯†å›¾è°±ä¿¡æ¯å¹¶æ”¹è¿›æŽ¨èç®—æ³•æœ¬èº«æ˜¯æé«˜æŽ¨èç»“æžœçš„é‡è¦å›&nbsp;ç´&nbsp;ã€‚æœ¬æ–‡è™½ç„¶å¯¹åŸºäºŽçŸ¥è¯†å›¾è°±çš„æŽ¨èç®—æ³•æœ‰äº†ä¸€å®šçš„ç&nbsp;”ç©¶ï¼Œå¹¶ä¸”å°†å…¶åº”ç”¨äºŽç”µå½±æŽ¨èç³»ç»Ÿä¸­ï¼Œä½†æ˜¯ç”±äºŽæ—¶é—´å’Œèƒ½åŠ›æ‰€é™ï¼Œè¯¥ç³»ç»Ÿä»å­˜åœ¨ç€ä¸è¶³çš„åœ°æ–¹ï¼Œä¸»è¦ä½“çŽ°åœ¨ä»¥ä¸‹ä¸¤ä¸ªæ–¹é¢ï¼š

\noindent ï¼ˆ1ï¼‰éœ€è¦å®Œå–„çŸ¥è¯†å›¾è°±çš„ä¿¡æ¯

çŸ¥è¯†å›¾è°±æ˜¯æœ¬æ–‡ä½¿ç”¨çš„æ¶Ÿæ¼ªç½‘ç»œç®—æ³•çš„åŸºç¡€ï¼Œä½†æœ¬æ–‡æ‰€ä½¿ç”¨çš„çŸ¥è¯†å›¾è°±çš„ä¿¡æ¯è¿˜ä¸å¤Ÿå®Œå–„ï¼Œå›&nbsp;æ­¤åœ¨ä¸€å®šç¨‹åº¦ä¸Šå½±å“äº†æ¶Ÿæ¼ªç½‘ç»œç®—æ³•çš„æ€§èƒ½ã€‚

\noindent ï¼ˆ2ï¼‰æ¶Ÿæ¼ªç½‘ç»œç®—æ³•æœ‰å¾…è¿›ä¸€æ­¥æ”¹è¿›

å°½ç®¡æ¶Ÿæ¼ªç½‘ç»œç®—æ³•ç›¸æ¯”äºŽä¼&nbsp;ç»Ÿçš„æŽ¨èç®—æ³•åœ¨å‡†ç¡®åº¦ä¸Šæœ‰æ‰€æå‡ï¼Œä½†æ¶Ÿæ¼ªç½‘ç»œç®—æ³•ç›®å‰ä»…é€‚ç”¨äºŽç¦»çº¿æŽ¨èï¼Œè€Œæ—&nbsp;æ³•ç”¨äºŽå®žæ—¶æŽ¨èï¼Œè¿™ä½¿å®ƒçš„é€‚ç”¨åœºæ™¯å—åˆ°äº†é™åˆ¶ã€‚æœªæ¥å¯è€ƒè™‘æ”¹é€&nbsp;è¯¥ç®—æ³•ï¼Œä½¿å…¶èƒ½æ»¡è¶³å®žæ—¶æŽ¨èçš„éœ€æ±‚ã€‚

å¯¹äºŽä»¥ä¸ŠæåŠçš„é—®é¢˜ï¼Œæœªæ¥è¿˜éœ€è¦æ›´æ·±å…¥åœ°å­¦ä¹&nbsp;æœ‰å…³çŸ¥è¯†å›¾è°±ã€æŽ¨èç®—æ³•ã€æ·±åº¦å­¦ä¹&nbsp;çš„æœ‰å…³çŸ¥è¯†ï¼Œå¯¹ç³»ç»Ÿè¿›è¡Œæ”¹è¿›ï¼Œä»Žè€Œä½¿å…¶æ›´å®Œå–„ã€‚
	\backmatter
    \printbibliography
	\chapter{è‡´è°¢}
è®ºæ–‡çš„æ’°å†™å·¥ä½œå·²ç»æŽ¥è¿‘å°¾å£°ï¼Œåœ¨æœ¬æ–‡çš„æ’°å†™è¿‡ç¨‹ä¸­æˆ‘è¦ç‰¹åˆ«æ„Ÿè°¢æŽå†¬æ¢…è€å¸ˆçš„æŒ‡å¯¼ã€‚åœ¨æ¯•ä¸šè®ºæ–‡å®ŒæˆæœŸé—´ï¼ŒæŽå†¬æ¢…è€å¸ˆå¤šæ¬¡å¯¹æˆ‘çš„æ¯•ä¸šè®ºæ–‡æå‡ºæ„è§ä¸Žå»ºè®®ã€‚åŒæ—¶ï¼Œå¥¹å¤šæ¬¡è¯¢é—®è®ºæ–‡çš„æ’°å†™è¿›åº¦ï¼Œæ›´æ˜¯ä½“çŽ°äº†å¥¹å¯¹å­¦ç”Ÿæ—&nbsp;å¾®ä¸è‡³çš„å…³æ€€ã€‚æ¯æ¯å½“æˆ‘åœ¨è®ºæ–‡ç¼–å†™ä¸­é‡åˆ°è‰°æ·±æ™¦æ¶©ä¹‹å¤„æ—¶ï¼Œå¥¹éƒ½èƒ½ä¸å¤±æ—¶æœºè€Œæ°åˆ°å¥½å¤„åœ°ç»™äºˆæˆ‘æœ€æœ‰ç”¨çš„æç¤ºä¸Žå»ºè®®ï¼Œä½¿æˆ‘çš„æ¯•ä¸šè®ºæ–‡å¾—ä»¥é¡ºåˆ©å®Œæˆã€‚

å…¶æ¬¡ï¼Œæˆ‘è¦æ„Ÿè°¢æˆ‘æœ¬ç§‘æœŸé—´æ›¾ç»ä¸ºæˆ‘ä¸Šè¯¾çš„æ‰€æœ‰è€å¸ˆã€‚æ¯”å¦‚ï¼Œç”±æˆ‘çš„æ¦‚çŽ‡è®ºè€å¸ˆä¸ºæˆ‘æ‰“ä¸‹çš„æ•°å­¦åŸºç¡€æ‰ä½¿æˆ‘å¾—ä»¥ç”¨æœ€å¤§åŽéªŒæ¦‚çŽ‡ä¼°è®¡æ³•å®ŒæˆåµŒå…¥è¡¨ç¤ºçš„å­¦ä¹&nbsp;ç®—æ³•ï¼Œè“æµ·æ´‹è€å¸ˆä»»æ•™çš„ç½‘ç«™è®¾è®¡è¯¾ç¨‹æ˜¯æˆ‘å®Œæˆç”µå½±æŽ¨èç³»ç»Ÿçš„åŸºçŸ³ã€‚æ€»ä¹‹ï¼Œæˆ‘è¦æ„Ÿè°¢å¤§å­¦å››å¹´æ¥æ‰€æœ‰è€å¸ˆå­œå­œä¸å€¦çš„è°†è°†æ•™è¯²ä¸Žå¤œä»¥ç»§æ—¥çš„æ—&nbsp;ç§å¥‰çŒ®ã€‚

æŽ¥ç€ï¼Œæˆ‘è¿˜è¦æ„Ÿè°¢æˆ‘çš„åŒå­¦ï¼Œæ˜¯ä»–ä»¬æ€ç»´çš„ç«èŠ±æ¿€èµ·äº†è®ºæ–‡å†™ä½œä¸­çš„çµæ„Ÿã€‚ä¸Žä»–ä»¬çš„äº¤æµä½¿æˆ‘å—ç›ŠåŒªæµ…ã€‚

æœ€åŽï¼Œæˆ‘è¿˜è¦æ„Ÿè°¢æˆ‘çš„çˆ¶æ¯ï¼Œä»–ä»¬ä¸€ç›´ä»¥æ¥å¯¹æˆ‘ç”Ÿæ´»ä¸Šä¸Žå­¦ä¹&nbsp;ä¸Šçš„é¼“åŠ±ä¸Žå¼•å¯¼æ˜¯æˆ‘å¾—ç›Šå®Œæˆè®ºæ–‡çš„å…³é”®è¦ç´&nbsp;ã€‚

æ„Ÿè°¢æ‰€æœ‰åœ¨è®ºæ–‡æ’°å†™å·¥ä½œä¸­ä¸ºæˆ‘æä¾›è¿‡å¸®åŠ©çš„äººã€‚
\end{document}
</pre></body></html>