- Java锁的逻辑(结合对象头和ObjectMonitor)
- 还在用饼状图?来瞧瞧这些炫酷的百分比可视化新图形(附代码实现)⛵
- 自动注册实体类到EntityFrameworkCore上下文,并适配ABP及ABPVNext
- 基于Sklearn机器学习代码实战
The art of being wise is the art of knowing what to overlook . 智慧的艺术是知道该忽视什么.
——威廉·詹姆斯(William James) 。
推荐系统中常常面临用户 冷启动问题 [1] ,也即新注册的用户没有足够的交互记录,导致推荐模型不能学习到有效的表征。为了解决用户冷启动问题,近年来 跨域推荐(CDR) 得到了许多关注 [2] 。一般来讲,跨域推荐旨在利用从其它相关源域收集的用户-物品交互信息以提升目标域的推荐质量。许多跨域推荐的工作会假设大量的用户在两个域都出现过(即 重叠用户, overlapping users )以搭建起源域和目标域之间的桥梁。只在源域中存在的用户(即 非重叠用户, non overlapping users )可以被视为目标域的冷启动用户.
为了解决冷启动用户问题,传统的跨域推荐方法常常基于 嵌入和映射(Embedding and Mapping,EMCDR) 的思路,也即学习一个映射函数将预训练的用户表征(embeddings)从源域迁移到目标域。如下图所示:
如上图所示,EMCDR首先用基于协同过滤的模型(CF-based model)来为每个领域生成用户/物品表征,之后训练一个映射函数来将源域和目标域的重叠用户表征。然后,再给定源域的非重叠冷启动用户表征,就能够根据训练好的映射函数来预测目标域的用户表征了,之后再用于目标域的物品推荐.
然而,正如我们上面所说的,这种方法在进行对齐操作之前,各领域需要先通过预训练以独立地得到用户/物品的embeddings。因此, 有偏的(biased) 预训练表征将无可避免地包含 领域特有的(domain-specific) 信息,从而会导致对跨领域迁移信息产生负面影响.
事实上,跨域推荐的关键问题就在于: 究竟需要在不同的域之间共享什么信息?也即如何让表征能够编码到领域间共享(domain-shared)的信息?
这种思路相比于EMCDR方法的优点在于,我们能够联合(jointly)学习跨领域的embeddings,从而能够进一步地关注于领域共享信息并限制领域特有的信息.
在具体的手段层面,这种方法该类方法的大多数工作首先采用两个基础的编码器来对每个领域的交互记录建模,之后再引入不同的迁移层来对称地融合不同编码器学得的表征。比如,CoNet [3] 利用MLP做为每个领域的基础编码器,并设计了交叉连接(cross-connections)网络来迁移信息。DDTCDR [4] 进一步扩展了ConNet:学习了一个潜在的正交投影函数来迁移跨领域用户的相似度。PPGN [5] 使用堆叠的(stacking)GCN来直接聚合来自各领域的表征信息以学得用户/物品表征。BiTGCF [6] 利用LightGCN [7] 做为编码器来聚合每个领域的交互信息,并进一步引入特征迁移层来增强两个基础的图编码器。CDRIB [8] 则采用信息瓶颈的视角来获得领域间共享的信息(不过该方法关注的是为目标域中的不重叠(冷启动)用户做推荐,与前面的方法又有所区别).
尽管以上的方法在一定程度上有效,但它们基本上仍然忽略了对领域共享信息和领域特有信息的解耦(CDRIB除外),而这大大限制了模型迁移的效率.
一个显著的例子如上图所示。对于Film和Book这两个领域,领域间共享的信息,比如“Story Topic”和“Category”能够为每个领域都提供有价值的信息。但领域特有的信息,比如Book领域的“Writing Style”可能会提供对于在“Film”领域做推荐无用的信息甚至会导致CDR领域的 负迁移 现象 [9] 。不幸的是,现有的CDR方法忽视了此问题并直接聚合领域间共享和领域特有的信息。这样的结果就是,学得的用户表征将不同领域的偏好纠缠(entangle)在一起,而这会导致获得次优(sub-optial)的推荐结果.
解决该问题的手段是解耦领域间共享的领域特有的表征,其代表为DisenCDR模型 [10] .
如上图所示,DisenCDR模型将领域共享的和领域特有的表征进行解耦,以达到跨领域知识迁移的目的.
本方法属于采用联合训练的跨域推荐方法。本其关注的场景为 当源域和目标域间的用户部分重叠时,为目标域中的不重叠(冷启动)用户做推荐 。该方法所要解决的问题在于, 究竟有哪些信息需要在领域间进行共享 ?
为了解决该问题, 本文利用了信息瓶颈(information bottleneck)原理并提出了一个新的方法(CDIRB模型)来使表征编码到领域间共享的信息(domain shared information),从而用于各领域的下游推荐 。为了得到无偏的表征,作者设计了两种正则项,其中 信息瓶颈正则项 来同时建模跨域/域间的用户-物品交互,这样相比EMCDR方法,就能够同时考虑所有域的交互信息从而达到去偏的目的;而 对比信息正则项 则负责捕捉跨域的用户-用户之间的关系(对齐不同域之间的重叠用户表征).
设有领域 \(X\) 和 \(Y\) ,设 \(D^X=(\mathcal{U}^X, \mathcal{V}^X,\mathcal{E}^X)\) , \(D^Y=(\mathcal{U}^X, \mathcal{V}^X,\mathcal{E}^X)\) 表示领域的数据,这里 \(\mathcal{U}\) 、 \(\mathcal{V}\) 、 \(\mathcal{E}\) 分别表示每个领域用户、物品和边的集合。特别地,用户集合 \(\mathcal{U}^X\) 和 \(\mathcal{U}^Y\) 包含重叠的用户子集 \(\mathcal{U}^o = \mathcal{U}^X \cap \mathcal{U}^Y\) 。接着,用户集合可以被形式化为 \(\mathcal{U}^X = \{\mathcal{U}^x, \mathcal{U}^o\}\) 和 \(\mathcal{U}^Y = \{\mathcal{U}^y, \mathcal{U}^o\}\) ,这里 \(\mathcal{U}^x\) 和 \(\mathcal{U}^y\) 为在每个领域中不重叠的用户集合。设 \(\boldsymbol{A}^X=\{0,1\}^{\left|\mathcal{U}^X\right| \times\left|\mathcal{V}^X\right|}\) 和 \(A^Y=\{0,1\}^{\left|\mathcal{U}^Y\right| \times\left|\mathcal{V}^Y\right|}\) 为存储用户-物品交互信息的两个二值矩阵。这样,本文的任务可形式化地描述为:给定来自源域 \(X\) 的非重叠的(冷启动)用户 \(u_i\in \mathcal{U}^x\) ,我们想要为其推荐来自目标域 \(Y\) 的物品 \(v_j \in \mathcal{V}^Y\) (或为来自 \(\mathcal{U}^y\) 的用户推荐来自 \(\mathcal{V}^X\) 的物品).
接下来作者借鉴了论文 [11][12] 提出的信息瓶颈理论,该理论旨在学习有效表征,这种有效表征能够在简洁性和广泛的预测能力之间做权衡(trade-off) [13] 。形式化地,标准信息瓶颈有如下所示的目标函数:
该目标函数可以被解释为两部分:(1)最小化 \(I(Z; X)\) 旨在惩罚 \(Z\) 和 \(X\) 之间的互信息,也即使得 \(Z\) 尽量“忘掉” \(X\) 的信息。(2) 最大化 \(I(Z; Y)\) 则鼓励 \(Z\) 去预测 \(Y\) 。综合来看,信息瓶颈原理的目标为压缩 \(X\) 以得到表征 \(Z\) ,该表征能够去除掉对预测 \(Y\) 无用的因素而保留相关因素 [14] 。这也就是说IB使得 \(Z\) 做为一个最小充分统计量 [15] (在我们这个CDR应用中即领域间应该共享的信息)。在实践中,直接优化互信息是难解(intractable)的,因此变分近似 [16] 常常用于构建用于优化互信息目标函数的下界 [13][17] .
本文提出的CDIRB模型包含变分子图编码器(variational bipartite graph encoder,VBGE)和两种的跨领域信息正则项,整体框架图如下图所示:
其中绿色部分的网格代表物品表征,黄色和蓝色颜色的网格分别代表重叠和不重叠的用户表征。信息瓶颈正则项(图中的Information Bottleneck)捕捉了领域间用户和物品的相关性,而对比信息正则项(图中的Contrastive Information)则捕捉了领域间重叠用户之间的相关性.
接下来我们叙述每个部分的细节.
嵌入层 。
嵌入层得到的领域 \(X\) 的用户/物品表征分别记作 \(\boldsymbol{U}^X \in \mathbb{R}^{|\mathcal{U}^X |\times F}\) 和 \(\boldsymbol{V}^X \in \mathbb{R}^{\left|\mathcal{V}^X\right| \times F}\) ;领域 \(Y\) 的用户/物品表征分别记作 \(\boldsymbol{U}^Y \in \mathbb{R}^{\left|\mathcal{U}^{Y}\right| \times F}\) 和 \(\boldsymbol{V}^Y \in \mathbb{R}^{\left|\mathcal{V}^Y\right| \times F}\) .
变分二分图编码器 为了在原始用户/物品表征的基础上,进一步提炼出用户/物品的隐向量表征,论文提出了变分二分图编码器(VBGE)。比如,生成 \(X\) 领域的用户隐向量表征 \(Z_v^X\) 的过程如下:
信息瓶颈正则项 。
接下来,论文引入了信息瓶颈正则项和对比信息正则项这两种正则项来捕捉领域间的相关性,以学得包含领域间共享信息的无偏表征。其中信息瓶颈正则化项旨在捕捉领域间用户和物品间的相关性,而对比信息正则化项旨在捕捉领域间的重叠用户和用户之间的相关性.
设 \(\mathbf{X}\) , \(\mathbf{X}^u\) , \(\mathbf{X}^v\) 分别为领域 \(X\) 中所观测到的交互信息、用户信息和物品信息。领域 \(X\) 的用户集合包括重叠用户 \(\mathcal{U}^o\) 和非重叠用户 \(\mathcal{U}^x\) 这两个群体,领域 \(Y\) 亦然。以领域 \(X\) 为例,将用户表征 \(\boldsymbol{Z}_u^X \in \mathbb{R}^{\left|\mathcal{U}^{X}\right| \times F}\) 也划分为两个群体: \(\boldsymbol{Z}_u^{x o} \in \mathbb{R}^{\left|\mathcal{U}^o\right| \times F}\) 和 \(\boldsymbol{Z}_u^x \in \mathbb{R}^{\left|\mathcal{U}^x\right| \times F}\) .
信息瓶颈正则项又可继续分为跨域(cross-domain)信息瓶颈正则项和领域内(in-domain)信息瓶颈正则项。首先我们来看跨域(cross-domain)信息瓶颈正则项,它包括包括信息压缩(即互信息最小化)和重构两部分,其结构化示意图如下:
正如上图(a)所示。 \(\boldsymbol{Z}_u^{x o}\) , \(\boldsymbol{Z}_u^{y o}\) 是编码了各领域用户信息的重叠用户表征,而图(b)中的 \(\boldsymbol{Z}_u^x\) , \(Z_u^y\) 是非重叠的(冷启动)用户表征。这里 \(\boldsymbol{Z}_v^{X}\) , \(\boldsymbol{Z}_v^Y\) 是物品表征,默认是不重叠的.
以 \(X\) 领域迁移到 \(Y\) 领域为例(图中标红部分),我们需要使重叠用户隐向量 \(\boldsymbol{Z}^{xo}_u\) 和同领域的用户表征 \(\mathbf{X}^u\) 互斥(信息压缩),而去接近于 \(Y\) 领域的交互信息 \(\mathbf{Y}\) (跨域重构);此外,对于 \(Y\) 领域的物品隐向量 \(\boldsymbol{Z}^Y_v\) 也需要使其与物品表征 \(\mathbf{Y}^v\) 互斥,并去接近于 \(\mathbf{Y}\) (因为不同领域物品不会重叠,这里采取域内重构).
其中的跨域重构部分可以进一步通过互信息链式法则化简得到:
(这里假设 \(\boldsymbol{Z}_u^{x o}\) 和 \(\boldsymbol{Z}_v^Y\) 独立) 。
最后, \(X\) 领域导出的损失函数包括最小化(minimality)和跨域重构(reconstruction)两部分:
接下来我们来看领域内(in-domain)信息瓶颈正则项,其结构化示意图如下:
我们还是以 \(X\) 领域为例子(图中红色箭头部分),可以看到其损失函数同样也包括最小化和领域内重构两部分:
对比信息正则项 。
在对比信息正则化项中,作者通过最大化 \(X\) 的重叠用户表征 \(\boldsymbol{Z}^{xo}_u\) 和来自领域 \(Y\) 的重叠用户表征 \(\boldsymbol{Z}^{yo}_u\) 间的互信息,以进一步提炼重叠用户的表征。对比信息正则化项的定义如下所示:
可求解的目标函数 。
将上述的两种信息瓶颈正则项和对比信息正则项累加起来(同时包括 \(X\) 和 \(Y\) 领域的),就得到了目标函数:
要想求解该目标函数,接下来还需要将互信息其转换为KL散度,比如对于 \(I\left(\boldsymbol{Z}_u^{x o} ; \mathbf{X}^u\right)\) 就有 。
该互信息项是难以求解的,这里需要转而去优化其上界:
对于重构项,我们以 \(I\left(\boldsymbol{Z}_u^{x o}, \boldsymbol{Z}_v^Y ; \mathbf{Y}\right)\) 为例,我们有 。
该优化函数同样是难解的,这里需要转而去优化其下界:
对于对比互信息项,论文借鉴了infomax [14][20] 小想法,利用神经网络来度量对比互信息。具体来说,论文定义了判别器 \(\mathcal{D}\) 来度量来自不同领域的重叠用户隐向量(来自领域 \(X\) 的 \(z^{xo}_{u_i}\) 和来自领域 \(Y\) 的 \(z^{yo}_{u_i}\) )之间的相似度。因此,对比项的下界可表示如下:
这里 。
这样,我们就将原始目标函数转化为了最终完全可求解的目标函数.
本方法属于采用解耦表征的跨域推荐方法。与2.1所讲的基于信息瓶颈视角的方法不同的是,本方法旨在 为两个领域中的重叠用户做推荐,因此在模型中只考虑两个领域中的重叠用户 。在本方法中,所要解决的关键问题在于 对于两个领域重叠用户的表征,如何分别出共享和不共享的部分?
为了解决该问题, 本文基于信息论提出了DisenCDR模型,该模型能够解耦领域间共享和领域特有的信息,从而只迁移领域间共享的信息以增强推荐表现 。该方法包含了两个互信息正则项(包括 用于解耦的正则项 和 用于信息增强的正则项 ,详情参见后文),并据此导出了一个可以求解的解耦目标函数.
本文采用和上面的文章几乎一样的符号,就是需要注意此处领域 \(X\) 和领域 \(Y\) 的用户空间相同。设领域 \(X\) 和领域 \(Y\) 的数据分别表示为 \(\mathcal{D}^X=(\mathcal{U}, \mathcal{V}^X,\mathcal{E}^X)\) , \(\mathcal{D}^Y=(\mathcal{U}, \mathcal{V}^X,\mathcal{E}^X)\) ,这里 \(\mathcal{U}\) 、 \(\mathcal{V}\) 、 \(\mathcal{E}\) 分别表示每个领域用户、物品和边的集合。设 \(\boldsymbol{A}^X=\{0,1\}^{\left|\mathcal{U}\right| \times\left|\mathcal{V}^X\right|}\) 和 \(A^Y=\{0,1\}^{\left|\mathcal{U}\right| \times\left|\mathcal{V}^Y\right|}\) 为存储用户-物品交互信息的两个二值矩阵.
这里 \(Z^X_v\) , \(Z^X_u\) , \(Z^Y_u\) 和 \(Z^Y_v\) 是领域特有的用户/物品表征,且 \(Z^S_u\) 是用户的领域共享表征,则DisenCDR的框架图可表示如下:
注意,这里蓝色的KL意为使用先验分布 \(\mathcal{N}(0, \mathbf{I})\) 计算KL散度,绿色的KL意为计算输入之间的KL散度。隐变量 \(\widehat{Z}_u^S\) 、 \(\widetilde{Z}_u^S\) 用于计算我们的解耦目标函数.
下面我们来详细介绍该方法各个组成部分的细节:
嵌入层 。
嵌入层的作用同2.1中所述的方法相同,也即将用户和物品嵌入到低维空间中。不过还是正如我们前面所说的,这里 \(X\) 领域和 \(Y\) 领域的用户空间相同。设 \(\boldsymbol{U}^S\in \mathbb{R}^{|\mathcal{U}|\times F}\) 为领域 \(X\) 和领域 \(Y\) 的共享初始嵌入矩阵, \(\boldsymbol{U}^X \in \mathbb{R}^{|\mathcal{U}|\times F}\) 和 \(\boldsymbol{V}^X \in \mathbb{R}^{\left|\mathcal{U}\right| \times F}\) 分别为领域 \(X\) 和 \(Y\) 特有的初始化嵌入矩阵。此外, \(\boldsymbol{V}^X \in \mathbb{R}^{\left|\mathcal{V}^X\right| \times F}\) 和 \(\boldsymbol{V}^Y \in \mathbb{R}^{\left|\mathcal{V}^Y\right| \times F}\) 分别为领域 \(X\) 和领域 \(Y\) 的物品表征.
变分二分图编码器 。
DisenCDR和变分二分图编码器和我们 2.1 中讲的第一个基于信息瓶颈思想的模型一样,唯一的区别就是这里的共享隐向量同时利用了 \(X\) 领域的 \(\boldsymbol{\overline{\mu}}_{u}^X\) 和 \(Y\) 领域的 \(\overline{\boldsymbol{\mu}}_u^Y\) :
生成和推断 。
论文遵循VAE [18] 的框架,这里假定所观测的交互信息 \(\mathcal{D}^X\) 和 \(\mathcal{ D}^Y\) 采自一个联合概率分布 \(p_{\mathcal{D}}(u, v^X, v^Y)\) ,每个元组 \(\left(u_i, v_j, v_k\right) \sim p_{\mathcal{D}}\left(u, v^X, v^Y\right)\) 描述了用户 \(u_i\) 和物品 \(v_j \in \mathcal{V}^X\) 和物品 \(v_k \in \mathcal{V}^Y\) 的交互信息。而交互数据正是经由领域共享表征(比如 \(Z_u^S\) )和领域特有(比如 \(Z^X_u\) , \(Z^X_v\) , \(Z^Y_u\) 和 \(Z^Y_v\) )表征生成,也即:
下图(a)正是描述了交互数据的生成过程,而图(b)则描述了反向推断步骤:
在推断过程中,直接最大化联合概率分布 \(p_\theta\left(u, v^X, v^Y\right)\) 的似然是难解的,因为后验分布 \(p_\theta\left(Z_u^X, Z_u^Y, Z_u^S, Z_v^X, Z_v^Y \mid \mathbf{X}, \mathrm{Y}\right)\) 未知。因此采用近似推断 [19] 来近似真实的后验分布。根据上图(b)中的结构化假设,论文将近似后验分布分解为:
解耦目标函数 。
接下来作者从信息论的角度来探究领域间表征纠缠的问题,并推导了一个解耦目标函数.
为了使领域间共享和领域特有的隐向量能够编码互斥的信息,作者引入了互斥正则项来最小化二者的互信息。为了分析最小化互信息的影响,作者又将互信息进行了进一步改写。我们以领域 \(X\) 为例,其对应的领域共享和领域特有隐向量的互信息 \(I(Z^X_u; Z^S_u)\) 可做如下改写:
接下来我们看另外一个用于信息增强的正则项(对应我们在2.2信息瓶颈方法中所介绍的重构正则项)。该正则项旨在使每个领域共享的表征 \(Z^S_u\) 信息更丰富,这里作者最大化互信息 \(I\left(Z_u^S ; \mathrm{X} ; \mathrm{Y}\right)\) 来使得 \(Z^S_u\) 编码领域共享的信息。我们以领域 \(X\) 为例,有:
总目标函数 将上面所说的两个解耦目标函数(包括 \(X\) 领域和 \(Y\) 领域的)加起来,就得到了总的目标函数:
进一步将物品隐向量 \(Z_v^X\) 和 \(Z_v^Y\) 引入,可以将损失函数放缩为:
这样,解耦目标函数中的一部分可以视为变分推断中标准的证据下界(Evidence Lower Bound, ELBO)。最后,论文按照VAE的思路,继续将其化为了可以求解的目标函数:
[1] Lin X, Wu J, Zhou C, et al. Task-adaptive neural process for user cold-start recommendation[C]//Proceedings of the Web Conference 2021. 2021: 1306-1316. 。
[2] Zhu F, Wang Y, Chen C, et al. Cross-domain recommendation: challenges, progress, and prospects[J]. arXiv preprint arXiv:2103.01696, 2021. 。
[3] Hu G, Zhang Y, Yang Q. Conet: Collaborative cross networks for cross-domain recommendation[C]//Proceedings of the 27th ACM international conference on information and knowledge management. 2018: 667-676 。
[4] Li P, Tuzhilin A. Ddtcdr: Deep dual transfer cross domain recommendation[C]//Proceedings of the 13th International Conference on Web Search and Data Mining. 2020: 331-339. 。
[5] Kipf T N, Welling M. Semi-supervised classification with graph convolutional networks[J]. arXiv preprint arXiv:1609.02907, 2016. 。
[6] Meng Liu, Jianjun Li, Guohui Li, and Peng Pan. 2020. Cross Domain Recom- mendation via Bi-directional Transfer Graph Collaborative Filtering Networks. In ACM International Conference on Information and Knowledge Management (CIKM). 。
[7] Xiangnan He, Kuan Deng, Xiang Wang, Yan Li, Yongdong Zhang, and Meng Wang. 2020. Lightgcn: Simplifying and Powering Graph Convolution Network for Recommendation. In ACM International Conference on Research on Development in Information Retrieval (SIGIR). 。
[8] Cao J, Sheng J, Cong X, et al. Cross-domain recommendation to cold-start users via variational information bottleneck[C]//2022 IEEE 38th International Conference on Data Engineering (ICDE). IEEE, 2022: 2209-2223. 。
[9] Zang T, Zhu Y, Liu H, et al. A survey on cross-domain recommendation: taxonomies, methods, and future directions[J]. ACM Transactions on Information Systems, 2022, 41(2): 1-39. 。
[10] Cao J, Lin X, Cong X, et al. DisenCDR: Learning Disentangled Representations for Cross-Domain Recommendation[C]//Proceedings of the 45th International ACM SIGIR Conference on Research and Development in Information Retrieval. 2022: 267-277. 。
[11] Tishby N, Pereira F C, Bialek W. The information bottleneck method[J]. arXiv preprint physics/0004057, 2000. 。
[12] Tishby N, Zaslavsky N. Deep learning and the information bottleneck principle[C]//2015 ieee information theory workshop (itw). IEEE, 2015: 1-5. 。
[13] Alemi A A, Fischer I, Dillon J V, et al. Deep variational information bottleneck[J]. arXiv preprint arXiv:1612.00410, 2016. 。
[14] M. I. Belghazi, A. Baratin, S. Rajeshwar, S. Ozair, Y. Bengio, A. Courville, and D. Hjelm, “Mutual infor- mation neural estimation,” in International Conference on Machine Learning (ICML), 2018. 。
[15] Wu, H. Ren, P. Li, and J. Leskovec, “Graph infor- mation bottleneck,” in Annual Conference on Neural Information Processing Systems (NeurIPS), 2020. 。
[16] S. Gershman and N. Goodman, “Amortized inference in probabilistic reasoning,” in Proceedings of the Annual Meeting of The Cognitive Science Society, 2014. 。
[17] Wang Z, Chen X, Wen R, et al. Information theoretic counterfactual learning from missing-not-at-random feedback[J]. Advances in Neural Information Processing Systems, 2020, 33: 1854-1864. 。
[18] Kingma D P, Welling M. Auto-encoding variational bayes[J]. arXiv preprint arXiv:1312.6114, 2013. 。
[19] Gershman S, Goodman N. Amortized inference in probabilistic reasoning[C]//Proceedings of the annual meeting of the cognitive science society. 2014, 36(36). 。
[20] Hjelm R D, Fedorov A, Lavoie-Marchildon S, et al. Learning deep representations by mutual information estimation and maximization[J]. arXiv preprint arXiv:1808.06670, 2018. 。
最后此篇关于跨域推荐:嵌入映射、联合训练和解耦表征的文章就讲到这里了,如果你想了解更多关于跨域推荐:嵌入映射、联合训练和解耦表征的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。
这是我的本地域名 http://10.10.1.101/uxsurvey/profile/dashboard 在 Controller 中,我为用户列表设置了一个操作 redirect(control
要处理 Canonical URL,最佳做法是执行 301 重定向还是更好地为 www 和非 www 域使用相同的 IP 地址? 例如: 想要的规范 URL/域是 http://example.com
1 内网基础 内网/局域网(Local Area Network,LAN),是指在某一区域内有多台计算机互联而成的计算机组,组网范围通常在数千米以内。在局域网中,可以实现文件管理、应用软件共享、打印机
1 内网基础 内网/局域网(Local Area Network,LAN),是指在某一区域内有多台计算机互联而成的计算机组,组网范围通常在数千米以内。在局域网中,可以实现文件管理、应用软件共享、打印机
我想创建一个 weblogic 集群,其中有两个托管服务器,每个服务器在物理上独立的远程计算机上运行 根据weblogic文档 All Managed Servers in a cluster mus
我正在运行 grails 3.1.4,但在创建允许我将多个域对象绑定(bind)到其他几个域对象的模式时遇到了问题。作为我正在尝试做的一个例子: 我有三个类(class)。书籍、作者和阅读列表。 作者
我试图使用@count函数来根据它获取数据,但是在没有崩溃报告的情况下它以某种方式崩溃了。 这是代码 class PSMedia: Object { @objc dynamic var id
有谁知道是否有办法只输入字母字符而不输入数字?我想过这样的事情 CREATE DOMAIN countryDomain AS VARCHAR(100) CHECK( VALUE ??? );
我的代码: const checkoutUrl = 'https://example.com/checkout/*' window.onload = startup() function st
一些不是我编写的应用程序,也不是用 PHP 编写的,它为域 www.example.com 创建了一个 cookie。 我正在尝试替换该 cookie。所以在 PHP 中我做到了: setcookie
什么是 oauth 域?是否有任何免费的 oauth 服务?我可以将它用于 StackApps registration 吗? ?我在谷歌上搜索了很多,但找不到答案。 最佳答案 这是redirect_
自从 In October 2009, the Internet Corporation for Assigned Names and Numbers (ICANN) approved the cre
我使用 apache 作为我的应用程序 Web 服务器的代理,并希望即时更改与 sessionid cookie 关联的域名。 该cookie有一个与之关联的.company.com域,我想使用apa
我只想托管一个子域到cloudflare。我不想将主域名的域名服务器更改为他们的域名服务器。真的有可能吗? 最佳答案 是的,这是可能的,但是需要通过CloudFlare合作伙伴进行设置,或者您需要采用
When using socket in the UNIX domain, it is advisable to use path name for the directory directory m
想象两个共享一个域类的 Grails 应用程序。也许是 Book 域类。 一个应用程序被标识为数据的所有者,一个应用程序必须访问域数据。类似于亚马逊和亚马逊网络服务。 我想拥有的应用程序将使用普通的域
我有一个包含字段“URL”的表单。第一部分需要用户在文本框中填写。第二部分是预定义的,显示在文本框的右侧。 例如,用户在文本框中输入“test”。第二部分预定义为“.example.com”。因此,总
如果我要关闭并取消分配 azure 中的域 Controller ,从而生成新的 vm Generationid,我需要采取哪些步骤来恢复它? 最佳答案 what steps do I need to
我想尝试使用 Azure 作为托管提供商(我有一个域)。我读过那篇文章https://learn.microsoft.com/en-us/azure/app-service-web/web-sites
所以.... 我想知道是否有人可以在这方面协助我? 基本上,我已经创建了一个自托管的Docker容器,用作构建代理(Azure DevOps) 现在,我已经开始测试代理,并且由于我们的放置文件夹位于W
我是一名优秀的程序员,十分优秀!