主权项 |
一种基于用户聚类的sky line在线计算方法,其特征在于,包括如下步骤:11)基于用户‑服务QoS矩阵对相似用户进行聚类步骤:当为单维度场景时,采用将所有维度的QoS值归一化处理后按照其权重计算为一维数值,用户u对服务s的多维QoS的归一化公式如下:<maths num="0001" id="cmaths0001"><math><![CDATA[<mrow><mover><mi>q</mi><mo>~</mo></mover><mrow><mo>(</mo><mi>s</mi><mo>)</mo></mrow><mo>=</mo><munderover><mo>Σ</mo><mrow><mi>i</mi><mo>=</mo><mn>1</mn></mrow><mi>R</mi></munderover><mfrac><mrow><msub><mi>q</mi><mi>i</mi></msub><mrow><mo>(</mo><mi>s</mi><mo>)</mo></mrow><mo>-</mo><msub><mi>min</mi><mrow><msup><mi>s</mi><mo>′</mo></msup><mo>∈</mo><mi>S</mi></mrow></msub><msub><mi>q</mi><mi>i</mi></msub><mrow><mo>(</mo><msup><mi>s</mi><mo>′</mo></msup><mo>)</mo></mrow></mrow><mrow><msub><mi>max</mi><mrow><msup><mi>s</mi><mo>′</mo></msup><mo>∈</mo><mi>S</mi></mrow></msub><msub><mi>q</mi><mi>i</mi></msub><mrow><mo>(</mo><msup><mi>s</mi><mo>′</mo></msup><mo>)</mo></mrow><mo>-</mo><msub><mi>min</mi><mrow><msup><mi>s</mi><mo>′</mo></msup><mo>∈</mo><mi>S</mi></mrow></msub><msub><mi>q</mi><mi>i</mi></msub><mrow><mo>(</mo><msup><mi>s</mi><mo>′</mo></msup><mo>)</mo></mrow></mrow></mfrac><mo>·</mo><msub><mi>w</mi><mi>i</mi></msub></mrow>]]></math><img file="FDA0000788660220000011.GIF" wi="843" he="154" /></maths>其中q<sub>i</sub>(s)为第i个维度上的QoS值,w<sub>i</sub>为各维度的QoS权重,且∑w<sub>i</sub>=1,由此一维用户相似度可以由以下Pearson相似度公式计算:<maths num="0002" id="cmaths0002"><math><![CDATA[<mrow><mi>D</mi><mi>i</mi><mi>s</mi><mi>t</mi><mrow><mo>(</mo><msub><mi>u</mi><mi>i</mi></msub><mo>,</mo><msub><mi>u</mi><mi>j</mi></msub><mo>)</mo></mrow><mo>=</mo><mi>S</mi><mi>i</mi><mi>m</mi><mrow><mo>(</mo><msub><mi>u</mi><mi>j</mi></msub><mo>,</mo><msub><mi>u</mi><mi>j</mi></msub><mo>)</mo></mrow><mo>=</mo><mfrac><mrow><msub><mi>Σ</mi><mrow><mi>s</mi><mo>∈</mo><mi>S</mi><mrow><mo>(</mo><mi>i</mi><mo>,</mo><mi>j</mi><mo>)</mo></mrow></mrow></msub><mrow><mo>(</mo><msub><mi>q</mi><mi>j</mi></msub><mo>(</mo><mi>s</mi><mo>)</mo></mrow><mo>-</mo><mover><msub><mi>q</mi><mi>i</mi></msub><mo>‾</mo></mover><mo>)</mo><mrow><mo>(</mo><msub><mi>q</mi><mi>j</mi></msub><mo>(</mo><mi>s</mi><mo>)</mo></mrow><mo>-</mo><mover><msub><mi>q</mi><mi>j</mi></msub><mo>‾</mo></mover><mo>)</mo></mrow><mrow><msqrt><mrow><msub><mi>Σ</mi><mrow><mi>s</mi><mo>∈</mo><mi>S</mi><mrow><mo>(</mo><mi>i</mi><mo>,</mo><mi>j</mi><mo>)</mo></mrow></mrow></msub><msup><mrow><mo>(</mo><msub><mi>q</mi><mi>i</mi></msub><mo>(</mo><mi>s</mi><mo>)</mo><mo>-</mo><mover><msub><mi>q</mi><mi>j</mi></msub><mo>‾</mo></mover><mo>)</mo></mrow><mn>2</mn></msup></mrow></msqrt><msqrt><mrow><msub><mi>Σ</mi><mrow><mi>s</mi><mo>∈</mo><mi>S</mi><mrow><mo>(</mo><mi>i</mi><mo>,</mo><mi>j</mi><mo>)</mo></mrow></mrow></msub><msup><mrow><mo>(</mo><msub><mi>q</mi><mi>j</mi></msub><mo>(</mo><mi>s</mi><mo>)</mo><mo>-</mo><mover><msub><mi>q</mi><mi>j</mi></msub><mo>‾</mo></mover><mo>)</mo></mrow><mn>2</mn></msup></mrow></msqrt></mrow></mfrac></mrow>]]></math><img file="FDA0000788660220000012.GIF" wi="1477" he="211" /></maths>其中<img file="FDA0000788660220000013.GIF" wi="53" he="87" />为用户u<sub>i</sub>对所有服务调用的平均QoS,<img file="FDA0000788660220000014.GIF" wi="90" he="89" />用户u<sub>j</sub>对所有服务调用的平均QoS,基于此相似度进行聚类操作;当为多维度场景时,首先对每个维度的QoS仍然进行归一化操作,每一个维度上QoS的取值范围都是(0,1)之间,接着采用余弦距离计算两个用户u<sub>i</sub>与u<sub>j</sub>之间在服务s上的相似度:<maths num="0003" id="cmaths0003"><math><![CDATA[<mrow><mi>s</mi><mi>i</mi><mi>m</mi><mrow><mo>(</mo><msub><mi>u</mi><mi>i</mi></msub><mo>,</mo><msub><mi>u</mi><mi>j</mi></msub><mo>,</mo><mi>s</mi><mo>)</mo></mrow><mo>=</mo><mfrac><mrow><mover><msub><mi>q</mi><mi>i</mi></msub><mo>→</mo></mover><mrow><mo>(</mo><mi>s</mi><mo>)</mo></mrow><mo>·</mo><mover><msub><mi>q</mi><mi>j</mi></msub><mo>→</mo></mover><mrow><mo>(</mo><mi>s</mi><mo>)</mo></mrow></mrow><mrow><mo>|</mo><mover><msub><mi>q</mi><mi>i</mi></msub><mo>→</mo></mover><mrow><mo>(</mo><mi>s</mi><mo>)</mo></mrow><mo>|</mo><mo>|</mo><mover><msub><mi>q</mi><mi>j</mi></msub><mo>→</mo></mover><mrow><mo>(</mo><mi>s</mi><mo>)</mo></mrow><mo>|</mo></mrow></mfrac></mrow>]]></math><img file="FDA0000788660220000015.GIF" wi="551" he="181" /></maths>其中<img file="FDA0000788660220000016.GIF" wi="455" he="91" />是用户i对服务s的归一化QoS向量,定义用户u<sub>i</sub>与u<sub>j</sub>的在服务集S上的多维QoS相似度为:<maths num="0004" id="cmaths0004"><math><![CDATA[<mrow><mi>s</mi><mi>i</mi><mi>m</mi><mrow><mo>(</mo><msub><mi>u</mi><mi>i</mi></msub><mo>,</mo><msub><mi>u</mi><mi>j</mi></msub><mo>,</mo><mi>S</mi><mo>)</mo></mrow><mo>=</mo><mi>J</mi><mrow><mo>(</mo><msub><mi>u</mi><mi>i</mi></msub><mo>,</mo><msub><mi>u</mi><mi>j</mi></msub><mo>)</mo></mrow><mo>·</mo><mfrac><mrow><munder><mo>Σ</mo><mrow><mi>s</mi><mo>∈</mo><mi>S</mi></mrow></munder><mi>si</mi><mi>m</mi><mrow><mo>(</mo><mrow><msub><mi>u</mi><mi>i</mi></msub><mo>,</mo><msub><mi>u</mi><mi>j</mi></msub><mo>,</mo><mi>s</mi></mrow><mo>)</mo></mrow></mrow><mrow><mo>|</mo><mi>S</mi><mo>|</mo></mrow></mfrac></mrow>]]></math><img file="FDA0000788660220000017.GIF" wi="815" he="196" /></maths>定义S(u)为用户u调用的服务s所构成的集合,那么有:<maths num="0005" id="cmaths0005"><math><![CDATA[<mrow><mi>J</mi><mrow><mo>(</mo><msub><mi>u</mi><mi>i</mi></msub><mo>,</mo><msub><mi>u</mi><mi>j</mi></msub><mo>)</mo></mrow><mo>=</mo><mfrac><mrow><mo>|</mo><mrow><mi>S</mi><mrow><mo>(</mo><msub><mi>u</mi><mi>i</mi></msub><mo>)</mo></mrow><mo>∩</mo><mi>S</mi><mrow><mo>(</mo><msub><mi>u</mi><mi>j</mi></msub><mo>)</mo></mrow></mrow><mo>|</mo></mrow><mrow><mo>|</mo><mi>S</mi><mrow><mo>(</mo><msub><mi>u</mi><mi>i</mi></msub><mo>)</mo></mrow><mo>∪</mo><mi>S</mi><mo>(</mo><msub><mi>u</mi><mi>j</mi></msub><mo>)</mo><mo>|</mo></mrow></mfrac></mrow>]]></math><img file="FDA0000788660220000018.GIF" wi="516" he="186" /></maths>基于此相似度进行聚类操作;12)基于用户聚类,计算聚类特征sky line步骤;由一个聚类中服务的QoS均值计算得到的sky line;13)基于离线聚类sky line执行在线sky line修正步骤:输入用户u对于目标等价服务集S中的每一个点,首先在对应类平均sky line的支配表中支配该点的原sky line点集,并逐个判断在预测QoS数值之后的支配关系,若仍存在支配关系,那么该点在预测过QoS的服务集仍然不属于sky line;若原支配该点的sky line点,在预测后的QoS数值上不再支配该点,那么将该点和不被该点支配的原sky line点都加入候选集,最后在候选集中进行最终sky line计算;所述支配表用来存储sky line中支配关系的HashTable,其键为每一个非sky line节点索引,值为支配该节点的sky line点的集合。 |