feat: latex support

This commit is contained in:
camera-2018
2023-04-16 03:36:36 +08:00
parent 759771405f
commit fe3a68302f
3 changed files with 46 additions and 29 deletions

View File

@@ -1,11 +1,11 @@
{
"hash": "468c91a0",
"browserHash": "0e915b7e",
"hash": "79186abe",
"browserHash": "ac388fdc",
"optimized": {
"vue": {
"src": "../../../node_modules/vue/dist/vue.runtime.esm-bundler.js",
"file": "vue.js",
"fileHash": "bf7209a1",
"fileHash": "69aa98d5",
"needsInterop": false
}
},

View File

@@ -97,3 +97,7 @@
--docsearch-primary-color: var(--vp-c-brand) !important;
}
mjx-container {
display: inline-block;
margin: auto;
}

View File

@@ -69,33 +69,37 @@ $$
原本的相似度公式为:
$$
sim(i,j)=\frac{\sum_{u\in N(i) \cap N(i)}{1}}{\sqrt{\vert N(i)\vert \vert N(j) \vert}}$$
sim(i,j)=\frac{\sum_{u\in N(i) \cap N(i)}{1}}{\sqrt{\vert N(i)\vert \vert N(j) \vert}}
$$
引入时间信息后,可更新为:
$$sim(i,j)=\frac{\sum_{u\in N(i) \cap N(i)}{f(\vert t_{ui} - t_{uj}\vert)}}{\sqrt{\vert N(i)\vert \vert N(j) \vert}}$$
$$
sim(i,j)=\frac{\sum_{u\in N(i) \cap N(i)}{f(\vert t_{ui} - t_{uj}\vert)}}{\sqrt{\vert N(i)\vert \vert N(j) \vert}}$$
其中$$f(\vert t_{ui}-t_{uj} \vert)$$ 为时间衰减项,其中$$t_{ui}$$为用户u对物品i产生行为的时间$$f()$$ 函数的作用是用户对i与j的作用时间相距越远对应函数值越小相当于对输入因子$$\vert t_{ui}-t_{uj} \vert$$ 进行一个反比操作。可以找到在数学中许多的衰减函数,例如:
其中$f(\vert t_{ui}-t_{uj} \vert)$ 为时间衰减项,其中$t_{ui}$为用户u对物品i产生行为的时间$f()$ 函数的作用是用户对i与j的作用时间相距越远对应函数值越小相当于对输入因子$\vert t_{ui}-t_{uj} \vert$ 进行一个反比操作。可以找到在数学中许多的衰减函数,例如:
$$f(\vert t_{ui}-t_{uj} \vert)=\frac{1}{1+\alpha(\vert t_{ui}-t_{uj}\vert)}$$
$$f(\vert t_{ui}-t_{uj} \vert)=\frac{1}{1+\alpha(\vert t_{ui}-t_{uj}\vert)}$$
其中$$\alpha$$ 是时间衰减参数,它的取值与系统的对于自身定义有关系。收到用户兴趣变化的额外影响。
其中$\alpha$ 是时间衰减参数,它的取值与系统的对于自身定义有关系。收到用户兴趣变化的额外影响。
- <strong>在线推荐</strong> 用户近期行为相比用户很久之前的行为,更能体现用户目前的兴趣,所以在进行预测时,应当加重用户近期行为的权重,但不应该偏离用户长期行为的行为基调。
原本的用户u对于物品i的兴趣$$p(u,i)$$ 可通过如下公式计算:
原本的用户u对于物品i的兴趣$p(u,i)$ 可通过如下公式计算:
$$p(u,i)=\sum_{j\in N(u)}{sim(i,j)}$$
引入时间信息可更新为:
$$p(u,i)=\sum_{j\in N(u)\cap S(i,k)}{sim(i,j)\frac{1}{1+\beta \vert t_0-t_{uj}\vert}}$$
$$
p(u,i)=\sum_{j\in N(u)\cap S(i,k)}{sim(i,j)\frac{1}{1+\beta \vert t_0-t_{uj}\vert}}
$$
在上面的更新后公式中,$$t_0$$ 表示当前时间,该公式表明,当 $$t_{uj}$$$$t_0$$ 越靠近和物品j相似的物品就会在用户u的推荐列表中获得更高的排名。其中的$$\beta$$和上文的 $$\alpha$$ 是一样的,需要根据系统的情况选择合适的值。
在上面的更新后公式中,$t_0$ 表示当前时间,该公式表明,当 $t_{uj}$ 与 $t_0$ 越靠近和物品j相似的物品就会在用户u的推荐列表中获得更高的排名。其中的$\beta$和上文的 $\alpha$ 是一样的,需要根据系统的情况选择合适的值。
- <strong>时间上下文相关的userCF算法</strong>
与itemCF算法类似userCF在引入时间信息后也可以进行更新
@@ -103,13 +107,17 @@ $$p(u,i)=\sum_{j\in N(u)}{sim(i,j)}$$
- <strong>用户兴趣相似度</strong> 用户相似度在引入时间信息后会将用户相同的逆时序选择相似度降低。简单来说就是A一月BF1长时间在线二月BF5长时间在线而B一月BF5长时间在线二月BF1长时间在线C行为信息与A相同。如果不引入时间信息那么AB的相似度与AC的相似度是一样的而实际上AC的相似度会大于AB的相似度。
uerCF的用户uv间相似度的基本公式为
$$w_{uv}=\frac{\vert N(u)\cap N(v)\vert}{\sqrt{\vert N(u)\cap N(v)\vert}}$$
$$
w_{uv}=\frac{\vert N(u)\cap N(v)\vert}{\sqrt{\vert N(u)\cap N(v)\vert}}
$$
其中,$$N(u)$$ 是用户u喜欢的物品的合集$$N(v)$$ 是用户v喜欢的物品的合集。
其中,$N(u)$ 是用户u喜欢的物品的合集$N(v)$ 是用户v喜欢的物品的合集。
引入时间信息后,公式可更新为:
$$w_{uv}=\frac{\sum_{i \in N(u)\cap N(i)}{\frac{1}{1+\alpha \vert t_{ui}-t_{vi}\vert}}}{\sqrt{\vert N(u)\cap N(v)\vert}}$$
$$
w_{uv}=\frac{\sum_{i \in N(u)\cap N(i)}{\frac{1}{1+\alpha \vert t_{ui}-t_{vi}\vert}}}{\sqrt{\vert N(u)\cap N(v)\vert}}
$$
同样增加了一个时间衰减因子用户uv对于i的作用时间差距越大那么两人的相似度会相应降低。
@@ -117,31 +125,35 @@ uerCF的用户uv间相似度的基本公式为
- <strong>相似兴趣用户的最近行为</strong> 对于用户u来说存在最近行为与用户u相似的用户v那么用户v的最近行为将会比用户u很久之前的行为更具有参考价值。
userCF中用户u对于物品i兴趣的基础公式为
$$p(u,i)=\sum_{v\in S(u,k)}{w_{ui}r_{vi}}$$
$$
p(u,i)=\sum_{v\in S(u,k)}{w_{ui}r_{vi}}
$$
其中,$$S(u,k)$$ 包含了与用户 u 相似度最高的 k 名用户。而对应的$$r_{ui}$$ 若用户产生过对i的行为则其值为1 否则为0 。
其中,$S(u,k)$ 包含了与用户 u 相似度最高的 k 名用户。而对应的$r_{ui}$ 若用户产生过对i的行为则其值为1 否则为0 。
引入时间信息更新公式:
$$p(u,i)=\sum_{v\in S(u,k)}{w_{ui}r_{vi}} \frac{1}{1+\alpha(\vert t_0-t_{vi}\vert)}
$$
p(u,i)=\sum_{v\in S(u,k)}{w_{ui}r_{vi}} \frac{1}{1+\alpha(\vert t_0-t_{vi}\vert)}
$$
- <strong>时间段图模型</strong>
同样是一个基于图的推荐系统模型,引入时间信息,建立一个二分图时间段图模型:
$$
(U,S_U,I,S_I,,E,w,\sigma)$$
(U,S_U,I,S_I,,E,w,\sigma)
$$
其中,$$U$$ 是用户节点集合,$$S_U$$ 表示用户时间段节点集合,一个用户时间段节点$$v_{ut}\in S_U$$ 会和用户 $$u$$ 在时刻 $$t$$ 喜欢的的物品通过边相连。$$I$$ 是物品集合,$$S_I$$ 是物品时间段节点集合,一个物品时间段节点 $$v_{it}\in S_I$$ 会和所有在时间$$t$$ 喜欢物品 $$i$$ 的用户节点相连。
其中,$U$ 是用户节点集合,$S_U$ 表示用户时间段节点集合,一个用户时间段节点$v_{ut}\in S_U$ 会和用户 $u$ 在时刻 $t$ 喜欢的的物品通过边相连。$I$ 是物品集合,$S_I$ 是物品时间段节点集合,一个物品时间段节点 $v_{it}\in S_I$ 会和所有在时间$t$ 喜欢物品 $i$ 的用户节点相连。
$$E$$ 是边集合,包含两大类边
$E$ 是边集合,包含两大类边
第一种:若用户 $$u$$ 对于物品 $$i$$ 有行为,则会存在边 $$e(u,i)\in E$$ ;第二种,若用户 $$u$$ 对于物品 $$i$$ 在时间 $$t$$ 有行为,那么将存在对应的两条边,$$e(v_{ut},v_i),e(v_u,v_{it})\in E$$
第一种:若用户 $u$ 对于物品 $i$ 有行为,则会存在边 $e(u,i)\in E$ ;第二种,若用户 $u$ 对于物品 $i$ 在时间 $t$ 有行为,那么将存在对应的两条边,$e(v_{ut},v_i),e(v_u,v_{it})\in E$ 。
$$w(e)$$ 定义了边的权重,$$\sigma(e)$$ 定义了顶点的权重。具体示例:
而 $w(e)$ 定义了边的权重,$\sigma(e)$ 定义了顶点的权重。具体示例:
@@ -157,18 +169,20 @@ $$E$$ 是边集合,包含两大类边
### 路径融合算法
- 首先提取两个节点之间,长度小于一个给定值的所有路径。然后根据每条路径经过的不同节点,给予路径不同的权重。最后将所有路径的权重之和,作为两点的相关度。
$$P=\lbrace v_1,v_2,...,v_n\rbrace$$ 是链接顶点 $$v_1$$$$v_n$$ 的一条路径,这条路径的权重 $$\Gamma(P)$$ 取决于这条路径所经过的所有顶点和边。
设 $P=\lbrace v_1,v_2,...,v_n\rbrace$ 是链接顶点 $v_1$ 到 $v_n$ 的一条路径,这条路径的权重 $\Gamma(P)$ 取决于这条路径所经过的所有顶点和边。
$$\Gamma(P)=\sigma(v_n)\prod_{i=1}^{n-1}{\frac{\sigma(v_i)\cdot w(v_i,v_{i+1})}{\vert out(v_i)\vert ^{\rho}}}$$
$$
\Gamma(P)=\sigma(v_n)\prod_{i=1}^{n-1}{\frac{\sigma(v_i)\cdot w(v_i,v_{i+1})}{\vert out(v_i)\vert ^{\rho}}}
$$
其中,$$out(v)$$ 是顶点 $$v$$ 指向的顶点的集合,$$\vert out(v) \vert$$ 是顶点 $$v$$ 的出度,$$\sigma(v_i)\in(0,1]$$ 定义了顶点的权重,$$w(v_i,v_{i+1})\in (0,1]$$ 定义了边 $$e(v_i,v_{i+1})$$ 的权重。
定义了一条边的权重之后,就可以定义顶点之间的相关度。对于顶点$$v_1,v_n$$ ,令$$p(v_1,v_n,K)$$ 为这两个顶点间距离小于K的所有路径那么这两个顶点的相关度就可以表示为
其中,$out(v)$ 是顶点 $v$ 指向的顶点的集合,$\vert out(v) \vert$ 是顶点 $v$ 的出度,$\sigma(v_i)\in(0,1]$ 定义了顶点的权重,$w(v_i,v_{i+1})\in (0,1]$ 定义了边 $e(v_i,v_{i+1})$ 的权重。
定义了一条边的权重之后,就可以定义顶点之间的相关度。对于顶点$v_1,v_n$ ,令$p(v_1,v_n,K)$ 为这两个顶点间距离小于K的所有路径那么这两个顶点的相关度就可以表示为
$$d(v_1,v_n)=\sum_{P\in P(v_1,v_n,K)}{\Gamma(P)}$$
对于时间段图模型所有边的权重都为1而顶点的权重$$\sigma(v)$$ 的定义为:
对于时间段图模型所有边的权重都为1而顶点的权重$\sigma(v)$ 的定义为:
而关于路径融合算法的算法实现,可以使用基于图上的广度优先搜索算法实现。
# 地点上下文
@@ -204,7 +218,7 @@ $$d(v_1,v_n)=\sum_{P\in P(v_1,v_n,K)}{\Gamma(P)}$$
- 第二种数据对于物品i在用户u推荐列表中的权重公式进行修正
(1)首先忽略物品的位置信息利用itemCF算法计算用户u对物品i的兴趣
(2)计算物品i对于用户u的代价 $$TravelPenalty(u,i)$$ 对于物品i与用户u之前评分的所有物品的位置距离计算平均值度量方式通常采用交通网络数据。
(2)计算物品i对于用户u的代价 $TravelPenalty(u,i)$ 对于物品i与用户u之前评分的所有物品的位置距离计算平均值度量方式通常采用交通网络数据。
(3) 利用公式
$$RecScore(u,i)=P(u,i)-TravelPenalty(u,i)$$
@@ -213,4 +227,3 @@ $$RecScore(u,i)=P(u,i)-TravelPenalty(u,i)$$
计算最终的权重。
- 第三种数据LARS的处理方法相当于在第二种数据中引入了用户当前位置的信息。
$$